cloud.google.com/go/aiplatform@v1.106.0/apiv1/aiplatformpb/training_pipeline.pb.go (about) 1 // Copyright 2025 Google LLC 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 // Code generated by protoc-gen-go. DO NOT EDIT. 16 // versions: 17 // protoc-gen-go v1.35.2 18 // protoc v4.25.7 19 // source: google/cloud/aiplatform/v1/training_pipeline.proto 20 21 package aiplatformpb 22 23 import ( 24 _ "google.golang.org/genproto/googleapis/api/annotations" 25 status "google.golang.org/genproto/googleapis/rpc/status" 26 protoreflect "google.golang.org/protobuf/reflect/protoreflect" 27 protoimpl "google.golang.org/protobuf/runtime/protoimpl" 28 structpb "google.golang.org/protobuf/types/known/structpb" 29 timestamppb "google.golang.org/protobuf/types/known/timestamppb" 30 reflect "reflect" 31 sync "sync" 32 ) 33 34 const ( 35 // Verify that this generated code is sufficiently up-to-date. 36 _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) 37 // Verify that runtime/protoimpl is sufficiently up-to-date. 38 _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) 39 ) 40 41 // The TrainingPipeline orchestrates tasks associated with training a Model. It 42 // always executes the training task, and optionally may also 43 // export data from Vertex AI's Dataset which becomes the training input, 44 // [upload][google.cloud.aiplatform.v1.ModelService.UploadModel] the Model to 45 // Vertex AI, and evaluate the Model. 46 type TrainingPipeline struct { 47 state protoimpl.MessageState 48 sizeCache protoimpl.SizeCache 49 unknownFields protoimpl.UnknownFields 50 51 // Output only. Resource name of the TrainingPipeline. 52 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` 53 // Required. The user-defined name of this TrainingPipeline. 54 DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` 55 // Specifies Vertex AI owned input data that may be used for training the 56 // Model. The TrainingPipeline's 57 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] 58 // should make clear whether this config is used and if there are any special 59 // requirements on how it should be filled. If nothing about this config is 60 // mentioned in the 61 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], 62 // then it should be assumed that the TrainingPipeline does not depend on this 63 // configuration. 64 InputDataConfig *InputDataConfig `protobuf:"bytes,3,opt,name=input_data_config,json=inputDataConfig,proto3" json:"input_data_config,omitempty"` 65 // Required. A Google Cloud Storage path to the YAML file that defines the 66 // training task which is responsible for producing the model artifact, and 67 // may also include additional auxiliary work. The definition files that can 68 // be used here are found in 69 // gs://google-cloud-aiplatform/schema/trainingjob/definition/. 70 // Note: The URI given on output will be immutable and probably different, 71 // including the URI scheme, than the one given on input. The output URI will 72 // point to a location where the user only has a read access. 73 TrainingTaskDefinition string `protobuf:"bytes,4,opt,name=training_task_definition,json=trainingTaskDefinition,proto3" json:"training_task_definition,omitempty"` 74 // Required. The training task's parameter(s), as specified in the 75 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s 76 // `inputs`. 77 TrainingTaskInputs *structpb.Value `protobuf:"bytes,5,opt,name=training_task_inputs,json=trainingTaskInputs,proto3" json:"training_task_inputs,omitempty"` 78 // Output only. The metadata information as specified in the 79 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s 80 // `metadata`. This metadata is an auxiliary runtime and final information 81 // about the training task. While the pipeline is running this information is 82 // populated only at a best effort basis. Only present if the 83 // pipeline's 84 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] 85 // contains `metadata` object. 86 TrainingTaskMetadata *structpb.Value `protobuf:"bytes,6,opt,name=training_task_metadata,json=trainingTaskMetadata,proto3" json:"training_task_metadata,omitempty"` 87 // Describes the Model that may be uploaded (via 88 // [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel]) 89 // by this TrainingPipeline. The TrainingPipeline's 90 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] 91 // should make clear whether this Model description should be populated, and 92 // if there are any special requirements regarding how it should be filled. If 93 // nothing is mentioned in the 94 // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], 95 // then it should be assumed that this field should not be filled and the 96 // training task either uploads the Model without a need of this information, 97 // or that training task does not support uploading a Model as part of the 98 // pipeline. When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and 99 // the trained Model had been uploaded into Vertex AI, then the 100 // model_to_upload's resource [name][google.cloud.aiplatform.v1.Model.name] is 101 // populated. The Model is always uploaded into the Project and Location in 102 // which this pipeline is. 103 ModelToUpload *Model `protobuf:"bytes,7,opt,name=model_to_upload,json=modelToUpload,proto3" json:"model_to_upload,omitempty"` 104 // Optional. The ID to use for the uploaded Model, which will become the final 105 // component of the model resource name. 106 // 107 // This value may be up to 63 characters, and valid characters are 108 // `[a-z0-9_-]`. The first character cannot be a number or hyphen. 109 ModelId string `protobuf:"bytes,22,opt,name=model_id,json=modelId,proto3" json:"model_id,omitempty"` 110 // Optional. When specify this field, the `model_to_upload` will not be 111 // uploaded as a new model, instead, it will become a new version of this 112 // `parent_model`. 113 ParentModel string `protobuf:"bytes,21,opt,name=parent_model,json=parentModel,proto3" json:"parent_model,omitempty"` 114 // Output only. The detailed state of the pipeline. 115 State PipelineState `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.PipelineState" json:"state,omitempty"` 116 // Output only. Only populated when the pipeline's state is 117 // `PIPELINE_STATE_FAILED` or `PIPELINE_STATE_CANCELLED`. 118 Error *status.Status `protobuf:"bytes,10,opt,name=error,proto3" json:"error,omitempty"` 119 // Output only. Time when the TrainingPipeline was created. 120 CreateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` 121 // Output only. Time when the TrainingPipeline for the first time entered the 122 // `PIPELINE_STATE_RUNNING` state. 123 StartTime *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` 124 // Output only. Time when the TrainingPipeline entered any of the following 125 // states: `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, 126 // `PIPELINE_STATE_CANCELLED`. 127 EndTime *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` 128 // Output only. Time when the TrainingPipeline was most recently updated. 129 UpdateTime *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` 130 // The labels with user-defined metadata to organize TrainingPipelines. 131 // 132 // Label keys and values can be no longer than 64 characters 133 // (Unicode codepoints), can only contain lowercase letters, numeric 134 // characters, underscores and dashes. International characters are allowed. 135 // 136 // See https://goo.gl/xmQnxf for more information and examples of labels. 137 Labels map[string]string `protobuf:"bytes,15,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` 138 // Customer-managed encryption key spec for a TrainingPipeline. If set, this 139 // TrainingPipeline will be secured by this key. 140 // 141 // Note: Model trained by this TrainingPipeline is also secured by this key if 142 // [model_to_upload][google.cloud.aiplatform.v1.TrainingPipeline.encryption_spec] 143 // is not set separately. 144 EncryptionSpec *EncryptionSpec `protobuf:"bytes,18,opt,name=encryption_spec,json=encryptionSpec,proto3" json:"encryption_spec,omitempty"` 145 } 146 147 func (x *TrainingPipeline) Reset() { 148 *x = TrainingPipeline{} 149 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[0] 150 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 151 ms.StoreMessageInfo(mi) 152 } 153 154 func (x *TrainingPipeline) String() string { 155 return protoimpl.X.MessageStringOf(x) 156 } 157 158 func (*TrainingPipeline) ProtoMessage() {} 159 160 func (x *TrainingPipeline) ProtoReflect() protoreflect.Message { 161 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[0] 162 if x != nil { 163 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 164 if ms.LoadMessageInfo() == nil { 165 ms.StoreMessageInfo(mi) 166 } 167 return ms 168 } 169 return mi.MessageOf(x) 170 } 171 172 // Deprecated: Use TrainingPipeline.ProtoReflect.Descriptor instead. 173 func (*TrainingPipeline) Descriptor() ([]byte, []int) { 174 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{0} 175 } 176 177 func (x *TrainingPipeline) GetName() string { 178 if x != nil { 179 return x.Name 180 } 181 return "" 182 } 183 184 func (x *TrainingPipeline) GetDisplayName() string { 185 if x != nil { 186 return x.DisplayName 187 } 188 return "" 189 } 190 191 func (x *TrainingPipeline) GetInputDataConfig() *InputDataConfig { 192 if x != nil { 193 return x.InputDataConfig 194 } 195 return nil 196 } 197 198 func (x *TrainingPipeline) GetTrainingTaskDefinition() string { 199 if x != nil { 200 return x.TrainingTaskDefinition 201 } 202 return "" 203 } 204 205 func (x *TrainingPipeline) GetTrainingTaskInputs() *structpb.Value { 206 if x != nil { 207 return x.TrainingTaskInputs 208 } 209 return nil 210 } 211 212 func (x *TrainingPipeline) GetTrainingTaskMetadata() *structpb.Value { 213 if x != nil { 214 return x.TrainingTaskMetadata 215 } 216 return nil 217 } 218 219 func (x *TrainingPipeline) GetModelToUpload() *Model { 220 if x != nil { 221 return x.ModelToUpload 222 } 223 return nil 224 } 225 226 func (x *TrainingPipeline) GetModelId() string { 227 if x != nil { 228 return x.ModelId 229 } 230 return "" 231 } 232 233 func (x *TrainingPipeline) GetParentModel() string { 234 if x != nil { 235 return x.ParentModel 236 } 237 return "" 238 } 239 240 func (x *TrainingPipeline) GetState() PipelineState { 241 if x != nil { 242 return x.State 243 } 244 return PipelineState_PIPELINE_STATE_UNSPECIFIED 245 } 246 247 func (x *TrainingPipeline) GetError() *status.Status { 248 if x != nil { 249 return x.Error 250 } 251 return nil 252 } 253 254 func (x *TrainingPipeline) GetCreateTime() *timestamppb.Timestamp { 255 if x != nil { 256 return x.CreateTime 257 } 258 return nil 259 } 260 261 func (x *TrainingPipeline) GetStartTime() *timestamppb.Timestamp { 262 if x != nil { 263 return x.StartTime 264 } 265 return nil 266 } 267 268 func (x *TrainingPipeline) GetEndTime() *timestamppb.Timestamp { 269 if x != nil { 270 return x.EndTime 271 } 272 return nil 273 } 274 275 func (x *TrainingPipeline) GetUpdateTime() *timestamppb.Timestamp { 276 if x != nil { 277 return x.UpdateTime 278 } 279 return nil 280 } 281 282 func (x *TrainingPipeline) GetLabels() map[string]string { 283 if x != nil { 284 return x.Labels 285 } 286 return nil 287 } 288 289 func (x *TrainingPipeline) GetEncryptionSpec() *EncryptionSpec { 290 if x != nil { 291 return x.EncryptionSpec 292 } 293 return nil 294 } 295 296 // Specifies Vertex AI owned input data to be used for training, and 297 // possibly evaluating, the Model. 298 type InputDataConfig struct { 299 state protoimpl.MessageState 300 sizeCache protoimpl.SizeCache 301 unknownFields protoimpl.UnknownFields 302 303 // The instructions how the input data should be split between the 304 // training, validation and test sets. 305 // If no split type is provided, the 306 // [fraction_split][google.cloud.aiplatform.v1.InputDataConfig.fraction_split] 307 // is used by default. 308 // 309 // Types that are assignable to Split: 310 // 311 // *InputDataConfig_FractionSplit 312 // *InputDataConfig_FilterSplit 313 // *InputDataConfig_PredefinedSplit 314 // *InputDataConfig_TimestampSplit 315 // *InputDataConfig_StratifiedSplit 316 Split isInputDataConfig_Split `protobuf_oneof:"split"` 317 // Only applicable to Custom and Hyperparameter Tuning TrainingPipelines. 318 // 319 // The destination of the training data to be written to. 320 // 321 // Supported destination file formats: 322 // - For non-tabular data: "jsonl". 323 // - For tabular data: "csv" and "bigquery". 324 // 325 // The following Vertex AI environment variables are passed to containers 326 // or python modules of the training task when this field is set: 327 // 328 // * AIP_DATA_FORMAT : Exported data format. 329 // * AIP_TRAINING_DATA_URI : Sharded exported training data uris. 330 // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. 331 // * AIP_TEST_DATA_URI : Sharded exported test data uris. 332 // 333 // Types that are assignable to Destination: 334 // 335 // *InputDataConfig_GcsDestination 336 // *InputDataConfig_BigqueryDestination 337 Destination isInputDataConfig_Destination `protobuf_oneof:"destination"` 338 // Required. The ID of the Dataset in the same Project and Location which data 339 // will be used to train the Model. The Dataset must use schema compatible 340 // with Model being trained, and what is compatible should be described in the 341 // used TrainingPipeline's [training_task_definition] 342 // [google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]. 343 // For tabular Datasets, all their data is exported to training, to pick 344 // and choose from. 345 DatasetId string `protobuf:"bytes,1,opt,name=dataset_id,json=datasetId,proto3" json:"dataset_id,omitempty"` 346 // Applicable only to Datasets that have DataItems and Annotations. 347 // 348 // A filter on Annotations of the Dataset. Only Annotations that both 349 // match this filter and belong to DataItems not ignored by the split method 350 // are used in respectively training, validation or test role, depending on 351 // the role of the DataItem they are on (for the auto-assigned that role is 352 // decided by Vertex AI). A filter with same syntax as the one used in 353 // [ListAnnotations][google.cloud.aiplatform.v1.DatasetService.ListAnnotations] 354 // may be used, but note here it filters across all Annotations of the 355 // Dataset, and not just within a single DataItem. 356 AnnotationsFilter string `protobuf:"bytes,6,opt,name=annotations_filter,json=annotationsFilter,proto3" json:"annotations_filter,omitempty"` 357 // Applicable only to custom training with Datasets that have DataItems and 358 // Annotations. 359 // 360 // Cloud Storage URI that points to a YAML file describing the annotation 361 // schema. The schema is defined as an OpenAPI 3.0.2 [Schema 362 // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). 363 // The schema files that can be used here are found in 364 // gs://google-cloud-aiplatform/schema/dataset/annotation/ , note that the 365 // chosen schema must be consistent with 366 // [metadata][google.cloud.aiplatform.v1.Dataset.metadata_schema_uri] of the 367 // Dataset specified by 368 // [dataset_id][google.cloud.aiplatform.v1.InputDataConfig.dataset_id]. 369 // 370 // Only Annotations that both match this schema and belong to DataItems not 371 // ignored by the split method are used in respectively training, validation 372 // or test role, depending on the role of the DataItem they are on. 373 // 374 // When used in conjunction with 375 // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter], 376 // the Annotations used for training are filtered by both 377 // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter] 378 // and 379 // [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri]. 380 AnnotationSchemaUri string `protobuf:"bytes,9,opt,name=annotation_schema_uri,json=annotationSchemaUri,proto3" json:"annotation_schema_uri,omitempty"` 381 // Only applicable to Datasets that have SavedQueries. 382 // 383 // The ID of a SavedQuery (annotation set) under the Dataset specified by 384 // [dataset_id][google.cloud.aiplatform.v1.InputDataConfig.dataset_id] used 385 // for filtering Annotations for training. 386 // 387 // Only Annotations that are associated with this SavedQuery are used in 388 // respectively training. When used in conjunction with 389 // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter], 390 // the Annotations used for training are filtered by both 391 // [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] 392 // and 393 // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter]. 394 // 395 // Only one of 396 // [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] 397 // and 398 // [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri] 399 // should be specified as both of them represent the same thing: problem type. 400 SavedQueryId string `protobuf:"bytes,7,opt,name=saved_query_id,json=savedQueryId,proto3" json:"saved_query_id,omitempty"` 401 // Whether to persist the ML use assignment to data item system labels. 402 PersistMlUseAssignment bool `protobuf:"varint,11,opt,name=persist_ml_use_assignment,json=persistMlUseAssignment,proto3" json:"persist_ml_use_assignment,omitempty"` 403 } 404 405 func (x *InputDataConfig) Reset() { 406 *x = InputDataConfig{} 407 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[1] 408 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 409 ms.StoreMessageInfo(mi) 410 } 411 412 func (x *InputDataConfig) String() string { 413 return protoimpl.X.MessageStringOf(x) 414 } 415 416 func (*InputDataConfig) ProtoMessage() {} 417 418 func (x *InputDataConfig) ProtoReflect() protoreflect.Message { 419 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[1] 420 if x != nil { 421 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 422 if ms.LoadMessageInfo() == nil { 423 ms.StoreMessageInfo(mi) 424 } 425 return ms 426 } 427 return mi.MessageOf(x) 428 } 429 430 // Deprecated: Use InputDataConfig.ProtoReflect.Descriptor instead. 431 func (*InputDataConfig) Descriptor() ([]byte, []int) { 432 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{1} 433 } 434 435 func (m *InputDataConfig) GetSplit() isInputDataConfig_Split { 436 if m != nil { 437 return m.Split 438 } 439 return nil 440 } 441 442 func (x *InputDataConfig) GetFractionSplit() *FractionSplit { 443 if x, ok := x.GetSplit().(*InputDataConfig_FractionSplit); ok { 444 return x.FractionSplit 445 } 446 return nil 447 } 448 449 func (x *InputDataConfig) GetFilterSplit() *FilterSplit { 450 if x, ok := x.GetSplit().(*InputDataConfig_FilterSplit); ok { 451 return x.FilterSplit 452 } 453 return nil 454 } 455 456 func (x *InputDataConfig) GetPredefinedSplit() *PredefinedSplit { 457 if x, ok := x.GetSplit().(*InputDataConfig_PredefinedSplit); ok { 458 return x.PredefinedSplit 459 } 460 return nil 461 } 462 463 func (x *InputDataConfig) GetTimestampSplit() *TimestampSplit { 464 if x, ok := x.GetSplit().(*InputDataConfig_TimestampSplit); ok { 465 return x.TimestampSplit 466 } 467 return nil 468 } 469 470 func (x *InputDataConfig) GetStratifiedSplit() *StratifiedSplit { 471 if x, ok := x.GetSplit().(*InputDataConfig_StratifiedSplit); ok { 472 return x.StratifiedSplit 473 } 474 return nil 475 } 476 477 func (m *InputDataConfig) GetDestination() isInputDataConfig_Destination { 478 if m != nil { 479 return m.Destination 480 } 481 return nil 482 } 483 484 func (x *InputDataConfig) GetGcsDestination() *GcsDestination { 485 if x, ok := x.GetDestination().(*InputDataConfig_GcsDestination); ok { 486 return x.GcsDestination 487 } 488 return nil 489 } 490 491 func (x *InputDataConfig) GetBigqueryDestination() *BigQueryDestination { 492 if x, ok := x.GetDestination().(*InputDataConfig_BigqueryDestination); ok { 493 return x.BigqueryDestination 494 } 495 return nil 496 } 497 498 func (x *InputDataConfig) GetDatasetId() string { 499 if x != nil { 500 return x.DatasetId 501 } 502 return "" 503 } 504 505 func (x *InputDataConfig) GetAnnotationsFilter() string { 506 if x != nil { 507 return x.AnnotationsFilter 508 } 509 return "" 510 } 511 512 func (x *InputDataConfig) GetAnnotationSchemaUri() string { 513 if x != nil { 514 return x.AnnotationSchemaUri 515 } 516 return "" 517 } 518 519 func (x *InputDataConfig) GetSavedQueryId() string { 520 if x != nil { 521 return x.SavedQueryId 522 } 523 return "" 524 } 525 526 func (x *InputDataConfig) GetPersistMlUseAssignment() bool { 527 if x != nil { 528 return x.PersistMlUseAssignment 529 } 530 return false 531 } 532 533 type isInputDataConfig_Split interface { 534 isInputDataConfig_Split() 535 } 536 537 type InputDataConfig_FractionSplit struct { 538 // Split based on fractions defining the size of each set. 539 FractionSplit *FractionSplit `protobuf:"bytes,2,opt,name=fraction_split,json=fractionSplit,proto3,oneof"` 540 } 541 542 type InputDataConfig_FilterSplit struct { 543 // Split based on the provided filters for each set. 544 FilterSplit *FilterSplit `protobuf:"bytes,3,opt,name=filter_split,json=filterSplit,proto3,oneof"` 545 } 546 547 type InputDataConfig_PredefinedSplit struct { 548 // Supported only for tabular Datasets. 549 // 550 // Split based on a predefined key. 551 PredefinedSplit *PredefinedSplit `protobuf:"bytes,4,opt,name=predefined_split,json=predefinedSplit,proto3,oneof"` 552 } 553 554 type InputDataConfig_TimestampSplit struct { 555 // Supported only for tabular Datasets. 556 // 557 // Split based on the timestamp of the input data pieces. 558 TimestampSplit *TimestampSplit `protobuf:"bytes,5,opt,name=timestamp_split,json=timestampSplit,proto3,oneof"` 559 } 560 561 type InputDataConfig_StratifiedSplit struct { 562 // Supported only for tabular Datasets. 563 // 564 // Split based on the distribution of the specified column. 565 StratifiedSplit *StratifiedSplit `protobuf:"bytes,12,opt,name=stratified_split,json=stratifiedSplit,proto3,oneof"` 566 } 567 568 func (*InputDataConfig_FractionSplit) isInputDataConfig_Split() {} 569 570 func (*InputDataConfig_FilterSplit) isInputDataConfig_Split() {} 571 572 func (*InputDataConfig_PredefinedSplit) isInputDataConfig_Split() {} 573 574 func (*InputDataConfig_TimestampSplit) isInputDataConfig_Split() {} 575 576 func (*InputDataConfig_StratifiedSplit) isInputDataConfig_Split() {} 577 578 type isInputDataConfig_Destination interface { 579 isInputDataConfig_Destination() 580 } 581 582 type InputDataConfig_GcsDestination struct { 583 // The Cloud Storage location where the training data is to be 584 // written to. In the given directory a new directory is created with 585 // name: 586 // `dataset-<dataset-id>-<annotation-type>-<timestamp-of-training-call>` 587 // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. 588 // All training input data is written into that directory. 589 // 590 // The Vertex AI environment variables representing Cloud Storage 591 // data URIs are represented in the Cloud Storage wildcard 592 // format to support sharded data. e.g.: "gs://.../training-*.jsonl" 593 // 594 // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data 595 // * AIP_TRAINING_DATA_URI = 596 // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/training-*.${AIP_DATA_FORMAT}" 597 // 598 // * AIP_VALIDATION_DATA_URI = 599 // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/validation-*.${AIP_DATA_FORMAT}" 600 // 601 // * AIP_TEST_DATA_URI = 602 // "gcs_destination/dataset-<dataset-id>-<annotation-type>-<time>/test-*.${AIP_DATA_FORMAT}" 603 GcsDestination *GcsDestination `protobuf:"bytes,8,opt,name=gcs_destination,json=gcsDestination,proto3,oneof"` 604 } 605 606 type InputDataConfig_BigqueryDestination struct { 607 // Only applicable to custom training with tabular Dataset with BigQuery 608 // source. 609 // 610 // The BigQuery project location where the training data is to be written 611 // to. In the given project a new dataset is created with name 612 // `dataset_<dataset-id>_<annotation-type>_<timestamp-of-training-call>` 613 // where timestamp is in YYYY_MM_DDThh_mm_ss_sssZ format. All training 614 // input data is written into that dataset. In the dataset three 615 // tables are created, `training`, `validation` and `test`. 616 // 617 // * AIP_DATA_FORMAT = "bigquery". 618 // * AIP_TRAINING_DATA_URI = 619 // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.training" 620 // 621 // * AIP_VALIDATION_DATA_URI = 622 // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.validation" 623 // 624 // * AIP_TEST_DATA_URI = 625 // "bigquery_destination.dataset_<dataset-id>_<annotation-type>_<time>.test" 626 BigqueryDestination *BigQueryDestination `protobuf:"bytes,10,opt,name=bigquery_destination,json=bigqueryDestination,proto3,oneof"` 627 } 628 629 func (*InputDataConfig_GcsDestination) isInputDataConfig_Destination() {} 630 631 func (*InputDataConfig_BigqueryDestination) isInputDataConfig_Destination() {} 632 633 // Assigns the input data to training, validation, and test sets as per the 634 // given fractions. Any of `training_fraction`, `validation_fraction` and 635 // `test_fraction` may optionally be provided, they must sum to up to 1. If the 636 // provided ones sum to less than 1, the remainder is assigned to sets as 637 // decided by Vertex AI. If none of the fractions are set, by default roughly 638 // 80% of data is used for training, 10% for validation, and 10% for test. 639 type FractionSplit struct { 640 state protoimpl.MessageState 641 sizeCache protoimpl.SizeCache 642 unknownFields protoimpl.UnknownFields 643 644 // The fraction of the input data that is to be used to train the Model. 645 TrainingFraction float64 `protobuf:"fixed64,1,opt,name=training_fraction,json=trainingFraction,proto3" json:"training_fraction,omitempty"` 646 // The fraction of the input data that is to be used to validate the Model. 647 ValidationFraction float64 `protobuf:"fixed64,2,opt,name=validation_fraction,json=validationFraction,proto3" json:"validation_fraction,omitempty"` 648 // The fraction of the input data that is to be used to evaluate the Model. 649 TestFraction float64 `protobuf:"fixed64,3,opt,name=test_fraction,json=testFraction,proto3" json:"test_fraction,omitempty"` 650 } 651 652 func (x *FractionSplit) Reset() { 653 *x = FractionSplit{} 654 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[2] 655 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 656 ms.StoreMessageInfo(mi) 657 } 658 659 func (x *FractionSplit) String() string { 660 return protoimpl.X.MessageStringOf(x) 661 } 662 663 func (*FractionSplit) ProtoMessage() {} 664 665 func (x *FractionSplit) ProtoReflect() protoreflect.Message { 666 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[2] 667 if x != nil { 668 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 669 if ms.LoadMessageInfo() == nil { 670 ms.StoreMessageInfo(mi) 671 } 672 return ms 673 } 674 return mi.MessageOf(x) 675 } 676 677 // Deprecated: Use FractionSplit.ProtoReflect.Descriptor instead. 678 func (*FractionSplit) Descriptor() ([]byte, []int) { 679 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{2} 680 } 681 682 func (x *FractionSplit) GetTrainingFraction() float64 { 683 if x != nil { 684 return x.TrainingFraction 685 } 686 return 0 687 } 688 689 func (x *FractionSplit) GetValidationFraction() float64 { 690 if x != nil { 691 return x.ValidationFraction 692 } 693 return 0 694 } 695 696 func (x *FractionSplit) GetTestFraction() float64 { 697 if x != nil { 698 return x.TestFraction 699 } 700 return 0 701 } 702 703 // Assigns input data to training, validation, and test sets based on the given 704 // filters, data pieces not matched by any filter are ignored. Currently only 705 // supported for Datasets containing DataItems. 706 // If any of the filters in this message are to match nothing, then they can be 707 // set as '-' (the minus sign). 708 // 709 // Supported only for unstructured Datasets. 710 type FilterSplit struct { 711 state protoimpl.MessageState 712 sizeCache protoimpl.SizeCache 713 unknownFields protoimpl.UnknownFields 714 715 // Required. A filter on DataItems of the Dataset. DataItems that match 716 // this filter are used to train the Model. A filter with same syntax 717 // as the one used in 718 // [DatasetService.ListDataItems][google.cloud.aiplatform.v1.DatasetService.ListDataItems] 719 // may be used. If a single DataItem is matched by more than one of the 720 // FilterSplit filters, then it is assigned to the first set that applies to 721 // it in the training, validation, test order. 722 TrainingFilter string `protobuf:"bytes,1,opt,name=training_filter,json=trainingFilter,proto3" json:"training_filter,omitempty"` 723 // Required. A filter on DataItems of the Dataset. DataItems that match 724 // this filter are used to validate the Model. A filter with same syntax 725 // as the one used in 726 // [DatasetService.ListDataItems][google.cloud.aiplatform.v1.DatasetService.ListDataItems] 727 // may be used. If a single DataItem is matched by more than one of the 728 // FilterSplit filters, then it is assigned to the first set that applies to 729 // it in the training, validation, test order. 730 ValidationFilter string `protobuf:"bytes,2,opt,name=validation_filter,json=validationFilter,proto3" json:"validation_filter,omitempty"` 731 // Required. A filter on DataItems of the Dataset. DataItems that match 732 // this filter are used to test the Model. A filter with same syntax 733 // as the one used in 734 // [DatasetService.ListDataItems][google.cloud.aiplatform.v1.DatasetService.ListDataItems] 735 // may be used. If a single DataItem is matched by more than one of the 736 // FilterSplit filters, then it is assigned to the first set that applies to 737 // it in the training, validation, test order. 738 TestFilter string `protobuf:"bytes,3,opt,name=test_filter,json=testFilter,proto3" json:"test_filter,omitempty"` 739 } 740 741 func (x *FilterSplit) Reset() { 742 *x = FilterSplit{} 743 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[3] 744 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 745 ms.StoreMessageInfo(mi) 746 } 747 748 func (x *FilterSplit) String() string { 749 return protoimpl.X.MessageStringOf(x) 750 } 751 752 func (*FilterSplit) ProtoMessage() {} 753 754 func (x *FilterSplit) ProtoReflect() protoreflect.Message { 755 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[3] 756 if x != nil { 757 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 758 if ms.LoadMessageInfo() == nil { 759 ms.StoreMessageInfo(mi) 760 } 761 return ms 762 } 763 return mi.MessageOf(x) 764 } 765 766 // Deprecated: Use FilterSplit.ProtoReflect.Descriptor instead. 767 func (*FilterSplit) Descriptor() ([]byte, []int) { 768 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{3} 769 } 770 771 func (x *FilterSplit) GetTrainingFilter() string { 772 if x != nil { 773 return x.TrainingFilter 774 } 775 return "" 776 } 777 778 func (x *FilterSplit) GetValidationFilter() string { 779 if x != nil { 780 return x.ValidationFilter 781 } 782 return "" 783 } 784 785 func (x *FilterSplit) GetTestFilter() string { 786 if x != nil { 787 return x.TestFilter 788 } 789 return "" 790 } 791 792 // Assigns input data to training, validation, and test sets based on the 793 // value of a provided key. 794 // 795 // Supported only for tabular Datasets. 796 type PredefinedSplit struct { 797 state protoimpl.MessageState 798 sizeCache protoimpl.SizeCache 799 unknownFields protoimpl.UnknownFields 800 801 // Required. The key is a name of one of the Dataset's data columns. 802 // The value of the key (either the label's value or value in the column) 803 // must be one of {`training`, `validation`, `test`}, and it defines to which 804 // set the given piece of data is assigned. If for a piece of data the key 805 // is not present or has an invalid value, that piece is ignored by the 806 // pipeline. 807 Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` 808 } 809 810 func (x *PredefinedSplit) Reset() { 811 *x = PredefinedSplit{} 812 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[4] 813 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 814 ms.StoreMessageInfo(mi) 815 } 816 817 func (x *PredefinedSplit) String() string { 818 return protoimpl.X.MessageStringOf(x) 819 } 820 821 func (*PredefinedSplit) ProtoMessage() {} 822 823 func (x *PredefinedSplit) ProtoReflect() protoreflect.Message { 824 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[4] 825 if x != nil { 826 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 827 if ms.LoadMessageInfo() == nil { 828 ms.StoreMessageInfo(mi) 829 } 830 return ms 831 } 832 return mi.MessageOf(x) 833 } 834 835 // Deprecated: Use PredefinedSplit.ProtoReflect.Descriptor instead. 836 func (*PredefinedSplit) Descriptor() ([]byte, []int) { 837 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{4} 838 } 839 840 func (x *PredefinedSplit) GetKey() string { 841 if x != nil { 842 return x.Key 843 } 844 return "" 845 } 846 847 // Assigns input data to training, validation, and test sets based on a 848 // provided timestamps. The youngest data pieces are assigned to training set, 849 // next to validation set, and the oldest to the test set. 850 // 851 // Supported only for tabular Datasets. 852 type TimestampSplit struct { 853 state protoimpl.MessageState 854 sizeCache protoimpl.SizeCache 855 unknownFields protoimpl.UnknownFields 856 857 // The fraction of the input data that is to be used to train the Model. 858 TrainingFraction float64 `protobuf:"fixed64,1,opt,name=training_fraction,json=trainingFraction,proto3" json:"training_fraction,omitempty"` 859 // The fraction of the input data that is to be used to validate the Model. 860 ValidationFraction float64 `protobuf:"fixed64,2,opt,name=validation_fraction,json=validationFraction,proto3" json:"validation_fraction,omitempty"` 861 // The fraction of the input data that is to be used to evaluate the Model. 862 TestFraction float64 `protobuf:"fixed64,3,opt,name=test_fraction,json=testFraction,proto3" json:"test_fraction,omitempty"` 863 // Required. The key is a name of one of the Dataset's data columns. 864 // The values of the key (the values in the column) must be in RFC 3339 865 // `date-time` format, where `time-offset` = `"Z"` 866 // (e.g. 1985-04-12T23:20:50.52Z). If for a piece of data the key is not 867 // present or has an invalid value, that piece is ignored by the pipeline. 868 Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` 869 } 870 871 func (x *TimestampSplit) Reset() { 872 *x = TimestampSplit{} 873 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[5] 874 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 875 ms.StoreMessageInfo(mi) 876 } 877 878 func (x *TimestampSplit) String() string { 879 return protoimpl.X.MessageStringOf(x) 880 } 881 882 func (*TimestampSplit) ProtoMessage() {} 883 884 func (x *TimestampSplit) ProtoReflect() protoreflect.Message { 885 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[5] 886 if x != nil { 887 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 888 if ms.LoadMessageInfo() == nil { 889 ms.StoreMessageInfo(mi) 890 } 891 return ms 892 } 893 return mi.MessageOf(x) 894 } 895 896 // Deprecated: Use TimestampSplit.ProtoReflect.Descriptor instead. 897 func (*TimestampSplit) Descriptor() ([]byte, []int) { 898 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{5} 899 } 900 901 func (x *TimestampSplit) GetTrainingFraction() float64 { 902 if x != nil { 903 return x.TrainingFraction 904 } 905 return 0 906 } 907 908 func (x *TimestampSplit) GetValidationFraction() float64 { 909 if x != nil { 910 return x.ValidationFraction 911 } 912 return 0 913 } 914 915 func (x *TimestampSplit) GetTestFraction() float64 { 916 if x != nil { 917 return x.TestFraction 918 } 919 return 0 920 } 921 922 func (x *TimestampSplit) GetKey() string { 923 if x != nil { 924 return x.Key 925 } 926 return "" 927 } 928 929 // Assigns input data to the training, validation, and test sets so that the 930 // distribution of values found in the categorical column (as specified by the 931 // `key` field) is mirrored within each split. The fraction values determine 932 // the relative sizes of the splits. 933 // 934 // For example, if the specified column has three values, with 50% of the rows 935 // having value "A", 25% value "B", and 25% value "C", and the split fractions 936 // are specified as 80/10/10, then the training set will constitute 80% of the 937 // training data, with about 50% of the training set rows having the value "A" 938 // for the specified column, about 25% having the value "B", and about 25% 939 // having the value "C". 940 // 941 // Only the top 500 occurring values are used; any values not in the top 942 // 500 values are randomly assigned to a split. If less than three rows contain 943 // a specific value, those rows are randomly assigned. 944 // 945 // Supported only for tabular Datasets. 946 type StratifiedSplit struct { 947 state protoimpl.MessageState 948 sizeCache protoimpl.SizeCache 949 unknownFields protoimpl.UnknownFields 950 951 // The fraction of the input data that is to be used to train the Model. 952 TrainingFraction float64 `protobuf:"fixed64,1,opt,name=training_fraction,json=trainingFraction,proto3" json:"training_fraction,omitempty"` 953 // The fraction of the input data that is to be used to validate the Model. 954 ValidationFraction float64 `protobuf:"fixed64,2,opt,name=validation_fraction,json=validationFraction,proto3" json:"validation_fraction,omitempty"` 955 // The fraction of the input data that is to be used to evaluate the Model. 956 TestFraction float64 `protobuf:"fixed64,3,opt,name=test_fraction,json=testFraction,proto3" json:"test_fraction,omitempty"` 957 // Required. The key is a name of one of the Dataset's data columns. 958 // The key provided must be for a categorical column. 959 Key string `protobuf:"bytes,4,opt,name=key,proto3" json:"key,omitempty"` 960 } 961 962 func (x *StratifiedSplit) Reset() { 963 *x = StratifiedSplit{} 964 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[6] 965 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 966 ms.StoreMessageInfo(mi) 967 } 968 969 func (x *StratifiedSplit) String() string { 970 return protoimpl.X.MessageStringOf(x) 971 } 972 973 func (*StratifiedSplit) ProtoMessage() {} 974 975 func (x *StratifiedSplit) ProtoReflect() protoreflect.Message { 976 mi := &file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[6] 977 if x != nil { 978 ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) 979 if ms.LoadMessageInfo() == nil { 980 ms.StoreMessageInfo(mi) 981 } 982 return ms 983 } 984 return mi.MessageOf(x) 985 } 986 987 // Deprecated: Use StratifiedSplit.ProtoReflect.Descriptor instead. 988 func (*StratifiedSplit) Descriptor() ([]byte, []int) { 989 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP(), []int{6} 990 } 991 992 func (x *StratifiedSplit) GetTrainingFraction() float64 { 993 if x != nil { 994 return x.TrainingFraction 995 } 996 return 0 997 } 998 999 func (x *StratifiedSplit) GetValidationFraction() float64 { 1000 if x != nil { 1001 return x.ValidationFraction 1002 } 1003 return 0 1004 } 1005 1006 func (x *StratifiedSplit) GetTestFraction() float64 { 1007 if x != nil { 1008 return x.TestFraction 1009 } 1010 return 0 1011 } 1012 1013 func (x *StratifiedSplit) GetKey() string { 1014 if x != nil { 1015 return x.Key 1016 } 1017 return "" 1018 } 1019 1020 var File_google_cloud_aiplatform_v1_training_pipeline_proto protoreflect.FileDescriptor 1021 1022 var file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDesc = []byte{ 1023 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 1024 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x72, 0x61, 1025 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x70, 1026 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 1027 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 1028 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 1029 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1030 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 1031 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 1032 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 1033 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 1034 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 1035 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 1036 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 0x70, 0x72, 1037 0x6f, 0x74, 0x6f, 0x1a, 0x26, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 1038 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 1039 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2f, 0x67, 0x6f, 0x6f, 1040 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1041 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 1042 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 1043 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 1044 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 1045 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 1046 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 1047 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 1048 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf7, 0x09, 0x0a, 0x10, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 1049 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 1050 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 1051 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 1052 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 1053 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x69, 0x6e, 1054 0x70, 0x75, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 1055 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 1056 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1057 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 1058 0x69, 0x67, 0x52, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 1059 0x66, 0x69, 0x67, 0x12, 0x3d, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 1060 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 1061 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x16, 0x74, 0x72, 0x61, 0x69, 1062 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 1063 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 1064 0x61, 0x73, 0x6b, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 1065 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1066 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x74, 1067 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x49, 0x6e, 0x70, 0x75, 0x74, 1068 0x73, 0x12, 0x51, 0x0a, 0x16, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 1069 0x73, 0x6b, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 1070 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1071 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x14, 1072 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x73, 0x6b, 0x4d, 0x65, 0x74, 0x61, 1073 0x64, 0x61, 0x74, 0x61, 0x12, 0x49, 0x0a, 0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x6f, 1074 0x5f, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 1075 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 1076 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 1077 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x6f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x12, 1078 0x1e, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 1079 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 1080 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 1081 0x15, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x65, 1082 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 1083 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 1084 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 1085 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x61, 0x74, 1086 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 1087 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x67, 1088 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 1089 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x40, 0x0a, 0x0b, 1090 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 1091 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 1092 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 1093 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3e, 1094 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 1095 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 1096 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 1097 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 1098 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 1099 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 1100 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 1101 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 1102 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 1103 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 1104 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 1105 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x50, 0x0a, 0x06, 1106 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 1107 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1108 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 1109 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 1110 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x53, 1111 0x0a, 0x0f, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x70, 0x65, 1112 0x63, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1113 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1114 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 1115 0x70, 0x65, 0x63, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x53, 1116 0x70, 0x65, 0x63, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 1117 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 1118 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 1119 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x7e, 1120 0xea, 0x41, 0x7b, 0x0a, 0x2a, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 1121 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 1122 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 1123 0x4d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 1124 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 1125 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 1126 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x72, 0x61, 0x69, 1127 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x7d, 0x22, 0xfb, 1128 0x06, 0x0a, 0x0f, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x44, 0x61, 0x74, 0x61, 0x43, 0x6f, 0x6e, 0x66, 1129 0x69, 0x67, 0x12, 0x52, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 1130 0x70, 0x6c, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 1131 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 1132 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1133 0x53, 0x70, 0x6c, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 1134 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 1135 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 1136 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 1137 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 1138 0x53, 0x70, 0x6c, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 1139 0x70, 0x6c, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x10, 0x70, 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 1140 0x65, 0x64, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 1141 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 1142 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x65, 0x64, 1143 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x70, 1144 0x72, 0x65, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x55, 1145 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x73, 0x70, 0x6c, 0x69, 1146 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 1147 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 1148 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 0x70, 1149 0x6c, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 1150 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x58, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x66, 1151 0x69, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 1152 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 1153 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 1154 0x61, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0f, 1155 0x73, 0x74, 0x72, 0x61, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 1156 0x55, 0x0a, 0x0f, 0x67, 0x63, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 1157 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 1158 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1159 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 1160 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x0e, 0x67, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 1161 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x14, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 1162 0x72, 0x79, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 1163 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 1164 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 1165 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 1166 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x01, 0x52, 0x13, 0x62, 0x69, 0x67, 0x71, 0x75, 0x65, 0x72, 1167 0x79, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 1168 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 1169 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x49, 0x64, 1170 0x12, 0x2d, 0x0a, 0x12, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 1171 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x6e, 1172 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 1173 0x32, 0x0a, 0x15, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 1174 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 1175 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 1176 0x55, 0x72, 0x69, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x61, 0x76, 0x65, 0x64, 0x5f, 0x71, 0x75, 0x65, 1177 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x61, 0x76, 1178 0x65, 0x64, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x19, 0x70, 0x65, 0x72, 1179 0x73, 0x69, 0x73, 0x74, 0x5f, 0x6d, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 1180 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x70, 0x65, 1181 0x72, 0x73, 0x69, 0x73, 0x74, 0x4d, 0x6c, 0x55, 0x73, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 1182 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x73, 0x70, 0x6c, 0x69, 0x74, 0x42, 0x0d, 0x0a, 1183 0x0b, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x01, 0x0a, 1184 0x0d, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x2b, 1185 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 1186 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 1187 0x69, 0x6e, 0x67, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x76, 1188 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 1189 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 1190 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 1191 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 1192 0x01, 0x28, 0x01, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 1193 0x6e, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x70, 0x6c, 0x69, 1194 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 1195 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 1196 0x0e, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 1197 0x30, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x69, 1198 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 1199 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x69, 0x6c, 0x74, 0x65, 1200 0x72, 0x12, 0x24, 0x0a, 0x0b, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 1201 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x74, 0x65, 0x73, 1202 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x28, 0x0a, 0x0f, 0x50, 0x72, 0x65, 0x64, 0x65, 1203 0x66, 0x69, 0x6e, 0x65, 0x64, 0x53, 0x70, 0x6c, 0x69, 0x74, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 1204 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 1205 0x79, 0x22, 0xaa, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x53, 1206 0x70, 0x6c, 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 1207 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 1208 0x10, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 1209 0x6e, 0x12, 0x2f, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 1210 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 1211 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 1212 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 1213 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x46, 1214 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 1215 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xab, 1216 0x01, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x61, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x53, 0x70, 0x6c, 1217 0x69, 0x74, 0x12, 0x2b, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x66, 1218 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x74, 1219 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 1220 0x2f, 0x0a, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 1221 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x76, 0x61, 1222 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 1223 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 1224 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x46, 0x72, 0x61, 1225 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 1226 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x42, 0xd3, 0x01, 0x0a, 1227 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 1228 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 1229 0x15, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 1230 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 1231 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 1232 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 1233 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 1234 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 1235 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 1236 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 1237 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 1238 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 1239 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 1240 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 1241 } 1242 1243 var ( 1244 file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescOnce sync.Once 1245 file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescData = file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDesc 1246 ) 1247 1248 func file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescGZIP() []byte { 1249 file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescOnce.Do(func() { 1250 file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescData) 1251 }) 1252 return file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDescData 1253 } 1254 1255 var file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes = make([]protoimpl.MessageInfo, 8) 1256 var file_google_cloud_aiplatform_v1_training_pipeline_proto_goTypes = []any{ 1257 (*TrainingPipeline)(nil), // 0: google.cloud.aiplatform.v1.TrainingPipeline 1258 (*InputDataConfig)(nil), // 1: google.cloud.aiplatform.v1.InputDataConfig 1259 (*FractionSplit)(nil), // 2: google.cloud.aiplatform.v1.FractionSplit 1260 (*FilterSplit)(nil), // 3: google.cloud.aiplatform.v1.FilterSplit 1261 (*PredefinedSplit)(nil), // 4: google.cloud.aiplatform.v1.PredefinedSplit 1262 (*TimestampSplit)(nil), // 5: google.cloud.aiplatform.v1.TimestampSplit 1263 (*StratifiedSplit)(nil), // 6: google.cloud.aiplatform.v1.StratifiedSplit 1264 nil, // 7: google.cloud.aiplatform.v1.TrainingPipeline.LabelsEntry 1265 (*structpb.Value)(nil), // 8: google.protobuf.Value 1266 (*Model)(nil), // 9: google.cloud.aiplatform.v1.Model 1267 (PipelineState)(0), // 10: google.cloud.aiplatform.v1.PipelineState 1268 (*status.Status)(nil), // 11: google.rpc.Status 1269 (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp 1270 (*EncryptionSpec)(nil), // 13: google.cloud.aiplatform.v1.EncryptionSpec 1271 (*GcsDestination)(nil), // 14: google.cloud.aiplatform.v1.GcsDestination 1272 (*BigQueryDestination)(nil), // 15: google.cloud.aiplatform.v1.BigQueryDestination 1273 } 1274 var file_google_cloud_aiplatform_v1_training_pipeline_proto_depIdxs = []int32{ 1275 1, // 0: google.cloud.aiplatform.v1.TrainingPipeline.input_data_config:type_name -> google.cloud.aiplatform.v1.InputDataConfig 1276 8, // 1: google.cloud.aiplatform.v1.TrainingPipeline.training_task_inputs:type_name -> google.protobuf.Value 1277 8, // 2: google.cloud.aiplatform.v1.TrainingPipeline.training_task_metadata:type_name -> google.protobuf.Value 1278 9, // 3: google.cloud.aiplatform.v1.TrainingPipeline.model_to_upload:type_name -> google.cloud.aiplatform.v1.Model 1279 10, // 4: google.cloud.aiplatform.v1.TrainingPipeline.state:type_name -> google.cloud.aiplatform.v1.PipelineState 1280 11, // 5: google.cloud.aiplatform.v1.TrainingPipeline.error:type_name -> google.rpc.Status 1281 12, // 6: google.cloud.aiplatform.v1.TrainingPipeline.create_time:type_name -> google.protobuf.Timestamp 1282 12, // 7: google.cloud.aiplatform.v1.TrainingPipeline.start_time:type_name -> google.protobuf.Timestamp 1283 12, // 8: google.cloud.aiplatform.v1.TrainingPipeline.end_time:type_name -> google.protobuf.Timestamp 1284 12, // 9: google.cloud.aiplatform.v1.TrainingPipeline.update_time:type_name -> google.protobuf.Timestamp 1285 7, // 10: google.cloud.aiplatform.v1.TrainingPipeline.labels:type_name -> google.cloud.aiplatform.v1.TrainingPipeline.LabelsEntry 1286 13, // 11: google.cloud.aiplatform.v1.TrainingPipeline.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec 1287 2, // 12: google.cloud.aiplatform.v1.InputDataConfig.fraction_split:type_name -> google.cloud.aiplatform.v1.FractionSplit 1288 3, // 13: google.cloud.aiplatform.v1.InputDataConfig.filter_split:type_name -> google.cloud.aiplatform.v1.FilterSplit 1289 4, // 14: google.cloud.aiplatform.v1.InputDataConfig.predefined_split:type_name -> google.cloud.aiplatform.v1.PredefinedSplit 1290 5, // 15: google.cloud.aiplatform.v1.InputDataConfig.timestamp_split:type_name -> google.cloud.aiplatform.v1.TimestampSplit 1291 6, // 16: google.cloud.aiplatform.v1.InputDataConfig.stratified_split:type_name -> google.cloud.aiplatform.v1.StratifiedSplit 1292 14, // 17: google.cloud.aiplatform.v1.InputDataConfig.gcs_destination:type_name -> google.cloud.aiplatform.v1.GcsDestination 1293 15, // 18: google.cloud.aiplatform.v1.InputDataConfig.bigquery_destination:type_name -> google.cloud.aiplatform.v1.BigQueryDestination 1294 19, // [19:19] is the sub-list for method output_type 1295 19, // [19:19] is the sub-list for method input_type 1296 19, // [19:19] is the sub-list for extension type_name 1297 19, // [19:19] is the sub-list for extension extendee 1298 0, // [0:19] is the sub-list for field type_name 1299 } 1300 1301 func init() { file_google_cloud_aiplatform_v1_training_pipeline_proto_init() } 1302 func file_google_cloud_aiplatform_v1_training_pipeline_proto_init() { 1303 if File_google_cloud_aiplatform_v1_training_pipeline_proto != nil { 1304 return 1305 } 1306 file_google_cloud_aiplatform_v1_encryption_spec_proto_init() 1307 file_google_cloud_aiplatform_v1_io_proto_init() 1308 file_google_cloud_aiplatform_v1_model_proto_init() 1309 file_google_cloud_aiplatform_v1_pipeline_state_proto_init() 1310 file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes[1].OneofWrappers = []any{ 1311 (*InputDataConfig_FractionSplit)(nil), 1312 (*InputDataConfig_FilterSplit)(nil), 1313 (*InputDataConfig_PredefinedSplit)(nil), 1314 (*InputDataConfig_TimestampSplit)(nil), 1315 (*InputDataConfig_StratifiedSplit)(nil), 1316 (*InputDataConfig_GcsDestination)(nil), 1317 (*InputDataConfig_BigqueryDestination)(nil), 1318 } 1319 type x struct{} 1320 out := protoimpl.TypeBuilder{ 1321 File: protoimpl.DescBuilder{ 1322 GoPackagePath: reflect.TypeOf(x{}).PkgPath(), 1323 RawDescriptor: file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDesc, 1324 NumEnums: 0, 1325 NumMessages: 8, 1326 NumExtensions: 0, 1327 NumServices: 0, 1328 }, 1329 GoTypes: file_google_cloud_aiplatform_v1_training_pipeline_proto_goTypes, 1330 DependencyIndexes: file_google_cloud_aiplatform_v1_training_pipeline_proto_depIdxs, 1331 MessageInfos: file_google_cloud_aiplatform_v1_training_pipeline_proto_msgTypes, 1332 }.Build() 1333 File_google_cloud_aiplatform_v1_training_pipeline_proto = out.File 1334 file_google_cloud_aiplatform_v1_training_pipeline_proto_rawDesc = nil 1335 file_google_cloud_aiplatform_v1_training_pipeline_proto_goTypes = nil 1336 file_google_cloud_aiplatform_v1_training_pipeline_proto_depIdxs = nil 1337 }