blob: 4b0b026a71a20f19efa6d8e1fb3c0f28f8f4ff45 [file] [log] [blame]
// Copyright 2023 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.33.0
// protoc v4.25.3
// source: google/cloud/aiplatform/v1/pipeline_job.proto
package aiplatformpb
import (
reflect "reflect"
sync "sync"
_ "google.golang.org/genproto/googleapis/api/annotations"
status "google.golang.org/genproto/googleapis/rpc/status"
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
structpb "google.golang.org/protobuf/types/known/structpb"
timestamppb "google.golang.org/protobuf/types/known/timestamppb"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
// Specifies state of TaskExecution
type PipelineTaskDetail_State int32
const (
// Unspecified.
PipelineTaskDetail_STATE_UNSPECIFIED PipelineTaskDetail_State = 0
// Specifies pending state for the task.
PipelineTaskDetail_PENDING PipelineTaskDetail_State = 1
// Specifies task is being executed.
PipelineTaskDetail_RUNNING PipelineTaskDetail_State = 2
// Specifies task completed successfully.
PipelineTaskDetail_SUCCEEDED PipelineTaskDetail_State = 3
// Specifies Task cancel is in pending state.
PipelineTaskDetail_CANCEL_PENDING PipelineTaskDetail_State = 4
// Specifies task is being cancelled.
PipelineTaskDetail_CANCELLING PipelineTaskDetail_State = 5
// Specifies task was cancelled.
PipelineTaskDetail_CANCELLED PipelineTaskDetail_State = 6
// Specifies task failed.
PipelineTaskDetail_FAILED PipelineTaskDetail_State = 7
// Specifies task was skipped due to cache hit.
PipelineTaskDetail_SKIPPED PipelineTaskDetail_State = 8
// Specifies that the task was not triggered because the task's trigger
// policy is not satisfied. The trigger policy is specified in the
// `condition` field of
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec].
PipelineTaskDetail_NOT_TRIGGERED PipelineTaskDetail_State = 9
)
// Enum value maps for PipelineTaskDetail_State.
var (
PipelineTaskDetail_State_name = map[int32]string{
0: "STATE_UNSPECIFIED",
1: "PENDING",
2: "RUNNING",
3: "SUCCEEDED",
4: "CANCEL_PENDING",
5: "CANCELLING",
6: "CANCELLED",
7: "FAILED",
8: "SKIPPED",
9: "NOT_TRIGGERED",
}
PipelineTaskDetail_State_value = map[string]int32{
"STATE_UNSPECIFIED": 0,
"PENDING": 1,
"RUNNING": 2,
"SUCCEEDED": 3,
"CANCEL_PENDING": 4,
"CANCELLING": 5,
"CANCELLED": 6,
"FAILED": 7,
"SKIPPED": 8,
"NOT_TRIGGERED": 9,
}
)
func (x PipelineTaskDetail_State) Enum() *PipelineTaskDetail_State {
p := new(PipelineTaskDetail_State)
*p = x
return p
}
func (x PipelineTaskDetail_State) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (PipelineTaskDetail_State) Descriptor() protoreflect.EnumDescriptor {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_enumTypes[0].Descriptor()
}
func (PipelineTaskDetail_State) Type() protoreflect.EnumType {
return &file_google_cloud_aiplatform_v1_pipeline_job_proto_enumTypes[0]
}
func (x PipelineTaskDetail_State) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use PipelineTaskDetail_State.Descriptor instead.
func (PipelineTaskDetail_State) EnumDescriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{3, 0}
}
// An instance of a machine learning PipelineJob.
type PipelineJob struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The resource name of the PipelineJob.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// The display name of the Pipeline.
// The name can be up to 128 characters long and can consist of any UTF-8
// characters.
DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
// Output only. Pipeline creation time.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. Pipeline start time.
StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Output only. Pipeline end time.
EndTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Output only. Timestamp when this PipelineJob was most recently updated.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// The spec of the pipeline.
PipelineSpec *structpb.Struct `protobuf:"bytes,7,opt,name=pipeline_spec,json=pipelineSpec,proto3" json:"pipeline_spec,omitempty"`
// Output only. The detailed state of the job.
State PipelineState `protobuf:"varint,8,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.PipelineState" json:"state,omitempty"`
// Output only. The details of pipeline run. Not available in the list view.
JobDetail *PipelineJobDetail `protobuf:"bytes,9,opt,name=job_detail,json=jobDetail,proto3" json:"job_detail,omitempty"`
// Output only. The error that occurred during pipeline execution.
// Only populated when the pipeline's state is FAILED or CANCELLED.
Error *status.Status `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"`
// The labels with user-defined metadata to organize PipelineJob.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
//
// Note there is some reserved label key for Vertex AI Pipelines.
// - `vertex-ai-pipelines-run-billing-id`, user set value will get overrided.
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"`
// Customer-managed encryption key spec for a pipelineJob. If set, this
// PipelineJob and all of its sub-resources will be secured by this key.
EncryptionSpec *EncryptionSpec `protobuf:"bytes,16,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"`
// The service account that the pipeline workload runs as.
// If not specified, the Compute Engine default service account in the project
// will be used.
// See
// https://cloud.google.com/compute/docs/access/service-accounts#default_service_account
//
// Users starting the pipeline must have the `iam.serviceAccounts.actAs`
// permission on this service account.
ServiceAccount string `protobuf:"bytes,17,opt,name=service_account,json=serviceAccount,proto3" json:"service_account,omitempty"`
// The full name of the Compute Engine
// [network](/compute/docs/networks-and-firewalls#networks) to which the
// Pipeline Job's workload should be peered. For example,
// `projects/12345/global/networks/myVPC`.
// [Format](/compute/docs/reference/rest/v1/networks/insert)
// is of the form `projects/{project}/global/networks/{network}`.
// Where {project} is a project number, as in `12345`, and {network} is a
// network name.
//
// Private services access must already be configured for the network.
// Pipeline job will apply the network configuration to the Google Cloud
// resources being launched, if applied, such as Vertex AI
// Training or Dataflow job. If left unspecified, the workload is not peered
// with any network.
Network string `protobuf:"bytes,18,opt,name=network,proto3" json:"network,omitempty"`
// A list of names for the reserved ip ranges under the VPC network
// that can be used for this Pipeline Job's workload.
//
// If set, we will deploy the Pipeline Job's workload within the provided ip
// ranges. Otherwise, the job will be deployed to any ip ranges under the
// provided VPC network.
//
// Example: ['vertex-ai-ip-range'].
ReservedIpRanges []string `protobuf:"bytes,25,rep,name=reserved_ip_ranges,json=reservedIpRanges,proto3" json:"reserved_ip_ranges,omitempty"`
// A template uri from where the
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec],
// if empty, will be downloaded. Currently, only uri from Vertex Template
// Registry & Gallery is supported. Reference to
// https://cloud.google.com/vertex-ai/docs/pipelines/create-pipeline-template.
TemplateUri string `protobuf:"bytes,19,opt,name=template_uri,json=templateUri,proto3" json:"template_uri,omitempty"`
// Output only. Pipeline template metadata. Will fill up fields if
// [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri]
// is from supported template registry.
TemplateMetadata *PipelineTemplateMetadata `protobuf:"bytes,20,opt,name=template_metadata,json=templateMetadata,proto3" json:"template_metadata,omitempty"`
// Output only. The schedule resource name.
// Only returned if the Pipeline is created by Schedule API.
ScheduleName string `protobuf:"bytes,22,opt,name=schedule_name,json=scheduleName,proto3" json:"schedule_name,omitempty"`
}
func (x *PipelineJob) Reset() {
*x = PipelineJob{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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_google_cloud_aiplatform_v1_pipeline_job_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_google_cloud_aiplatform_v1_pipeline_job_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) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *PipelineJob) GetStartTime() *timestamppb.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *PipelineJob) GetEndTime() *timestamppb.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *PipelineJob) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *PipelineJob) GetPipelineSpec() *structpb.Struct {
if x != nil {
return x.PipelineSpec
}
return nil
}
func (x *PipelineJob) GetState() PipelineState {
if x != nil {
return x.State
}
return PipelineState_PIPELINE_STATE_UNSPECIFIED
}
func (x *PipelineJob) GetJobDetail() *PipelineJobDetail {
if x != nil {
return x.JobDetail
}
return nil
}
func (x *PipelineJob) GetError() *status.Status {
if x != nil {
return x.Error
}
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
}
func (x *PipelineJob) GetEncryptionSpec() *EncryptionSpec {
if x != nil {
return x.EncryptionSpec
}
return nil
}
func (x *PipelineJob) GetServiceAccount() string {
if x != nil {
return x.ServiceAccount
}
return ""
}
func (x *PipelineJob) GetNetwork() string {
if x != nil {
return x.Network
}
return ""
}
func (x *PipelineJob) GetReservedIpRanges() []string {
if x != nil {
return x.ReservedIpRanges
}
return nil
}
func (x *PipelineJob) GetTemplateUri() string {
if x != nil {
return x.TemplateUri
}
return ""
}
func (x *PipelineJob) GetTemplateMetadata() *PipelineTemplateMetadata {
if x != nil {
return x.TemplateMetadata
}
return nil
}
func (x *PipelineJob) GetScheduleName() string {
if x != nil {
return x.ScheduleName
}
return ""
}
// Pipeline template metadata if
// [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri]
// is from supported template registry. Currently, the only supported registry
// is Artifact Registry.
type PipelineTemplateMetadata struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The version_name in artifact registry.
//
// Will always be presented in output if the
// [PipelineJob.template_uri][google.cloud.aiplatform.v1.PipelineJob.template_uri]
// is from supported template registry.
//
// Format is "sha256:abcdef123456...".
Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
}
func (x *PipelineTemplateMetadata) Reset() {
*x = PipelineTemplateMetadata{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTemplateMetadata) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTemplateMetadata) ProtoMessage() {}
func (x *PipelineTemplateMetadata) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTemplateMetadata.ProtoReflect.Descriptor instead.
func (*PipelineTemplateMetadata) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{1}
}
func (x *PipelineTemplateMetadata) GetVersion() string {
if x != nil {
return x.Version
}
return ""
}
// The runtime detail of PipelineJob.
type PipelineJobDetail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The context of the pipeline.
PipelineContext *Context `protobuf:"bytes,1,opt,name=pipeline_context,json=pipelineContext,proto3" json:"pipeline_context,omitempty"`
// Output only. The context of the current pipeline run.
PipelineRunContext *Context `protobuf:"bytes,2,opt,name=pipeline_run_context,json=pipelineRunContext,proto3" json:"pipeline_run_context,omitempty"`
// Output only. The runtime details of the tasks under the pipeline.
TaskDetails []*PipelineTaskDetail `protobuf:"bytes,3,rep,name=task_details,json=taskDetails,proto3" json:"task_details,omitempty"`
}
func (x *PipelineJobDetail) Reset() {
*x = PipelineJobDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineJobDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineJobDetail) ProtoMessage() {}
func (x *PipelineJobDetail) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineJobDetail.ProtoReflect.Descriptor instead.
func (*PipelineJobDetail) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{2}
}
func (x *PipelineJobDetail) GetPipelineContext() *Context {
if x != nil {
return x.PipelineContext
}
return nil
}
func (x *PipelineJobDetail) GetPipelineRunContext() *Context {
if x != nil {
return x.PipelineRunContext
}
return nil
}
func (x *PipelineJobDetail) GetTaskDetails() []*PipelineTaskDetail {
if x != nil {
return x.TaskDetails
}
return nil
}
// The runtime detail of a task execution.
type PipelineTaskDetail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The system generated ID of the task.
TaskId int64 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
// Output only. The id of the parent task if the task is within a component
// scope. Empty if the task is at the root level.
ParentTaskId int64 `protobuf:"varint,12,opt,name=parent_task_id,json=parentTaskId,proto3" json:"parent_task_id,omitempty"`
// Output only. The user specified name of the task that is defined in
// [pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec].
TaskName string `protobuf:"bytes,2,opt,name=task_name,json=taskName,proto3" json:"task_name,omitempty"`
// Output only. Task create time.
CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
// Output only. Task start time.
StartTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
// Output only. Task end time.
EndTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Output only. The detailed execution info.
ExecutorDetail *PipelineTaskExecutorDetail `protobuf:"bytes,6,opt,name=executor_detail,json=executorDetail,proto3" json:"executor_detail,omitempty"`
// Output only. State of the task.
State PipelineTaskDetail_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.PipelineTaskDetail_State" json:"state,omitempty"`
// Output only. The execution metadata of the task.
Execution *Execution `protobuf:"bytes,8,opt,name=execution,proto3" json:"execution,omitempty"`
// Output only. The error that occurred during task execution.
// Only populated when the task's state is FAILED or CANCELLED.
Error *status.Status `protobuf:"bytes,9,opt,name=error,proto3" json:"error,omitempty"`
// Output only. A list of task status. This field keeps a record of task
// status evolving over time.
PipelineTaskStatus []*PipelineTaskDetail_PipelineTaskStatus `protobuf:"bytes,13,rep,name=pipeline_task_status,json=pipelineTaskStatus,proto3" json:"pipeline_task_status,omitempty"`
// Output only. The runtime input artifacts of the task.
Inputs map[string]*PipelineTaskDetail_ArtifactList `protobuf:"bytes,10,rep,name=inputs,proto3" json:"inputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Output only. The runtime output artifacts of the task.
Outputs map[string]*PipelineTaskDetail_ArtifactList `protobuf:"bytes,11,rep,name=outputs,proto3" json:"outputs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *PipelineTaskDetail) Reset() {
*x = PipelineTaskDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskDetail) ProtoMessage() {}
func (x *PipelineTaskDetail) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskDetail.ProtoReflect.Descriptor instead.
func (*PipelineTaskDetail) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{3}
}
func (x *PipelineTaskDetail) GetTaskId() int64 {
if x != nil {
return x.TaskId
}
return 0
}
func (x *PipelineTaskDetail) GetParentTaskId() int64 {
if x != nil {
return x.ParentTaskId
}
return 0
}
func (x *PipelineTaskDetail) GetTaskName() string {
if x != nil {
return x.TaskName
}
return ""
}
func (x *PipelineTaskDetail) GetCreateTime() *timestamppb.Timestamp {
if x != nil {
return x.CreateTime
}
return nil
}
func (x *PipelineTaskDetail) GetStartTime() *timestamppb.Timestamp {
if x != nil {
return x.StartTime
}
return nil
}
func (x *PipelineTaskDetail) GetEndTime() *timestamppb.Timestamp {
if x != nil {
return x.EndTime
}
return nil
}
func (x *PipelineTaskDetail) GetExecutorDetail() *PipelineTaskExecutorDetail {
if x != nil {
return x.ExecutorDetail
}
return nil
}
func (x *PipelineTaskDetail) GetState() PipelineTaskDetail_State {
if x != nil {
return x.State
}
return PipelineTaskDetail_STATE_UNSPECIFIED
}
func (x *PipelineTaskDetail) GetExecution() *Execution {
if x != nil {
return x.Execution
}
return nil
}
func (x *PipelineTaskDetail) GetError() *status.Status {
if x != nil {
return x.Error
}
return nil
}
func (x *PipelineTaskDetail) GetPipelineTaskStatus() []*PipelineTaskDetail_PipelineTaskStatus {
if x != nil {
return x.PipelineTaskStatus
}
return nil
}
func (x *PipelineTaskDetail) GetInputs() map[string]*PipelineTaskDetail_ArtifactList {
if x != nil {
return x.Inputs
}
return nil
}
func (x *PipelineTaskDetail) GetOutputs() map[string]*PipelineTaskDetail_ArtifactList {
if x != nil {
return x.Outputs
}
return nil
}
// The runtime detail of a pipeline executor.
type PipelineTaskExecutorDetail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Details:
//
// *PipelineTaskExecutorDetail_ContainerDetail_
// *PipelineTaskExecutorDetail_CustomJobDetail_
Details isPipelineTaskExecutorDetail_Details `protobuf_oneof:"details"`
}
func (x *PipelineTaskExecutorDetail) Reset() {
*x = PipelineTaskExecutorDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskExecutorDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskExecutorDetail) ProtoMessage() {}
func (x *PipelineTaskExecutorDetail) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskExecutorDetail.ProtoReflect.Descriptor instead.
func (*PipelineTaskExecutorDetail) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{4}
}
func (m *PipelineTaskExecutorDetail) GetDetails() isPipelineTaskExecutorDetail_Details {
if m != nil {
return m.Details
}
return nil
}
func (x *PipelineTaskExecutorDetail) GetContainerDetail() *PipelineTaskExecutorDetail_ContainerDetail {
if x, ok := x.GetDetails().(*PipelineTaskExecutorDetail_ContainerDetail_); ok {
return x.ContainerDetail
}
return nil
}
func (x *PipelineTaskExecutorDetail) GetCustomJobDetail() *PipelineTaskExecutorDetail_CustomJobDetail {
if x, ok := x.GetDetails().(*PipelineTaskExecutorDetail_CustomJobDetail_); ok {
return x.CustomJobDetail
}
return nil
}
type isPipelineTaskExecutorDetail_Details interface {
isPipelineTaskExecutorDetail_Details()
}
type PipelineTaskExecutorDetail_ContainerDetail_ struct {
// Output only. The detailed info for a container executor.
ContainerDetail *PipelineTaskExecutorDetail_ContainerDetail `protobuf:"bytes,1,opt,name=container_detail,json=containerDetail,proto3,oneof"`
}
type PipelineTaskExecutorDetail_CustomJobDetail_ struct {
// Output only. The detailed info for a custom job executor.
CustomJobDetail *PipelineTaskExecutorDetail_CustomJobDetail `protobuf:"bytes,2,opt,name=custom_job_detail,json=customJobDetail,proto3,oneof"`
}
func (*PipelineTaskExecutorDetail_ContainerDetail_) isPipelineTaskExecutorDetail_Details() {}
func (*PipelineTaskExecutorDetail_CustomJobDetail_) isPipelineTaskExecutorDetail_Details() {}
// The runtime config of a PipelineJob.
type PipelineJob_RuntimeConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Deprecated. Use
// [RuntimeConfig.parameter_values][google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.parameter_values]
// instead. The runtime parameters of the PipelineJob. The parameters will
// be passed into
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec]
// to replace the placeholders at runtime. This field is used by pipelines
// built using `PipelineJob.pipeline_spec.schema_version` 2.0.0 or lower,
// such as pipelines built using Kubeflow Pipelines SDK 1.8 or lower.
//
// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1/pipeline_job.proto.
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"`
// Required. 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. The artifact paths are generated
// with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the
// specified output directory. The service account specified in this
// pipeline must have the `storage.objects.get` and `storage.objects.create`
// permissions for this bucket.
GcsOutputDirectory string `protobuf:"bytes,2,opt,name=gcs_output_directory,json=gcsOutputDirectory,proto3" json:"gcs_output_directory,omitempty"`
// The runtime parameters of the PipelineJob. The parameters will be
// passed into
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec]
// to replace the placeholders at runtime. This field is used by pipelines
// built using `PipelineJob.pipeline_spec.schema_version` 2.1.0, such as
// pipelines built using Kubeflow Pipelines SDK 1.9 or higher and the v2
// DSL.
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"`
// Represents the failure policy of a pipeline. Currently, the default of a
// pipeline is that the pipeline will continue to run until no more tasks
// can be executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW.
// However, if a pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it
// will stop scheduling any new tasks when a task has failed. Any scheduled
// tasks will continue to completion.
FailurePolicy PipelineFailurePolicy `protobuf:"varint,4,opt,name=failure_policy,json=failurePolicy,proto3,enum=google.cloud.aiplatform.v1.PipelineFailurePolicy" json:"failure_policy,omitempty"`
// The runtime artifacts of the PipelineJob. The key will be the input
// artifact name and the value would be one of the InputArtifact.
InputArtifacts map[string]*PipelineJob_RuntimeConfig_InputArtifact `protobuf:"bytes,5,rep,name=input_artifacts,json=inputArtifacts,proto3" json:"input_artifacts,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}
func (x *PipelineJob_RuntimeConfig) Reset() {
*x = PipelineJob_RuntimeConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[5]
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_google_cloud_aiplatform_v1_pipeline_job_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 PipelineJob_RuntimeConfig.ProtoReflect.Descriptor instead.
func (*PipelineJob_RuntimeConfig) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{0, 0}
}
// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1/pipeline_job.proto.
func (x *PipelineJob_RuntimeConfig) GetParameters() map[string]*Value {
if x != nil {
return x.Parameters
}
return nil
}
func (x *PipelineJob_RuntimeConfig) GetGcsOutputDirectory() string {
if x != nil {
return x.GcsOutputDirectory
}
return ""
}
func (x *PipelineJob_RuntimeConfig) GetParameterValues() map[string]*structpb.Value {
if x != nil {
return x.ParameterValues
}
return nil
}
func (x *PipelineJob_RuntimeConfig) GetFailurePolicy() PipelineFailurePolicy {
if x != nil {
return x.FailurePolicy
}
return PipelineFailurePolicy_PIPELINE_FAILURE_POLICY_UNSPECIFIED
}
func (x *PipelineJob_RuntimeConfig) GetInputArtifacts() map[string]*PipelineJob_RuntimeConfig_InputArtifact {
if x != nil {
return x.InputArtifacts
}
return nil
}
// The type of an input artifact.
type PipelineJob_RuntimeConfig_InputArtifact struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Types that are assignable to Kind:
//
// *PipelineJob_RuntimeConfig_InputArtifact_ArtifactId
Kind isPipelineJob_RuntimeConfig_InputArtifact_Kind `protobuf_oneof:"kind"`
}
func (x *PipelineJob_RuntimeConfig_InputArtifact) Reset() {
*x = PipelineJob_RuntimeConfig_InputArtifact{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineJob_RuntimeConfig_InputArtifact) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineJob_RuntimeConfig_InputArtifact) ProtoMessage() {}
func (x *PipelineJob_RuntimeConfig_InputArtifact) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineJob_RuntimeConfig_InputArtifact.ProtoReflect.Descriptor instead.
func (*PipelineJob_RuntimeConfig_InputArtifact) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{0, 0, 0}
}
func (m *PipelineJob_RuntimeConfig_InputArtifact) GetKind() isPipelineJob_RuntimeConfig_InputArtifact_Kind {
if m != nil {
return m.Kind
}
return nil
}
func (x *PipelineJob_RuntimeConfig_InputArtifact) GetArtifactId() string {
if x, ok := x.GetKind().(*PipelineJob_RuntimeConfig_InputArtifact_ArtifactId); ok {
return x.ArtifactId
}
return ""
}
type isPipelineJob_RuntimeConfig_InputArtifact_Kind interface {
isPipelineJob_RuntimeConfig_InputArtifact_Kind()
}
type PipelineJob_RuntimeConfig_InputArtifact_ArtifactId struct {
// Artifact resource id from MLMD. Which is the last portion of an
// artifact resource name:
// `projects/{project}/locations/{location}/metadataStores/default/artifacts/{artifact_id}`.
// The artifact must stay within the same project, location and default
// metadatastore as the pipeline.
ArtifactId string `protobuf:"bytes,1,opt,name=artifact_id,json=artifactId,proto3,oneof"`
}
func (*PipelineJob_RuntimeConfig_InputArtifact_ArtifactId) isPipelineJob_RuntimeConfig_InputArtifact_Kind() {
}
// A single record of the task status.
type PipelineTaskDetail_PipelineTaskStatus struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. Update time of this status.
UpdateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
// Output only. The state of the task.
State PipelineTaskDetail_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.PipelineTaskDetail_State" json:"state,omitempty"`
// Output only. The error that occurred during the state. May be set when
// the state is any of the non-final state (PENDING/RUNNING/CANCELLING) or
// FAILED state. If the state is FAILED, the error here is final and not
// going to be retried. If the state is a non-final state, the error
// indicates a system-error being retried.
Error *status.Status `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"`
}
func (x *PipelineTaskDetail_PipelineTaskStatus) Reset() {
*x = PipelineTaskDetail_PipelineTaskStatus{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskDetail_PipelineTaskStatus) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskDetail_PipelineTaskStatus) ProtoMessage() {}
func (x *PipelineTaskDetail_PipelineTaskStatus) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskDetail_PipelineTaskStatus.ProtoReflect.Descriptor instead.
func (*PipelineTaskDetail_PipelineTaskStatus) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{3, 0}
}
func (x *PipelineTaskDetail_PipelineTaskStatus) GetUpdateTime() *timestamppb.Timestamp {
if x != nil {
return x.UpdateTime
}
return nil
}
func (x *PipelineTaskDetail_PipelineTaskStatus) GetState() PipelineTaskDetail_State {
if x != nil {
return x.State
}
return PipelineTaskDetail_STATE_UNSPECIFIED
}
func (x *PipelineTaskDetail_PipelineTaskStatus) GetError() *status.Status {
if x != nil {
return x.Error
}
return nil
}
// A list of artifact metadata.
type PipelineTaskDetail_ArtifactList struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. A list of artifact metadata.
Artifacts []*Artifact `protobuf:"bytes,1,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
}
func (x *PipelineTaskDetail_ArtifactList) Reset() {
*x = PipelineTaskDetail_ArtifactList{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskDetail_ArtifactList) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskDetail_ArtifactList) ProtoMessage() {}
func (x *PipelineTaskDetail_ArtifactList) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskDetail_ArtifactList.ProtoReflect.Descriptor instead.
func (*PipelineTaskDetail_ArtifactList) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{3, 1}
}
func (x *PipelineTaskDetail_ArtifactList) GetArtifacts() []*Artifact {
if x != nil {
return x.Artifacts
}
return nil
}
// The detail of a container execution. It contains the job names of the
// lifecycle of a container execution.
type PipelineTaskExecutorDetail_ContainerDetail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The name of the
// [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the main container
// execution.
MainJob string `protobuf:"bytes,1,opt,name=main_job,json=mainJob,proto3" json:"main_job,omitempty"`
// Output only. The name of the
// [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the
// pre-caching-check container execution. This job will be available if the
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec]
// specifies the `pre_caching_check` hook in the lifecycle events.
PreCachingCheckJob string `protobuf:"bytes,2,opt,name=pre_caching_check_job,json=preCachingCheckJob,proto3" json:"pre_caching_check_job,omitempty"`
// Output only. The names of the previously failed
// [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the main container
// executions. The list includes the all attempts in chronological order.
FailedMainJobs []string `protobuf:"bytes,3,rep,name=failed_main_jobs,json=failedMainJobs,proto3" json:"failed_main_jobs,omitempty"`
// Output only. The names of the previously failed
// [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the
// pre-caching-check container executions. This job will be available if the
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1.PipelineJob.pipeline_spec]
// specifies the `pre_caching_check` hook in the lifecycle events. The list
// includes the all attempts in chronological order.
FailedPreCachingCheckJobs []string `protobuf:"bytes,4,rep,name=failed_pre_caching_check_jobs,json=failedPreCachingCheckJobs,proto3" json:"failed_pre_caching_check_jobs,omitempty"`
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) Reset() {
*x = PipelineTaskExecutorDetail_ContainerDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskExecutorDetail_ContainerDetail) ProtoMessage() {}
func (x *PipelineTaskExecutorDetail_ContainerDetail) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskExecutorDetail_ContainerDetail.ProtoReflect.Descriptor instead.
func (*PipelineTaskExecutorDetail_ContainerDetail) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{4, 0}
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) GetMainJob() string {
if x != nil {
return x.MainJob
}
return ""
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) GetPreCachingCheckJob() string {
if x != nil {
return x.PreCachingCheckJob
}
return ""
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) GetFailedMainJobs() []string {
if x != nil {
return x.FailedMainJobs
}
return nil
}
func (x *PipelineTaskExecutorDetail_ContainerDetail) GetFailedPreCachingCheckJobs() []string {
if x != nil {
return x.FailedPreCachingCheckJobs
}
return nil
}
// The detailed info for a custom job executor.
type PipelineTaskExecutorDetail_CustomJobDetail struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Output only. The name of the
// [CustomJob][google.cloud.aiplatform.v1.CustomJob].
Job string `protobuf:"bytes,1,opt,name=job,proto3" json:"job,omitempty"`
// Output only. The names of the previously failed
// [CustomJob][google.cloud.aiplatform.v1.CustomJob]. The list includes the
// all attempts in chronological order.
FailedJobs []string `protobuf:"bytes,3,rep,name=failed_jobs,json=failedJobs,proto3" json:"failed_jobs,omitempty"`
}
func (x *PipelineTaskExecutorDetail_CustomJobDetail) Reset() {
*x = PipelineTaskExecutorDetail_CustomJobDetail{}
if protoimpl.UnsafeEnabled {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *PipelineTaskExecutorDetail_CustomJobDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*PipelineTaskExecutorDetail_CustomJobDetail) ProtoMessage() {}
func (x *PipelineTaskExecutorDetail_CustomJobDetail) ProtoReflect() protoreflect.Message {
mi := &file_google_cloud_aiplatform_v1_pipeline_job_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 PipelineTaskExecutorDetail_CustomJobDetail.ProtoReflect.Descriptor instead.
func (*PipelineTaskExecutorDetail_CustomJobDetail) Descriptor() ([]byte, []int) {
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP(), []int{4, 1}
}
func (x *PipelineTaskExecutorDetail_CustomJobDetail) GetJob() string {
if x != nil {
return x.Job
}
return ""
}
func (x *PipelineTaskExecutorDetail_CustomJobDetail) GetFailedJobs() []string {
if x != nil {
return x.FailedJobs
}
return nil
}
var File_google_cloud_aiplatform_v1_pipeline_job_proto protoreflect.FileDescriptor
var file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDesc = []byte{
0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61,
0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x70,
0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12,
0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65,
0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x29, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64,
0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x63,
0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x65, 0x63, 0x75,
0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x38, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f,
0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31,
0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76,
0x31, 0x2f, 0x76, 0x61, 0x6c, 0x75, 0x65, 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, 0x1f, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 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, 0xc2, 0x11, 0x0a, 0x0b, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 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, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
0x65, 0x12, 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,
0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65,
0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05,
0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x51, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a,
0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6a,
0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03,
0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c,
0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x2e, 0x76, 0x31, 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, 0x5c, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f,
0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67,
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c,
0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 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, 0x12, 0x53, 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74,
0x69, 0x6f, 0x6e, 0x53, 0x70, 0x65, 0x63, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69,
0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09,
0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74,
0x12, 0x3d, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x12, 0x20, 0x01, 0x28,
0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12,
0x2c, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x5f, 0x72,
0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x73,
0x65, 0x72, 0x76, 0x65, 0x64, 0x49, 0x70, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x21, 0x0a,
0x0c, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x13, 0x20,
0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x55, 0x72, 0x69,
0x12, 0x66, 0x0a, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x74,
0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x63, 0x68, 0x65,
0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x42,
0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61,
0x6d, 0x65, 0x1a, 0xf9, 0x06, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f,
0x62, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42,
0x02, 0x18, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12,
0x35, 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, 0x42, 0x03, 0xe0,
0x41, 0x02, 0x52, 0x12, 0x67, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72,
0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x75, 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, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69,
0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65,
0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x70, 0x61,
0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x58, 0x0a,
0x0e, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x18,
0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e,
0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x75,
0x72, 0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72,
0x65, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x72, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74,
0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b,
0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 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, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74,
0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x69, 0x6e, 0x70,
0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x1a, 0x3a, 0x0a, 0x0d, 0x49,
0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x21, 0x0a, 0x0b,
0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x49, 0x64, 0x42,
0x06, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x1a, 0x60, 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, 0x37, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61,
0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x5a, 0x0a, 0x14, 0x50, 0x61, 0x72,
0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x86, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x70, 0x75, 0x74, 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,
0x59, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 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, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66,
0x61, 0x63, 0x74, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39,
0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x6f, 0xea, 0x41, 0x6c, 0x0a, 0x25,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69,
0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x43, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70,
0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x70, 0x69, 0x70,
0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0x34, 0x0a, 0x18, 0x50, 0x69,
0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65,
0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f,
0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
0x22, 0x9c, 0x02, 0x0a, 0x11, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x53, 0x0a, 0x10, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f,
0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x69, 0x70, 0x65,
0x6c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x5a, 0x0a, 0x14, 0x70,
0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x74,
0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x42, 0x03,
0xe0, 0x41, 0x03, 0x52, 0x12, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x75, 0x6e,
0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x56, 0x0a, 0x0c, 0x74, 0x61, 0x73, 0x6b, 0x5f,
0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c,
0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x03, 0xe0,
0x41, 0x03, 0x52, 0x0b, 0x74, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22,
0xe8, 0x0c, 0x0a, 0x12, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x07, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x69,
0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, 0x61,
0x73, 0x6b, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74,
0x61, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x12,
0x20, 0x0a, 0x09, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d,
0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54,
0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
0x64, 0x0a, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f,
0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61,
0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x44,
0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x4f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07,
0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76,
0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65,
0x74, 0x61, 0x69, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x48, 0x0a, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74,
0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e,
0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61,
0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12,
0x78, 0x0a, 0x14, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x61, 0x73, 0x6b,
0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x41, 0x2e,
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70,
0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c,
0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x50, 0x69,
0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54,
0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x57, 0x0a, 0x06, 0x69, 0x6e, 0x70,
0x75, 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54,
0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73,
0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75,
0x74, 0x73, 0x12, 0x5a, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x0b, 0x20,
0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x1a, 0xd6,
0x01, 0x0a, 0x12, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x53,
0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64,
0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41,
0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03,
0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x57, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66,
0x61, 0x63, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66,
0x61, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73,
0x1a, 0x76, 0x0a, 0x0b, 0x49, 0x6e, 0x70, 0x75, 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, 0x51, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69,
0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c,
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, 0x77, 0x0a, 0x0c, 0x4f, 0x75, 0x74, 0x70,
0x75, 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, 0x51, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54,
0x61, 0x73, 0x6b, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 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, 0xa6, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53,
0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12,
0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09,
0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43,
0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12,
0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12,
0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0a,
0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x4b,
0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x54,
0x52, 0x49, 0x47, 0x47, 0x45, 0x52, 0x45, 0x44, 0x10, 0x09, 0x22, 0xc6, 0x05, 0x0a, 0x1a, 0x50,
0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75,
0x74, 0x6f, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x78, 0x0a, 0x10, 0x63, 0x6f, 0x6e,
0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31,
0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65,
0x63, 0x75, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03,
0x48, 0x00, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x12, 0x79, 0x0a, 0x11, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f,
0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46,
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65,
0x6c, 0x69, 0x6e, 0x65, 0x54, 0x61, 0x73, 0x6b, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62,
0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x48, 0x00, 0x52, 0x0f, 0x63,
0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x1a, 0xaf,
0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x12, 0x46, 0x0a, 0x08, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x61, 0x69,
0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61,
0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f,
0x62, 0x52, 0x07, 0x6d, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x5e, 0x0a, 0x15, 0x70, 0x72,
0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f,
0x6a, 0x6f, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41,
0x25, 0x0a, 0x23, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f,
0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73,
0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x12, 0x70, 0x72, 0x65, 0x43, 0x61, 0x63, 0x68, 0x69,
0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2d, 0x0a, 0x10, 0x66, 0x61,
0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x03,
0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x66, 0x61, 0x69, 0x6c, 0x65,
0x64, 0x4d, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x45, 0x0a, 0x1d, 0x66, 0x61, 0x69,
0x6c, 0x65, 0x64, 0x5f, 0x70, 0x72, 0x65, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f,
0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09,
0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x19, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x50, 0x72, 0x65,
0x43, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x73,
0x1a, 0x76, 0x0a, 0x0f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74,
0x61, 0x69, 0x6c, 0x12, 0x3d, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x42, 0x2b, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e,
0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a,
0x6f, 0x62, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6a, 0x6f, 0x62,
0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x66, 0x61,
0x69, 0x6c, 0x65, 0x64, 0x4a, 0x6f, 0x62, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61,
0x69, 0x6c, 0x73, 0x42, 0x97, 0x02, 0xea, 0x41, 0x4e, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x70, 0x75,
0x74, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
0x6d, 0x2f, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x2c, 0x70, 0x72, 0x6f, 0x6a, 0x65,
0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x67, 0x6c,
0x6f, 0x62, 0x61, 0x6c, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x6e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x7d, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f,
0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
0x65, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66,
0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74,
0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72,
0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f,
0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31,
0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c,
0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d,
0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41,
0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescOnce sync.Once
file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescData = file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDesc
)
func file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescGZIP() []byte {
file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescOnce.Do(func() {
file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescData)
})
return file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDescData
}
var file_google_cloud_aiplatform_v1_pipeline_job_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_google_cloud_aiplatform_v1_pipeline_job_proto_goTypes = []interface{}{
(PipelineTaskDetail_State)(0), // 0: google.cloud.aiplatform.v1.PipelineTaskDetail.State
(*PipelineJob)(nil), // 1: google.cloud.aiplatform.v1.PipelineJob
(*PipelineTemplateMetadata)(nil), // 2: google.cloud.aiplatform.v1.PipelineTemplateMetadata
(*PipelineJobDetail)(nil), // 3: google.cloud.aiplatform.v1.PipelineJobDetail
(*PipelineTaskDetail)(nil), // 4: google.cloud.aiplatform.v1.PipelineTaskDetail
(*PipelineTaskExecutorDetail)(nil), // 5: google.cloud.aiplatform.v1.PipelineTaskExecutorDetail
(*PipelineJob_RuntimeConfig)(nil), // 6: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig
nil, // 7: google.cloud.aiplatform.v1.PipelineJob.LabelsEntry
(*PipelineJob_RuntimeConfig_InputArtifact)(nil), // 8: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.InputArtifact
nil, // 9: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParametersEntry
nil, // 10: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParameterValuesEntry
nil, // 11: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.InputArtifactsEntry
(*PipelineTaskDetail_PipelineTaskStatus)(nil), // 12: google.cloud.aiplatform.v1.PipelineTaskDetail.PipelineTaskStatus
(*PipelineTaskDetail_ArtifactList)(nil), // 13: google.cloud.aiplatform.v1.PipelineTaskDetail.ArtifactList
nil, // 14: google.cloud.aiplatform.v1.PipelineTaskDetail.InputsEntry
nil, // 15: google.cloud.aiplatform.v1.PipelineTaskDetail.OutputsEntry
(*PipelineTaskExecutorDetail_ContainerDetail)(nil), // 16: google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.ContainerDetail
(*PipelineTaskExecutorDetail_CustomJobDetail)(nil), // 17: google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.CustomJobDetail
(*timestamppb.Timestamp)(nil), // 18: google.protobuf.Timestamp
(*structpb.Struct)(nil), // 19: google.protobuf.Struct
(PipelineState)(0), // 20: google.cloud.aiplatform.v1.PipelineState
(*status.Status)(nil), // 21: google.rpc.Status
(*EncryptionSpec)(nil), // 22: google.cloud.aiplatform.v1.EncryptionSpec
(*Context)(nil), // 23: google.cloud.aiplatform.v1.Context
(*Execution)(nil), // 24: google.cloud.aiplatform.v1.Execution
(PipelineFailurePolicy)(0), // 25: google.cloud.aiplatform.v1.PipelineFailurePolicy
(*Value)(nil), // 26: google.cloud.aiplatform.v1.Value
(*structpb.Value)(nil), // 27: google.protobuf.Value
(*Artifact)(nil), // 28: google.cloud.aiplatform.v1.Artifact
}
var file_google_cloud_aiplatform_v1_pipeline_job_proto_depIdxs = []int32{
18, // 0: google.cloud.aiplatform.v1.PipelineJob.create_time:type_name -> google.protobuf.Timestamp
18, // 1: google.cloud.aiplatform.v1.PipelineJob.start_time:type_name -> google.protobuf.Timestamp
18, // 2: google.cloud.aiplatform.v1.PipelineJob.end_time:type_name -> google.protobuf.Timestamp
18, // 3: google.cloud.aiplatform.v1.PipelineJob.update_time:type_name -> google.protobuf.Timestamp
19, // 4: google.cloud.aiplatform.v1.PipelineJob.pipeline_spec:type_name -> google.protobuf.Struct
20, // 5: google.cloud.aiplatform.v1.PipelineJob.state:type_name -> google.cloud.aiplatform.v1.PipelineState
3, // 6: google.cloud.aiplatform.v1.PipelineJob.job_detail:type_name -> google.cloud.aiplatform.v1.PipelineJobDetail
21, // 7: google.cloud.aiplatform.v1.PipelineJob.error:type_name -> google.rpc.Status
7, // 8: google.cloud.aiplatform.v1.PipelineJob.labels:type_name -> google.cloud.aiplatform.v1.PipelineJob.LabelsEntry
6, // 9: google.cloud.aiplatform.v1.PipelineJob.runtime_config:type_name -> google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig
22, // 10: google.cloud.aiplatform.v1.PipelineJob.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec
2, // 11: google.cloud.aiplatform.v1.PipelineJob.template_metadata:type_name -> google.cloud.aiplatform.v1.PipelineTemplateMetadata
23, // 12: google.cloud.aiplatform.v1.PipelineJobDetail.pipeline_context:type_name -> google.cloud.aiplatform.v1.Context
23, // 13: google.cloud.aiplatform.v1.PipelineJobDetail.pipeline_run_context:type_name -> google.cloud.aiplatform.v1.Context
4, // 14: google.cloud.aiplatform.v1.PipelineJobDetail.task_details:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail
18, // 15: google.cloud.aiplatform.v1.PipelineTaskDetail.create_time:type_name -> google.protobuf.Timestamp
18, // 16: google.cloud.aiplatform.v1.PipelineTaskDetail.start_time:type_name -> google.protobuf.Timestamp
18, // 17: google.cloud.aiplatform.v1.PipelineTaskDetail.end_time:type_name -> google.protobuf.Timestamp
5, // 18: google.cloud.aiplatform.v1.PipelineTaskDetail.executor_detail:type_name -> google.cloud.aiplatform.v1.PipelineTaskExecutorDetail
0, // 19: google.cloud.aiplatform.v1.PipelineTaskDetail.state:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.State
24, // 20: google.cloud.aiplatform.v1.PipelineTaskDetail.execution:type_name -> google.cloud.aiplatform.v1.Execution
21, // 21: google.cloud.aiplatform.v1.PipelineTaskDetail.error:type_name -> google.rpc.Status
12, // 22: google.cloud.aiplatform.v1.PipelineTaskDetail.pipeline_task_status:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.PipelineTaskStatus
14, // 23: google.cloud.aiplatform.v1.PipelineTaskDetail.inputs:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.InputsEntry
15, // 24: google.cloud.aiplatform.v1.PipelineTaskDetail.outputs:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.OutputsEntry
16, // 25: google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.container_detail:type_name -> google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.ContainerDetail
17, // 26: google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.custom_job_detail:type_name -> google.cloud.aiplatform.v1.PipelineTaskExecutorDetail.CustomJobDetail
9, // 27: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.parameters:type_name -> google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParametersEntry
10, // 28: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.parameter_values:type_name -> google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParameterValuesEntry
25, // 29: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.failure_policy:type_name -> google.cloud.aiplatform.v1.PipelineFailurePolicy
11, // 30: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.input_artifacts:type_name -> google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.InputArtifactsEntry
26, // 31: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParametersEntry.value:type_name -> google.cloud.aiplatform.v1.Value
27, // 32: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.ParameterValuesEntry.value:type_name -> google.protobuf.Value
8, // 33: google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.InputArtifactsEntry.value:type_name -> google.cloud.aiplatform.v1.PipelineJob.RuntimeConfig.InputArtifact
18, // 34: google.cloud.aiplatform.v1.PipelineTaskDetail.PipelineTaskStatus.update_time:type_name -> google.protobuf.Timestamp
0, // 35: google.cloud.aiplatform.v1.PipelineTaskDetail.PipelineTaskStatus.state:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.State
21, // 36: google.cloud.aiplatform.v1.PipelineTaskDetail.PipelineTaskStatus.error:type_name -> google.rpc.Status
28, // 37: google.cloud.aiplatform.v1.PipelineTaskDetail.ArtifactList.artifacts:type_name -> google.cloud.aiplatform.v1.Artifact
13, // 38: google.cloud.aiplatform.v1.PipelineTaskDetail.InputsEntry.value:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.ArtifactList
13, // 39: google.cloud.aiplatform.v1.PipelineTaskDetail.OutputsEntry.value:type_name -> google.cloud.aiplatform.v1.PipelineTaskDetail.ArtifactList
40, // [40:40] is the sub-list for method output_type
40, // [40:40] is the sub-list for method input_type
40, // [40:40] is the sub-list for extension type_name
40, // [40:40] is the sub-list for extension extendee
0, // [0:40] is the sub-list for field type_name
}
func init() { file_google_cloud_aiplatform_v1_pipeline_job_proto_init() }
func file_google_cloud_aiplatform_v1_pipeline_job_proto_init() {
if File_google_cloud_aiplatform_v1_pipeline_job_proto != nil {
return
}
file_google_cloud_aiplatform_v1_artifact_proto_init()
file_google_cloud_aiplatform_v1_context_proto_init()
file_google_cloud_aiplatform_v1_encryption_spec_proto_init()
file_google_cloud_aiplatform_v1_execution_proto_init()
file_google_cloud_aiplatform_v1_pipeline_failure_policy_proto_init()
file_google_cloud_aiplatform_v1_pipeline_state_proto_init()
file_google_cloud_aiplatform_v1_value_proto_init()
if !protoimpl.UnsafeEnabled {
file_google_cloud_aiplatform_v1_pipeline_job_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_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTemplateMetadata); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineJobDetail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskDetail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskExecutorDetail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[5].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_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineJob_RuntimeConfig_InputArtifact); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskDetail_PipelineTaskStatus); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskDetail_ArtifactList); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskExecutorDetail_ContainerDetail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*PipelineTaskExecutorDetail_CustomJobDetail); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[4].OneofWrappers = []interface{}{
(*PipelineTaskExecutorDetail_ContainerDetail_)(nil),
(*PipelineTaskExecutorDetail_CustomJobDetail_)(nil),
}
file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes[7].OneofWrappers = []interface{}{
(*PipelineJob_RuntimeConfig_InputArtifact_ArtifactId)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDesc,
NumEnums: 1,
NumMessages: 17,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_google_cloud_aiplatform_v1_pipeline_job_proto_goTypes,
DependencyIndexes: file_google_cloud_aiplatform_v1_pipeline_job_proto_depIdxs,
EnumInfos: file_google_cloud_aiplatform_v1_pipeline_job_proto_enumTypes,
MessageInfos: file_google_cloud_aiplatform_v1_pipeline_job_proto_msgTypes,
}.Build()
File_google_cloud_aiplatform_v1_pipeline_job_proto = out.File
file_google_cloud_aiplatform_v1_pipeline_job_proto_rawDesc = nil
file_google_cloud_aiplatform_v1_pipeline_job_proto_goTypes = nil
file_google_cloud_aiplatform_v1_pipeline_job_proto_depIdxs = nil
}