From feef045c5de85008584a0f2279b70118cf6dc5bd Mon Sep 17 00:00:00 2001 From: Owl Bot Date: Fri, 16 Jul 2021 10:27:38 +0000 Subject: [PATCH 1/2] fix: Updating WORKSPACE files to use the newest version of the Typescript generator. Also removing the explicit generator tag for the IAMPolicy mixin for the kms and pubsub APIS as the generator will now read it from the .yaml file. PiperOrigin-RevId: 385101839 Source-Link: https://github.com/googleapis/googleapis/commit/80f404215a9346259db760d80d0671f28c433453 Source-Link: https://github.com/googleapis/googleapis-gen/commit/d3509d2520fb8db862129633f1cf8406d17454e1 --- owl-bot-staging/v1/.eslintignore | 6 + owl-bot-staging/v1/.eslintrc.json | 3 + owl-bot-staging/v1/.gitignore | 14 + owl-bot-staging/v1/.jsdoc.js | 55 + owl-bot-staging/v1/.mocharc.js | 33 + owl-bot-staging/v1/.prettierrc.js | 22 + owl-bot-staging/v1/README.md | 1 + owl-bot-staging/v1/linkinator.config.json | 10 + owl-bot-staging/v1/package.json | 71 + .../aiplatform/v1/accelerator_type.proto | 51 + .../cloud/aiplatform/v1/annotation.proto | 91 + .../cloud/aiplatform/v1/annotation_spec.proto | 56 + .../google/cloud/aiplatform/v1/artifact.proto | 90 + .../aiplatform/v1/batch_prediction_job.proto | 256 + .../aiplatform/v1/completion_stats.proto | 46 + .../google/cloud/aiplatform/v1/context.proto | 75 + .../cloud/aiplatform/v1/custom_job.proto | 226 + .../cloud/aiplatform/v1/data_item.proto | 71 + .../aiplatform/v1/data_labeling_job.proto | 210 + .../google/cloud/aiplatform/v1/dataset.proto | 142 + .../cloud/aiplatform/v1/dataset_service.proto | 411 ++ .../aiplatform/v1/deployed_model_ref.proto | 43 + .../cloud/aiplatform/v1/encryption_spec.proto | 39 + .../google/cloud/aiplatform/v1/endpoint.proto | 154 + .../aiplatform/v1/endpoint_service.proto | 313 + .../google/cloud/aiplatform/v1/env_var.proto | 43 + .../cloud/aiplatform/v1/execution.proto | 96 + .../v1/hyperparameter_tuning_job.proto | 111 + .../google/cloud/aiplatform/v1/io.proto | 85 + .../cloud/aiplatform/v1/job_service.proto | 697 ++ .../cloud/aiplatform/v1/job_state.proto | 61 + .../aiplatform/v1/machine_resources.proto | 185 + .../v1/manual_batch_tuning_parameters.proto | 40 + .../aiplatform/v1/migratable_resource.proto | 151 + .../aiplatform/v1/migration_service.proto | 316 + .../google/cloud/aiplatform/v1/model.proto | 535 ++ .../aiplatform/v1/model_evaluation.proto | 62 + .../v1/model_evaluation_slice.proto | 72 + .../cloud/aiplatform/v1/model_service.proto | 438 ++ .../cloud/aiplatform/v1/operation.proto | 53 + .../cloud/aiplatform/v1/pipeline_job.proto | 289 + .../aiplatform/v1/pipeline_service.proto | 377 ++ .../cloud/aiplatform/v1/pipeline_state.proto | 60 + .../aiplatform/v1/prediction_service.proto | 94 + .../instance/image_classification.proto | 44 + .../instance/image_object_detection.proto | 44 + .../predict/instance/image_segmentation.proto | 39 + .../instance/text_classification.proto | 38 + .../predict/instance/text_extraction.proto | 45 + .../predict/instance/text_sentiment.proto | 38 + .../instance/video_action_recognition.proto | 51 + .../instance/video_classification.proto | 51 + .../instance/video_object_tracking.proto | 51 + .../predict/params/image_classification.proto | 39 + .../params/image_object_detection.proto | 39 + .../predict/params/image_segmentation.proto | 36 + .../params/video_action_recognition.proto | 39 + .../predict/params/video_classification.proto | 64 + .../params/video_object_tracking.proto | 43 + .../predict/prediction/classification.proto | 41 + .../prediction/image_object_detection.proto | 51 + .../prediction/image_segmentation.proto | 45 + .../prediction/tabular_classification.proto | 39 + .../prediction/tabular_regression.proto | 39 + .../predict/prediction/text_extraction.proto | 52 + .../predict/prediction/text_sentiment.proto | 37 + .../prediction/video_action_recognition.proto | 54 + .../prediction/video_classification.proto | 67 + .../prediction/video_object_tracking.proto | 82 + .../automl_image_classification.proto | 128 + .../automl_image_object_detection.proto | 120 + .../automl_image_segmentation.proto | 106 + .../definition/automl_tables.proto | 285 + .../automl_text_classification.proto | 37 + .../definition/automl_text_extraction.proto | 37 + .../definition/automl_text_sentiment.proto | 44 + .../automl_video_action_recognition.proto | 62 + .../automl_video_classification.proto | 56 + .../automl_video_object_tracking.proto | 67 + .../export_evaluated_data_items_config.proto | 43 + .../cloud/aiplatform/v1/specialist_pool.proto | 60 + .../v1/specialist_pool_service.proto | 210 + .../google/cloud/aiplatform/v1/study.proto | 417 ++ .../aiplatform/v1/training_pipeline.proto | 354 ++ .../aiplatform/v1/user_action_reference.proto | 49 + .../google/cloud/aiplatform/v1/value.proto | 41 + owl-bot-staging/v1/src/index.ts | 39 + .../v1/src/v1/dataset_service_client.ts | 2802 +++++++++ .../src/v1/dataset_service_client_config.json | 76 + .../v1/src/v1/dataset_service_proto_list.json | 79 + .../v1/src/v1/endpoint_service_client.ts | 2357 +++++++ .../v1/endpoint_service_client_config.json | 61 + .../src/v1/endpoint_service_proto_list.json | 79 + owl-bot-staging/v1/src/v1/gapic_metadata.json | 831 +++ owl-bot-staging/v1/src/v1/index.ts | 26 + .../v1/src/v1/job_service_client.ts | 3837 ++++++++++++ .../v1/src/v1/job_service_client_config.json | 126 + .../v1/src/v1/job_service_proto_list.json | 79 + .../v1/src/v1/migration_service_client.ts | 1836 ++++++ .../v1/migration_service_client_config.json | 34 + .../src/v1/migration_service_proto_list.json | 79 + .../v1/src/v1/model_service_client.ts | 2786 ++++++++ .../src/v1/model_service_client_config.json | 76 + .../v1/src/v1/model_service_proto_list.json | 79 + .../v1/src/v1/pipeline_service_client.ts | 2675 ++++++++ .../v1/pipeline_service_client_config.json | 71 + .../src/v1/pipeline_service_proto_list.json | 79 + .../v1/src/v1/prediction_service_client.ts | 1517 +++++ .../v1/prediction_service_client_config.json | 31 + .../src/v1/prediction_service_proto_list.json | 79 + .../src/v1/specialist_pool_service_client.ts | 2085 ++++++ ...specialist_pool_service_client_config.json | 51 + .../specialist_pool_service_proto_list.json | 79 + .../system-test/fixtures/sample/src/index.js | 34 + .../system-test/fixtures/sample/src/index.ts | 74 + owl-bot-staging/v1/system-test/install.ts | 49 + .../v1/test/gapic_dataset_service_v1.ts | 2683 ++++++++ .../v1/test/gapic_endpoint_service_v1.ts | 2155 +++++++ .../v1/test/gapic_job_service_v1.ts | 3658 +++++++++++ .../v1/test/gapic_migration_service_v1.ts | 1552 +++++ .../v1/test/gapic_model_service_v1.ts | 2623 ++++++++ .../v1/test/gapic_pipeline_service_v1.ts | 2422 +++++++ .../v1/test/gapic_prediction_service_v1.ts | 1169 ++++ .../test/gapic_specialist_pool_service_v1.ts | 1928 ++++++ owl-bot-staging/v1/tsconfig.json | 19 + owl-bot-staging/v1/webpack.config.js | 64 + owl-bot-staging/v1beta1/.eslintignore | 6 + owl-bot-staging/v1beta1/.eslintrc.json | 3 + owl-bot-staging/v1beta1/.gitignore | 14 + owl-bot-staging/v1beta1/.jsdoc.js | 55 + owl-bot-staging/v1beta1/.mocharc.js | 33 + owl-bot-staging/v1beta1/.prettierrc.js | 22 + owl-bot-staging/v1beta1/README.md | 1 + .../v1beta1/linkinator.config.json | 10 + owl-bot-staging/v1beta1/package.json | 78 + .../aiplatform/v1beta1/accelerator_type.proto | 48 + .../cloud/aiplatform/v1beta1/annotation.proto | 89 + .../aiplatform/v1beta1/annotation_spec.proto | 53 + .../cloud/aiplatform/v1beta1/artifact.proto | 107 + .../v1beta1/batch_prediction_job.proto | 276 + .../aiplatform/v1beta1/completion_stats.proto | 43 + .../cloud/aiplatform/v1beta1/context.proto | 92 + .../cloud/aiplatform/v1beta1/custom_job.proto | 228 + .../cloud/aiplatform/v1beta1/data_item.proto | 69 + .../v1beta1/data_labeling_job.proto | 207 + .../cloud/aiplatform/v1beta1/dataset.proto | 139 + .../aiplatform/v1beta1/dataset_service.proto | 408 ++ .../v1beta1/deployed_index_ref.proto | 40 + .../v1beta1/deployed_model_ref.proto | 40 + .../aiplatform/v1beta1/encryption_spec.proto | 36 + .../cloud/aiplatform/v1beta1/endpoint.proto | 161 + .../aiplatform/v1beta1/endpoint_service.proto | 300 + .../aiplatform/v1beta1/entity_type.proto | 84 + .../cloud/aiplatform/v1beta1/env_var.proto | 40 + .../cloud/aiplatform/v1beta1/event.proto | 78 + .../cloud/aiplatform/v1beta1/execution.proto | 107 + .../aiplatform/v1beta1/explanation.proto | 370 ++ .../v1beta1/explanation_metadata.proto | 398 ++ .../cloud/aiplatform/v1beta1/feature.proto | 131 + .../v1beta1/feature_monitoring_stats.proto | 84 + .../aiplatform/v1beta1/feature_selector.proto | 42 + .../aiplatform/v1beta1/featurestore.proto | 98 + .../v1beta1/featurestore_monitoring.proto | 54 + .../v1beta1/featurestore_online_service.proto | 219 + .../v1beta1/featurestore_service.proto | 1167 ++++ .../v1beta1/hyperparameter_tuning_job.proto | 108 + .../cloud/aiplatform/v1beta1/index.proto | 94 + .../aiplatform/v1beta1/index_endpoint.proto | 190 + .../v1beta1/index_endpoint_service.proto | 282 + .../aiplatform/v1beta1/index_service.proto | 271 + .../google/cloud/aiplatform/v1beta1/io.proto | 105 + .../aiplatform/v1beta1/job_service.proto | 974 +++ .../cloud/aiplatform/v1beta1/job_state.proto | 58 + .../aiplatform/v1beta1/lineage_subgraph.proto | 45 + .../v1beta1/machine_resources.proto | 183 + .../manual_batch_tuning_parameters.proto | 37 + .../aiplatform/v1beta1/metadata_schema.proto | 77 + .../aiplatform/v1beta1/metadata_service.proto | 1023 +++ .../aiplatform/v1beta1/metadata_store.proto | 63 + .../v1beta1/migratable_resource.proto | 148 + .../v1beta1/migration_service.proto | 313 + .../cloud/aiplatform/v1beta1/model.proto | 557 ++ .../model_deployment_monitoring_job.proto | 268 + .../aiplatform/v1beta1/model_evaluation.proto | 83 + .../v1beta1/model_evaluation_slice.proto | 69 + .../aiplatform/v1beta1/model_monitoring.proto | 140 + .../aiplatform/v1beta1/model_service.proto | 425 ++ .../cloud/aiplatform/v1beta1/operation.proto | 50 + .../aiplatform/v1beta1/pipeline_job.proto | 286 + .../aiplatform/v1beta1/pipeline_service.proto | 364 ++ .../aiplatform/v1beta1/pipeline_state.proto | 57 + .../v1beta1/prediction_service.proto | 165 + .../v1beta1/schema/annotation_payload.proto | 228 + .../schema/annotation_spec_color.proto | 40 + .../v1beta1/schema/data_item_payload.proto | 66 + .../v1beta1/schema/dataset_metadata.proto | 124 + .../aiplatform/v1beta1/schema/geometry.proto | 35 + .../instance/image_classification.proto | 41 + .../instance/image_object_detection.proto | 41 + .../predict/instance/image_segmentation.proto | 36 + .../instance/text_classification.proto | 35 + .../predict/instance/text_extraction.proto | 42 + .../predict/instance/text_sentiment.proto | 35 + .../instance/video_action_recognition.proto | 48 + .../instance/video_classification.proto | 48 + .../instance/video_object_tracking.proto | 48 + .../predict/params/image_classification.proto | 36 + .../params/image_object_detection.proto | 36 + .../predict/params/image_segmentation.proto | 33 + .../params/video_action_recognition.proto | 36 + .../predict/params/video_classification.proto | 61 + .../params/video_object_tracking.proto | 40 + .../predict/prediction/classification.proto | 38 + .../prediction/image_object_detection.proto | 48 + .../prediction/image_segmentation.proto | 42 + .../prediction/tabular_classification.proto | 36 + .../prediction/tabular_regression.proto | 36 + .../predict/prediction/text_extraction.proto | 49 + .../predict/prediction/text_sentiment.proto | 34 + .../prediction/time_series_forecasting.proto | 30 + .../prediction/video_action_recognition.proto | 51 + .../prediction/video_classification.proto | 64 + .../prediction/video_object_tracking.proto | 79 + .../automl_image_classification.proto | 125 + .../automl_image_object_detection.proto | 117 + .../automl_image_segmentation.proto | 103 + .../definition/automl_tables.proto | 281 + .../automl_text_classification.proto | 34 + .../definition/automl_text_extraction.proto | 34 + .../definition/automl_text_sentiment.proto | 41 + .../automl_time_series_forecasting.proto | 284 + .../automl_video_action_recognition.proto | 59 + .../automl_video_classification.proto | 53 + .../automl_video_object_tracking.proto | 64 + .../export_evaluated_data_items_config.proto | 40 + .../aiplatform/v1beta1/specialist_pool.proto | 57 + .../v1beta1/specialist_pool_service.proto | 207 + .../cloud/aiplatform/v1beta1/study.proto | 499 ++ .../aiplatform/v1beta1/tensorboard.proto | 84 + .../aiplatform/v1beta1/tensorboard_data.proto | 99 + .../v1beta1/tensorboard_experiment.proto | 76 + .../aiplatform/v1beta1/tensorboard_run.proto | 61 + .../v1beta1/tensorboard_service.proto | 856 +++ .../v1beta1/tensorboard_time_series.proto | 104 + .../v1beta1/training_pipeline.proto | 351 ++ .../cloud/aiplatform/v1beta1/types.proto | 48 + .../v1beta1/user_action_reference.proto | 46 + .../cloud/aiplatform/v1beta1/value.proto | 38 + .../aiplatform/v1beta1/vizier_service.proto | 502 ++ owl-bot-staging/v1beta1/src/index.ts | 53 + .../src/v1beta1/dataset_service_client.ts | 3608 +++++++++++ .../dataset_service_client_config.json | 76 + .../v1beta1/dataset_service_proto_list.json | 116 + .../src/v1beta1/endpoint_service_client.ts | 3136 +++++++++ .../endpoint_service_client_config.json | 61 + .../v1beta1/endpoint_service_proto_list.json | 116 + ...turestore_online_serving_service_client.ts | 2373 +++++++ ..._online_serving_service_client_config.json | 36 + ...ore_online_serving_service_proto_list.json | 116 + .../v1beta1/featurestore_service_client.ts | 5337 ++++++++++++++++ .../featurestore_service_client_config.json | 125 + .../featurestore_service_proto_list.json | 116 + .../v1beta1/src/v1beta1/gapic_metadata.json | 2079 ++++++ owl-bot-staging/v1beta1/src/v1beta1/index.ts | 33 + .../v1beta1/index_endpoint_service_client.ts | 3125 +++++++++ .../index_endpoint_service_client_config.json | 61 + .../index_endpoint_service_proto_list.json | 116 + .../src/v1beta1/index_service_client.ts | 2892 +++++++++ .../v1beta1/index_service_client_config.json | 51 + .../src/v1beta1/index_service_proto_list.json | 116 + .../v1beta1/src/v1beta1/job_service_client.ts | 5581 +++++++++++++++++ .../v1beta1/job_service_client_config.json | 166 + .../src/v1beta1/job_service_proto_list.json | 116 + .../src/v1beta1/metadata_service_client.ts | 5395 ++++++++++++++++ .../metadata_service_client_config.json | 155 + .../v1beta1/metadata_service_proto_list.json | 116 + .../src/v1beta1/migration_service_client.ts | 2642 ++++++++ .../migration_service_client_config.json | 34 + .../v1beta1/migration_service_proto_list.json | 116 + .../src/v1beta1/model_service_client.ts | 3565 +++++++++++ .../v1beta1/model_service_client_config.json | 76 + .../src/v1beta1/model_service_proto_list.json | 116 + .../src/v1beta1/pipeline_service_client.ts | 3451 ++++++++++ .../pipeline_service_client_config.json | 71 + .../v1beta1/pipeline_service_proto_list.json | 116 + .../src/v1beta1/prediction_service_client.ts | 2432 +++++++ .../prediction_service_client_config.json | 36 + .../prediction_service_proto_list.json | 116 + .../v1beta1/specialist_pool_service_client.ts | 2891 +++++++++ ...specialist_pool_service_client_config.json | 51 + .../specialist_pool_service_proto_list.json | 116 + .../src/v1beta1/tensorboard_service_client.ts | 5093 +++++++++++++++ .../tensorboard_service_client_config.json | 122 + .../tensorboard_service_proto_list.json | 116 + .../src/v1beta1/vizier_service_client.ts | 3719 +++++++++++ .../v1beta1/vizier_service_client_config.json | 101 + .../v1beta1/vizier_service_proto_list.json | 116 + .../system-test/fixtures/sample/src/index.js | 41 + .../system-test/fixtures/sample/src/index.ts | 116 + .../v1beta1/system-test/install.ts | 49 + .../test/gapic_dataset_service_v1beta1.ts | 3361 ++++++++++ .../test/gapic_endpoint_service_v1beta1.ts | 2833 +++++++++ ...urestore_online_serving_service_v1beta1.ts | 1928 ++++++ .../gapic_featurestore_service_v1beta1.ts | 4796 ++++++++++++++ .../gapic_index_endpoint_service_v1beta1.ts | 2833 +++++++++ .../test/gapic_index_service_v1beta1.ts | 2606 ++++++++ .../v1beta1/test/gapic_job_service_v1beta1.ts | 5408 ++++++++++++++++ .../test/gapic_metadata_service_v1beta1.ts | 4957 +++++++++++++++ .../test/gapic_migration_service_v1beta1.ts | 2230 +++++++ .../test/gapic_model_service_v1beta1.ts | 3301 ++++++++++ .../test/gapic_pipeline_service_v1beta1.ts | 3100 +++++++++ .../test/gapic_prediction_service_v1beta1.ts | 1931 ++++++ .../gapic_specialist_pool_service_v1beta1.ts | 2606 ++++++++ .../test/gapic_tensorboard_service_v1beta1.ts | 4968 +++++++++++++++ .../test/gapic_vizier_service_v1beta1.ts | 3520 +++++++++++ owl-bot-staging/v1beta1/tsconfig.json | 19 + owl-bot-staging/v1beta1/webpack.config.js | 64 + 317 files changed, 178695 insertions(+) create mode 100644 owl-bot-staging/v1/.eslintignore create mode 100644 owl-bot-staging/v1/.eslintrc.json create mode 100644 owl-bot-staging/v1/.gitignore create mode 100644 owl-bot-staging/v1/.jsdoc.js create mode 100644 owl-bot-staging/v1/.mocharc.js create mode 100644 owl-bot-staging/v1/.prettierrc.js create mode 100644 owl-bot-staging/v1/README.md create mode 100644 owl-bot-staging/v1/linkinator.config.json create mode 100644 owl-bot-staging/v1/package.json create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/accelerator_type.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation_spec.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/artifact.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/batch_prediction_job.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/completion_stats.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/context.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/custom_job.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_item.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_labeling_job.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/deployed_model_ref.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/encryption_spec.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/env_var.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/execution.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/io.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_state.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/machine_resources.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migratable_resource.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migration_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation_slice.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/operation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_job.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_state.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/prediction_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/user_action_reference.proto create mode 100644 owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/value.proto create mode 100644 owl-bot-staging/v1/src/index.ts create mode 100644 owl-bot-staging/v1/src/v1/dataset_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/dataset_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/dataset_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/endpoint_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/endpoint_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/endpoint_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/gapic_metadata.json create mode 100644 owl-bot-staging/v1/src/v1/index.ts create mode 100644 owl-bot-staging/v1/src/v1/job_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/job_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/job_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/migration_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/migration_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/migration_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/model_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/model_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/model_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/pipeline_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/pipeline_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/pipeline_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/prediction_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/prediction_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/prediction_service_proto_list.json create mode 100644 owl-bot-staging/v1/src/v1/specialist_pool_service_client.ts create mode 100644 owl-bot-staging/v1/src/v1/specialist_pool_service_client_config.json create mode 100644 owl-bot-staging/v1/src/v1/specialist_pool_service_proto_list.json create mode 100644 owl-bot-staging/v1/system-test/fixtures/sample/src/index.js create mode 100644 owl-bot-staging/v1/system-test/fixtures/sample/src/index.ts create mode 100644 owl-bot-staging/v1/system-test/install.ts create mode 100644 owl-bot-staging/v1/test/gapic_dataset_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_endpoint_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_job_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_migration_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_model_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_pipeline_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_prediction_service_v1.ts create mode 100644 owl-bot-staging/v1/test/gapic_specialist_pool_service_v1.ts create mode 100644 owl-bot-staging/v1/tsconfig.json create mode 100644 owl-bot-staging/v1/webpack.config.js create mode 100644 owl-bot-staging/v1beta1/.eslintignore create mode 100644 owl-bot-staging/v1beta1/.eslintrc.json create mode 100644 owl-bot-staging/v1beta1/.gitignore create mode 100644 owl-bot-staging/v1beta1/.jsdoc.js create mode 100644 owl-bot-staging/v1beta1/.mocharc.js create mode 100644 owl-bot-staging/v1beta1/.prettierrc.js create mode 100644 owl-bot-staging/v1beta1/README.md create mode 100644 owl-bot-staging/v1beta1/linkinator.config.json create mode 100644 owl-bot-staging/v1beta1/package.json create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/accelerator_type.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/annotation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/annotation_spec.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/artifact.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/batch_prediction_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/completion_stats.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/context.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/custom_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/data_item.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/data_labeling_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/dataset.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/dataset_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/deployed_index_ref.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/deployed_model_ref.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/encryption_spec.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/endpoint.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/endpoint_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/entity_type.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/env_var.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/event.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/execution.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/explanation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/explanation_metadata.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/feature.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/feature_selector.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/featurestore.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/featurestore_online_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/featurestore_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/index.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/index_endpoint.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/index_endpoint_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/index_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/io.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/job_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/job_state.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/lineage_subgraph.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/machine_resources.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/metadata_schema.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/metadata_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/metadata_store.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/migratable_resource.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/migration_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model_evaluation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model_evaluation_slice.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model_monitoring.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/model_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/operation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/pipeline_job.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/pipeline_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/pipeline_state.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/annotation_payload.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/annotation_spec_color.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/data_item_payload.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/dataset_metadata.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/geometry.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_object_detection.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/image_segmentation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_extraction.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/text_sentiment.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_action_recognition.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/instance/video_object_tracking.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/image_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/image_object_detection.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/image_segmentation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/video_action_recognition.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/video_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/params/video_object_tracking.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_object_detection.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/image_segmentation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/tabular_regression.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_extraction.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/text_sentiment.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/time_series_forecasting.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_action_recognition.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/predict/prediction/video_object_tracking.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_object_detection.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_image_segmentation.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_tables.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_extraction.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_text_sentiment.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_time_series_forecasting.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_action_recognition.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_classification.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/automl_video_object_tracking.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/schema/trainingjob/definition/export_evaluated_data_items_config.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/types.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/user_action_reference.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/value.proto create mode 100644 owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/vizier_service.proto create mode 100644 owl-bot-staging/v1beta1/src/index.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/dataset_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/dataset_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/dataset_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/endpoint_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/endpoint_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/endpoint_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_online_serving_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_online_serving_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_online_serving_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/featurestore_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/gapic_metadata.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_endpoint_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_endpoint_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_endpoint_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/index_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/job_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/job_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/job_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/metadata_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/metadata_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/metadata_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/migration_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/migration_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/migration_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/model_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/model_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/model_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/pipeline_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/pipeline_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/pipeline_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/prediction_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/prediction_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/prediction_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/specialist_pool_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/specialist_pool_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/specialist_pool_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/tensorboard_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/tensorboard_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/tensorboard_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/vizier_service_client.ts create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/vizier_service_client_config.json create mode 100644 owl-bot-staging/v1beta1/src/v1beta1/vizier_service_proto_list.json create mode 100644 owl-bot-staging/v1beta1/system-test/fixtures/sample/src/index.js create mode 100644 owl-bot-staging/v1beta1/system-test/fixtures/sample/src/index.ts create mode 100644 owl-bot-staging/v1beta1/system-test/install.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_dataset_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_endpoint_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_featurestore_online_serving_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_featurestore_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_index_endpoint_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_index_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_job_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_metadata_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_migration_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_model_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_pipeline_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_prediction_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_specialist_pool_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_tensorboard_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/test/gapic_vizier_service_v1beta1.ts create mode 100644 owl-bot-staging/v1beta1/tsconfig.json create mode 100644 owl-bot-staging/v1beta1/webpack.config.js diff --git a/owl-bot-staging/v1/.eslintignore b/owl-bot-staging/v1/.eslintignore new file mode 100644 index 00000000..521dc25a --- /dev/null +++ b/owl-bot-staging/v1/.eslintignore @@ -0,0 +1,6 @@ +**/node_modules +**/.coverage +build/ +docs/ +protos/ +system-test/ diff --git a/owl-bot-staging/v1/.eslintrc.json b/owl-bot-staging/v1/.eslintrc.json new file mode 100644 index 00000000..78215349 --- /dev/null +++ b/owl-bot-staging/v1/.eslintrc.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/gts" +} diff --git a/owl-bot-staging/v1/.gitignore b/owl-bot-staging/v1/.gitignore new file mode 100644 index 00000000..5d32b237 --- /dev/null +++ b/owl-bot-staging/v1/.gitignore @@ -0,0 +1,14 @@ +**/*.log +**/node_modules +.coverage +coverage +.nyc_output +docs/ +out/ +build/ +system-test/secrets.js +system-test/*key.json +*.lock +.DS_Store +package-lock.json +__pycache__ diff --git a/owl-bot-staging/v1/.jsdoc.js b/owl-bot-staging/v1/.jsdoc.js new file mode 100644 index 00000000..b612e037 --- /dev/null +++ b/owl-bot-staging/v1/.jsdoc.js @@ -0,0 +1,55 @@ +// Copyright 2021 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +'use strict'; + +module.exports = { + opts: { + readme: './README.md', + package: './package.json', + template: './node_modules/jsdoc-fresh', + recurse: true, + verbose: true, + destination: './docs/' + }, + plugins: [ + 'plugins/markdown', + 'jsdoc-region-tag' + ], + source: { + excludePattern: '(^|\\/|\\\\)[._]', + include: [ + 'build/src', + 'protos' + ], + includePattern: '\\.js$' + }, + templates: { + copyright: 'Copyright 2021 Google LLC', + includeDate: false, + sourceFiles: false, + systemName: '@google-cloud/aiplatform', + theme: 'lumen', + default: { + outputSourceFiles: false + } + }, + markdown: { + idInHeadings: true + } +}; diff --git a/owl-bot-staging/v1/.mocharc.js b/owl-bot-staging/v1/.mocharc.js new file mode 100644 index 00000000..50bc7f79 --- /dev/null +++ b/owl-bot-staging/v1/.mocharc.js @@ -0,0 +1,33 @@ +// Copyright 2021 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + +const config = { + "enable-source-maps": true, + "throw-deprecation": true, + "timeout": 10000 +} +if (process.env.MOCHA_THROW_DEPRECATION === 'false') { + delete config['throw-deprecation']; +} +if (process.env.MOCHA_REPORTER) { + config.reporter = process.env.MOCHA_REPORTER; +} +if (process.env.MOCHA_REPORTER_OUTPUT) { + config['reporter-option'] = `output=${process.env.MOCHA_REPORTER_OUTPUT}`; +} +module.exports = config diff --git a/owl-bot-staging/v1/.prettierrc.js b/owl-bot-staging/v1/.prettierrc.js new file mode 100644 index 00000000..84f4713a --- /dev/null +++ b/owl-bot-staging/v1/.prettierrc.js @@ -0,0 +1,22 @@ +// Copyright 2021 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 +// +// https://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. +// +// ** This file is automatically generated by gapic-generator-typescript. ** +// ** https://github.com/googleapis/gapic-generator-typescript ** +// ** All changes to this file may be overwritten. ** + + +module.exports = { + ...require('gts/.prettierrc.json') +} diff --git a/owl-bot-staging/v1/README.md b/owl-bot-staging/v1/README.md new file mode 100644 index 00000000..7f057918 --- /dev/null +++ b/owl-bot-staging/v1/README.md @@ -0,0 +1 @@ +Aiplatform: Nodejs Client diff --git a/owl-bot-staging/v1/linkinator.config.json b/owl-bot-staging/v1/linkinator.config.json new file mode 100644 index 00000000..29a223b6 --- /dev/null +++ b/owl-bot-staging/v1/linkinator.config.json @@ -0,0 +1,10 @@ +{ + "recurse": true, + "skip": [ + "https://codecov.io/gh/googleapis/", + "www.googleapis.com", + "img.shields.io" + ], + "silent": true, + "concurrency": 10 +} diff --git a/owl-bot-staging/v1/package.json b/owl-bot-staging/v1/package.json new file mode 100644 index 00000000..a9653d48 --- /dev/null +++ b/owl-bot-staging/v1/package.json @@ -0,0 +1,71 @@ +{ + "name": "@google-cloud/aiplatform", + "version": "0.1.0", + "description": "Aiplatform client for Node.js", + "repository": "googleapis/nodejs-aiplatform", + "license": "Apache-2.0", + "author": "Google LLC", + "main": "build/src/index.js", + "files": [ + "build/src", + "build/protos" + ], + "keywords": [ + "google apis client", + "google api client", + "google apis", + "google api", + "google", + "google cloud platform", + "google cloud", + "cloud", + "google aiplatform", + "aiplatform", + "dataset service", + "endpoint service", + "job service", + "migration service", + "model service", + "pipeline service", + "prediction service", + "specialist pool service" + ], + "scripts": { + "clean": "gts clean", + "compile": "tsc -p . && cp -r protos build/", + "compile-protos": "compileProtos src", + "docs": "jsdoc -c .jsdoc.js", + "predocs-test": "npm run docs", + "docs-test": "linkinator docs", + "fix": "gts fix", + "lint": "gts check", + "prepare": "npm run compile-protos && npm run compile", + "system-test": "c8 mocha build/system-test", + "test": "c8 mocha build/test" + }, + "dependencies": { + "google-gax": "^2.15.0" + }, + "devDependencies": { + "@types/mocha": "^8.2.2", + "@types/node": "^14.17.3", + "@types/sinon": "^10.0.2", + "c8": "^7.7.3", + "gts": "^3.1.0", + "jsdoc": "^3.6.7", + "jsdoc-fresh": "^1.1.0", + "jsdoc-region-tag": "^1.1.0", + "linkinator": "^2.13.6", + "mocha": "^8.4.0", + "null-loader": "^4.0.1", + "pack-n-play": "^1.0.0-2", + "sinon": "^11.1.1", + "ts-loader": "^9.2.3", + "typescript": "^4.3.4", + "webpack": "^5.39.1", + "webpack-cli": "^4.7.2" + }, + "engines": { + "node": ">=v10.24.0" + } +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/accelerator_type.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/accelerator_type.proto new file mode 100644 index 00000000..0bd6d10a --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/accelerator_type.proto @@ -0,0 +1,51 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "AcceleratorTypeProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a hardware accelerator type. +enum AcceleratorType { + // Unspecified accelerator type, which means no accelerator. + ACCELERATOR_TYPE_UNSPECIFIED = 0; + + // Nvidia Tesla K80 GPU. + NVIDIA_TESLA_K80 = 1; + + // Nvidia Tesla P100 GPU. + NVIDIA_TESLA_P100 = 2; + + // Nvidia Tesla V100 GPU. + NVIDIA_TESLA_V100 = 3; + + // Nvidia Tesla P4 GPU. + NVIDIA_TESLA_P4 = 4; + + // Nvidia Tesla T4 GPU. + NVIDIA_TESLA_T4 = 5; + + // Nvidia Tesla A100 GPU. + NVIDIA_TESLA_A100 = 8; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation.proto new file mode 100644 index 00000000..78c9337d --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation.proto @@ -0,0 +1,91 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/user_action_reference.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Used to assign specific AnnotationSpec to a particular area of a DataItem or +// the whole part of the DataItem. +message Annotation { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Annotation" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}/annotations/{annotation}" + }; + + // Output only. Resource name of the Annotation. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Google Cloud Storage URI points to a YAML file describing [payload][google.cloud.aiplatform.v1.Annotation.payload]. The + // schema is defined as an [OpenAPI 3.0.2 Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // The schema files that can be used here are found in + // gs://google-cloud-aiplatform/schema/dataset/annotation/, note that the + // chosen schema must be consistent with the parent Dataset's + // [metadata][google.cloud.aiplatform.v1.Dataset.metadata_schema_uri]. + string payload_schema_uri = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The schema of the payload can be found in + // [payload_schema][google.cloud.aiplatform.v1.Annotation.payload_schema_uri]. + google.protobuf.Value payload = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when this Annotation was created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Annotation was last updated. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 8 [(google.api.field_behavior) = OPTIONAL]; + + // Output only. The source of the Annotation. + UserActionReference annotation_source = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The labels with user-defined metadata to organize your Annotations. + // + // 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. + // No more than 64 user labels can be associated with one Annotation(System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for each Annotation: + // + // * "aiplatform.googleapis.com/annotation_set_name": + // optional, name of the UI's annotation set this Annotation belongs to. + // If not set, the Annotation is not visible in the UI. + // + // * "aiplatform.googleapis.com/payload_schema": + // output only, its value is the [payload_schema's][google.cloud.aiplatform.v1.Annotation.payload_schema_uri] + // title. + map labels = 6 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation_spec.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation_spec.proto new file mode 100644 index 00000000..b4727ac9 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/annotation_spec.proto @@ -0,0 +1,56 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "AnnotationSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Identifies a concept with which DataItems may be annotated with. +message AnnotationSpec { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/AnnotationSpec" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/annotationSpecs/{annotation_spec}" + }; + + // Output only. Resource name of the AnnotationSpec. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the AnnotationSpec. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when this AnnotationSpec was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when AnnotationSpec was last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 5 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/artifact.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/artifact.proto new file mode 100644 index 00000000..f47df663 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/artifact.proto @@ -0,0 +1,90 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/value.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ArtifactProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Instance of a general artifact. +message Artifact { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Artifact" + pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}" + }; + + // Describes the state of the Artifact. + enum State { + // Unspecified state for the Artifact. + STATE_UNSPECIFIED = 0; + + // A state used by systems like Vertex Pipelines to indicate that the + // underlying data item represented by this Artifact is being created. + PENDING = 1; + + // A state indicating that the Artifact should exist, unless something + // external to the system deletes it. + LIVE = 2; + } + + // Output only. The resource name of the Artifact. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User provided display name of the Artifact. + // May be up to 128 Unicode characters. + string display_name = 2; + + // The uniform resource identifier of the artifact file. + // May be empty if there is no actual artifact file. + string uri = 6; + + // An eTag used to perform consistent read-modify-write updates. If not set, a + // blind "overwrite" update happens. + string etag = 9; + + // The labels with user-defined metadata to organize your Artifacts. + // + // 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. + // No more than 64 user labels can be associated with one Artifact (System + // labels are excluded). + map labels = 10; + + // Output only. Timestamp when this Artifact was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Artifact was last updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The state of this Artifact. This is a property of the Artifact, and does + // not imply or capture any ongoing process. This property is managed by + // clients (such as Vertex Pipelines), and the system does not prescribe + // or check the validity of state transitions. + State state = 13; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/batch_prediction_job.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/batch_prediction_job.proto new file mode 100644 index 00000000..6ffe83a6 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/batch_prediction_job.proto @@ -0,0 +1,256 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/completion_stats.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "BatchPredictionJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A job that uses a [Model][google.cloud.aiplatform.v1.BatchPredictionJob.model] to produce predictions +// on multiple [input instances][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. If +// predictions for significant portion of the instances fail, the job may finish +// without attempting predictions for all remaining instances. +message BatchPredictionJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/BatchPredictionJob" + pattern: "projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}" + }; + + // Configures the input to [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. + // See [Model.supported_input_storage_formats][google.cloud.aiplatform.v1.Model.supported_input_storage_formats] for Model's supported input + // formats, and how instances should be expressed via any of them. + message InputConfig { + // Required. The source of the input. + oneof source { + // The Cloud Storage location for the input instances. + GcsSource gcs_source = 2; + + // The BigQuery location of the input table. + // The schema of the table should be in the format described by the given + // context OpenAPI Schema, if one is provided. The table may contain + // additional columns that are not described by the schema, and they will + // be ignored. + BigQuerySource bigquery_source = 3; + } + + // Required. The format in which instances are given, must be one of the + // [Model's][google.cloud.aiplatform.v1.BatchPredictionJob.model] + // [supported_input_storage_formats][google.cloud.aiplatform.v1.Model.supported_input_storage_formats]. + string instances_format = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Configures the output of [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. + // See [Model.supported_output_storage_formats][google.cloud.aiplatform.v1.Model.supported_output_storage_formats] for supported output + // formats, and how predictions are expressed via any of them. + message OutputConfig { + // Required. The destination of the output. + oneof destination { + // The Cloud Storage location of the directory where the output is + // to be written to. In the given directory a new directory is created. + // Its name is `prediction--`, + // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. + // Inside of it files `predictions_0001.`, + // `predictions_0002.`, ..., `predictions_N.` + // are created where `` depends on chosen + // [predictions_format][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.predictions_format], and N may equal 0001 and depends on the total + // number of successfully predicted instances. + // If the Model has both [instance][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] + // and [prediction][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri] schemata + // defined then each such file contains predictions as per the + // [predictions_format][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.predictions_format]. + // If prediction for any instance failed (partially or completely), then + // an additional `errors_0001.`, `errors_0002.`,..., + // `errors_N.` files are created (N depends on total number + // of failed predictions). These files contain the failed instances, + // as per their schema, followed by an additional `error` field which as + // value has [google.rpc.Status][google.rpc.Status] + // containing only `code` and `message` fields. + GcsDestination gcs_destination = 2; + + // The BigQuery project or dataset location where the output is to be + // written to. If project is provided, a new dataset is created with name + // `prediction__` + // where is made + // BigQuery-dataset-name compatible (for example, most special characters + // become underscores), and timestamp is in + // YYYY_MM_DDThh_mm_ss_sssZ "based on ISO-8601" format. In the dataset + // two tables will be created, `predictions`, and `errors`. + // If the Model has both [instance][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] + // and [prediction][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri] schemata + // defined then the tables have columns as follows: The `predictions` + // table contains instances for which the prediction succeeded, it + // has columns as per a concatenation of the Model's instance and + // prediction schemata. The `errors` table contains rows for which the + // prediction has failed, it has instance columns, as per the + // instance schema, followed by a single "errors" column, which as values + // has [google.rpc.Status][google.rpc.Status] + // represented as a STRUCT, and containing only `code` and `message`. + BigQueryDestination bigquery_destination = 3; + } + + // Required. The format in which Vertex AI gives the predictions, must be one of the + // [Model's][google.cloud.aiplatform.v1.BatchPredictionJob.model] + // [supported_output_storage_formats][google.cloud.aiplatform.v1.Model.supported_output_storage_formats]. + string predictions_format = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Further describes this job's output. + // Supplements [output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. + message OutputInfo { + // The output location into which prediction output is written. + oneof output_location { + // Output only. The full path of the Cloud Storage directory created, into which + // the prediction output is written. + string gcs_output_directory = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The path of the BigQuery dataset created, in + // `bq://projectId.bqDatasetId` + // format, into which the prediction output is written. + string bigquery_output_dataset = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The name of the BigQuery table created, in + // `predictions_` + // format, into which the prediction output is written. + // Can be used by UI to generate the BigQuery output path, for example. + string bigquery_output_table = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Resource name of the BatchPredictionJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of this BatchPredictionJob. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The name of the Model that produces the predictions via this job, + // must share the same ancestor Location. + // Starting this job has no impact on any existing deployments of the Model + // and their resources. + string model = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. Input configuration of the instances on which predictions are performed. + // The schema of any single instance may be specified via + // the [Model's][google.cloud.aiplatform.v1.BatchPredictionJob.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri]. + InputConfig input_config = 4 [(google.api.field_behavior) = REQUIRED]; + + // The parameters that govern the predictions. The schema of the parameters + // may be specified via the [Model's][google.cloud.aiplatform.v1.BatchPredictionJob.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri]. + google.protobuf.Value model_parameters = 5; + + // Required. The Configuration specifying where output predictions should + // be written. + // The schema of any single prediction may be specified as a concatenation + // of [Model's][google.cloud.aiplatform.v1.BatchPredictionJob.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] + // and + // [prediction_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.prediction_schema_uri]. + OutputConfig output_config = 6 [(google.api.field_behavior) = REQUIRED]; + + // The config of resources used by the Model during the batch prediction. If + // the Model [supports][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types] + // DEDICATED_RESOURCES this config may be provided (and the job will use these + // resources), if the Model doesn't support AUTOMATIC_RESOURCES, this config + // must be provided. + BatchDedicatedResources dedicated_resources = 7; + + // Immutable. Parameters configuring the batch behavior. Currently only applicable when + // [dedicated_resources][google.cloud.aiplatform.v1.BatchPredictionJob.dedicated_resources] are used (in other cases Vertex AI does + // the tuning itself). + ManualBatchTuningParameters manual_batch_tuning_parameters = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. Information further describing the output of this job. + OutputInfo output_info = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed state of the job. + JobState state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when the job's state is JOB_STATE_FAILED or + // JOB_STATE_CANCELLED. + google.rpc.Status error = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Partial failures encountered. + // For example, single files that can't be read. + // This field never exceeds 20 entries. + // Status details fields contain standard GCP error details. + repeated google.rpc.Status partial_failures = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Information about resources that had been consumed by this job. + // Provided in real time at best effort basis, as well as a final value + // once the job completes. + // + // Note: This field currently may be not populated for batch predictions that + // use AutoML Models. + ResourcesConsumed resources_consumed = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Statistics on completed and failed prediction instances. + CompletionStats completion_stats = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the BatchPredictionJob was created. + google.protobuf.Timestamp create_time = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the BatchPredictionJob for the first time entered the + // `JOB_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the BatchPredictionJob entered any of the following states: + // `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 17 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the BatchPredictionJob was most recently updated. + google.protobuf.Timestamp update_time = 18 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize BatchPredictionJobs. + // + // 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. + map labels = 19; + + // Customer-managed encryption key options for a BatchPredictionJob. If this + // is set, then all resources created by the BatchPredictionJob will be + // encrypted with the provided encryption key. + EncryptionSpec encryption_spec = 24; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/completion_stats.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/completion_stats.proto new file mode 100644 index 00000000..09288808 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/completion_stats.proto @@ -0,0 +1,46 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "CompletionStatsProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Success and error statistics of processing multiple entities +// (for example, DataItems or structured data rows) in batch. +message CompletionStats { + // Output only. The number of entities that had been processed successfully. + int64 successful_count = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of entities for which any error was encountered. + int64 failed_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. In cases when enough errors are encountered a job, pipeline, or operation + // may be failed as a whole. Below is the number of entities for which the + // processing had not been finished (either in successful or failed state). + // Set to -1 if the number is unknown (for example, the operation failed + // before the total entity number could be collected). + int64 incomplete_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/context.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/context.proto new file mode 100644 index 00000000..a50f0b1d --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/context.proto @@ -0,0 +1,75 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/value.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ContextProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Instance of a general context. +message Context { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Context" + pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/contexts/{context}" + }; + + // Output only. The resource name of the Context. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User provided display name of the Context. + // May be up to 128 Unicode characters. + string display_name = 2; + + // An eTag used to perform consistent read-modify-write updates. If not set, a + // blind "overwrite" update happens. + string etag = 8; + + // The labels with user-defined metadata to organize your Contexts. + // + // 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. + // No more than 64 user labels can be associated with one Context (System + // labels are excluded). + map labels = 9; + + // Output only. Timestamp when this Context was created. + google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Context was last updated. + google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of resource names of Contexts that are parents of this Context. + // A Context may have at most 10 parent_contexts. + repeated string parent_contexts = 12 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Context" + } + ]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/custom_job.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/custom_job.proto new file mode 100644 index 00000000..bacf4e64 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/custom_job.proto @@ -0,0 +1,226 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/env_var.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "CustomJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a job that runs custom workloads such as a Docker container or a +// Python package. A CustomJob can have multiple worker pools and each worker +// pool can have its own machine and input spec. A CustomJob will be cleaned up +// once the job enters terminal state (failed or succeeded). +message CustomJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/CustomJob" + pattern: "projects/{project}/locations/{location}/customJobs/{custom_job}" + }; + + // Output only. Resource name of a CustomJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the CustomJob. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Job spec. + CustomJobSpec job_spec = 4 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of the job. + JobState state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the CustomJob was created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the CustomJob for the first time entered the + // `JOB_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the CustomJob entered any of the following states: + // `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the CustomJob was most recently updated. + google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when job's state is `JOB_STATE_FAILED` or + // `JOB_STATE_CANCELLED`. + google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize CustomJobs. + // + // 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. + map labels = 11; + + // Customer-managed encryption key options for a CustomJob. If this is set, + // then all resources created by the CustomJob will be encrypted with the + // provided encryption key. + EncryptionSpec encryption_spec = 12; +} + +// Represents the spec of a CustomJob. +message CustomJobSpec { + // Required. The spec of the worker pools including machine type and Docker image. + // All worker pools except the first one are optional and can be skipped by + // providing an empty value. + repeated WorkerPoolSpec worker_pool_specs = 1 [(google.api.field_behavior) = REQUIRED]; + + // Scheduling options for a CustomJob. + Scheduling scheduling = 3; + + // Specifies the service account for workload run-as account. + // Users submitting jobs must have act-as permission on this run-as account. + // If unspecified, the [AI Platform Custom Code Service + // Agent](https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) + // for the CustomJob's project is used. + string service_account = 4; + + // The full name of the Compute Engine + // [network](/compute/docs/networks-and-firewalls#networks) to which the Job + // 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. If left + // unspecified, the job is not peered with any network. + string network = 5 [(google.api.resource_reference) = { + type: "compute.googleapis.com/Network" + }]; + + // The Cloud Storage location to store the output of this CustomJob or + // HyperparameterTuningJob. For HyperparameterTuningJob, + // the baseOutputDirectory of + // each child CustomJob backing a Trial is set to a subdirectory of name + // [id][google.cloud.aiplatform.v1.Trial.id] under its parent HyperparameterTuningJob's + // baseOutputDirectory. + // + // The following Vertex AI environment variables will be passed to + // containers or python modules when this field is set: + // + // For CustomJob: + // + // * AIP_MODEL_DIR = `/model/` + // * AIP_CHECKPOINT_DIR = `/checkpoints/` + // * AIP_TENSORBOARD_LOG_DIR = `/logs/` + // + // For CustomJob backing a Trial of HyperparameterTuningJob: + // + // * AIP_MODEL_DIR = `//model/` + // * AIP_CHECKPOINT_DIR = `//checkpoints/` + // * AIP_TENSORBOARD_LOG_DIR = `//logs/` + GcsDestination base_output_directory = 6; +} + +// Represents the spec of a worker pool in a job. +message WorkerPoolSpec { + // The custom task to be executed in this worker pool. + oneof task { + // The custom container task. + ContainerSpec container_spec = 6; + + // The Python packaged task. + PythonPackageSpec python_package_spec = 7; + } + + // Optional. Immutable. The specification of a single machine. + MachineSpec machine_spec = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Optional. The number of worker replicas to use for this worker pool. + int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Disk spec. + DiskSpec disk_spec = 5; +} + +// The spec of a Container. +message ContainerSpec { + // Required. The URI of a container image in the Container Registry that is to be run on + // each worker replica. + string image_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // The command to be invoked when the container is started. + // It overrides the entrypoint instruction in Dockerfile when provided. + repeated string command = 2; + + // The arguments to be passed when starting the container. + repeated string args = 3; + + // Environment variables to be passed to the container. + repeated EnvVar env = 4; +} + +// The spec of a Python packaged code. +message PythonPackageSpec { + // Required. The URI of a container image in Artifact Registry that will run the + // provided Python package. Vertex AI provides a wide range of executor + // images with pre-installed packages to meet users' various use cases. See + // the list of [pre-built containers for + // training](https://cloud.google.com/vertex-ai/docs/training/pre-built-containers). + // You must use an image from this list. + string executor_image_uri = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Google Cloud Storage location of the Python package files which are + // the training program and its dependent packages. + // The maximum number of package URIs is 100. + repeated string package_uris = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Python module name to run after installing the packages. + string python_module = 3 [(google.api.field_behavior) = REQUIRED]; + + // Command line arguments to be passed to the Python task. + repeated string args = 4; + + // Environment variables to be passed to the python module. + repeated EnvVar env = 5; +} + +// All parameters related to queuing and scheduling of custom jobs. +message Scheduling { + // The maximum job running time. The default is 7 days. + google.protobuf.Duration timeout = 1; + + // Restarts the entire CustomJob if a worker gets restarted. + // This feature can be used by distributed training jobs that are not + // resilient to workers leaving and joining a job. + bool restart_job_on_worker_restart = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_item.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_item.proto new file mode 100644 index 00000000..cccb8300 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_item.proto @@ -0,0 +1,71 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DataItemProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A piece of data in a Dataset. Could be an image, a video, a document or plain +// text. +message DataItem { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/DataItem" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}" + }; + + // Output only. The resource name of the DataItem. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this DataItem was created. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this DataItem was last updated. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The labels with user-defined metadata to organize your DataItems. + // + // 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. + // No more than 64 user labels can be associated with one DataItem(System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. + map labels = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The data that the DataItem represents (for example, an image or a text + // snippet). The schema of the payload is stored in the parent Dataset's + // [metadata schema's][google.cloud.aiplatform.v1.Dataset.metadata_schema_uri] dataItemSchemaUri field. + google.protobuf.Value payload = 4 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 7 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_labeling_job.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_labeling_job.proto new file mode 100644 index 00000000..82ff7cab --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/data_labeling_job.proto @@ -0,0 +1,210 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/accelerator_type.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/cloud/aiplatform/v1/specialist_pool.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/type/money.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DataLabelingJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// DataLabelingJob is used to trigger a human labeling job on unlabeled data +// from the following Dataset: +message DataLabelingJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/DataLabelingJob" + pattern: "projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}" + }; + + // Output only. Resource name of the DataLabelingJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the DataLabelingJob. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + // Display name of a DataLabelingJob. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Dataset resource names. Right now we only support labeling from a single + // Dataset. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + repeated string datasets = 3 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // Labels to assign to annotations generated by this DataLabelingJob. + // + // 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. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. + map annotation_labels = 12; + + // Required. Number of labelers to work on each DataItem. + int32 labeler_count = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Google Cloud Storage location of the instruction pdf. This pdf is + // shared with labelers, and provides detailed description on how to label + // DataItems in Datasets. + string instruction_uri = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. Points to a YAML file stored on Google Cloud Storage describing the + // config for a specific type of DataLabelingJob. + // The schema files that can be used here are found in the + // https://storage.googleapis.com/google-cloud-aiplatform bucket in the + // /schema/datalabelingjob/inputs/ folder. + string inputs_schema_uri = 6 [(google.api.field_behavior) = REQUIRED]; + + // Required. Input config parameters for the DataLabelingJob. + google.protobuf.Value inputs = 7 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of the job. + JobState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Current labeling job progress percentage scaled in interval [0, 100], + // indicating the percentage of DataItems that has been finished. + int32 labeling_progress = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Estimated cost(in US dollars) that the DataLabelingJob has incurred to + // date. + google.type.Money current_spend = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this DataLabelingJob was created. + google.protobuf.Timestamp create_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this DataLabelingJob was updated most recently. + google.protobuf.Timestamp update_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. DataLabelingJob errors. It is only populated when job's state is + // `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`. + google.rpc.Status error = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize your DataLabelingJobs. + // + // 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. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for each DataLabelingJob: + // + // * "aiplatform.googleapis.com/schema": output only, its value is the + // [inputs_schema][google.cloud.aiplatform.v1.DataLabelingJob.inputs_schema_uri]'s title. + map labels = 11; + + // The SpecialistPools' resource names associated with this job. + repeated string specialist_pools = 16; + + // Customer-managed encryption key spec for a DataLabelingJob. If set, this + // DataLabelingJob will be secured by this key. + // + // Note: Annotations created in the DataLabelingJob are associated with + // the EncryptionSpec of the Dataset they are exported to. + EncryptionSpec encryption_spec = 20; + + // Parameters that configure the active learning pipeline. Active learning + // will label the data incrementally via several iterations. For every + // iteration, it will select a batch of data based on the sampling strategy. + ActiveLearningConfig active_learning_config = 21; +} + +// Parameters that configure the active learning pipeline. Active learning will +// label the data incrementally by several iterations. For every iteration, it +// will select a batch of data based on the sampling strategy. +message ActiveLearningConfig { + // Required. Max human labeling DataItems. The rest part will be labeled by + // machine. + oneof human_labeling_budget { + // Max number of human labeled DataItems. + int64 max_data_item_count = 1; + + // Max percent of total DataItems for human labeling. + int32 max_data_item_percentage = 2; + } + + // Active learning data sampling config. For every active learning labeling + // iteration, it will select a batch of data based on the sampling strategy. + SampleConfig sample_config = 3; + + // CMLE training config. For every active learning labeling iteration, system + // will train a machine learning model on CMLE. The trained model will be used + // by data sampling algorithm to select DataItems. + TrainingConfig training_config = 4; +} + +// Active learning data sampling config. For every active learning labeling +// iteration, it will select a batch of data based on the sampling strategy. +message SampleConfig { + // Sample strategy decides which subset of DataItems should be selected for + // human labeling in every batch. + enum SampleStrategy { + // Default will be treated as UNCERTAINTY. + SAMPLE_STRATEGY_UNSPECIFIED = 0; + + // Sample the most uncertain data to label. + UNCERTAINTY = 1; + } + + // Decides sample size for the initial batch. initial_batch_sample_percentage + // is used by default. + oneof initial_batch_sample_size { + // The percentage of data needed to be labeled in the first batch. + int32 initial_batch_sample_percentage = 1; + } + + // Decides sample size for the following batches. + // following_batch_sample_percentage is used by default. + oneof following_batch_sample_size { + // The percentage of data needed to be labeled in each following batch + // (except the first batch). + int32 following_batch_sample_percentage = 3; + } + + // Field to choose sampling strategy. Sampling strategy will decide which data + // should be selected for human labeling in every batch. + SampleStrategy sample_strategy = 5; +} + +// CMLE training config. For every active learning labeling iteration, system +// will train a machine learning model on CMLE. The trained model will be used +// by data sampling algorithm to select DataItems. +message TrainingConfig { + // The timeout hours for the CMLE training job, expressed in milli hours + // i.e. 1,000 value in this field means 1 hour. + int64 timeout_training_milli_hours = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset.proto new file mode 100644 index 00000000..9d182747 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset.proto @@ -0,0 +1,142 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DatasetProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A collection of DataItems and Annotations on them. +message Dataset { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Dataset" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}" + }; + + // Output only. The resource name of the Dataset. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the Dataset. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Points to a YAML file stored on Google Cloud Storage describing additional + // information about the Dataset. + // The schema is defined as an OpenAPI 3.0.2 Schema Object. + // The schema files that can be used here are found in + // gs://google-cloud-aiplatform/schema/dataset/metadata/. + string metadata_schema_uri = 3 [(google.api.field_behavior) = REQUIRED]; + + // Required. Additional information about the Dataset. + google.protobuf.Value metadata = 8 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Timestamp when this Dataset was created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Dataset was last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 6; + + // The labels with user-defined metadata to organize your Datasets. + // + // 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. + // No more than 64 user labels can be associated with one Dataset (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for each Dataset: + // + // * "aiplatform.googleapis.com/dataset_metadata_schema": output only, its + // value is the [metadata_schema's][google.cloud.aiplatform.v1.Dataset.metadata_schema_uri] title. + map labels = 7; + + // Customer-managed encryption key spec for a Dataset. If set, this Dataset + // and all sub-resources of this Dataset will be secured by this key. + EncryptionSpec encryption_spec = 11; +} + +// Describes the location from where we import data into a Dataset, together +// with the labels that will be applied to the DataItems and the Annotations. +message ImportDataConfig { + // The source of the input. + oneof source { + // The Google Cloud Storage location for the input content. + GcsSource gcs_source = 1; + } + + // Labels that will be applied to newly imported DataItems. If an identical + // DataItem as one being imported already exists in the Dataset, then these + // labels will be appended to these of the already existing one, and if labels + // with identical key is imported before, the old label value will be + // overwritten. If two DataItems are identical in the same import data + // operation, the labels will be combined and if key collision happens in this + // case, one of the values will be picked randomly. Two DataItems are + // considered identical if their content bytes are identical (e.g. image bytes + // or pdf bytes). + // These labels will be overridden by Annotation labels specified inside index + // file referenced by [import_schema_uri][google.cloud.aiplatform.v1.ImportDataConfig.import_schema_uri], e.g. jsonl file. + map data_item_labels = 2; + + // Required. Points to a YAML file stored on Google Cloud Storage describing the import + // format. Validation will be done against the schema. The schema is defined + // as an [OpenAPI 3.0.2 Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + string import_schema_uri = 4 [(google.api.field_behavior) = REQUIRED]; +} + +// Describes what part of the Dataset is to be exported, the destination of +// the export and how to export. +message ExportDataConfig { + // The destination of the output. + oneof destination { + // The Google Cloud Storage location where the output is to be written to. + // In the given directory a new directory will be created with name: + // `export-data--` where + // timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. All export + // output will be written into that directory. Inside that directory, + // annotations with the same schema will be grouped into sub directories + // which are named with the corresponding annotations' schema title. Inside + // these sub directories, a schema.yaml will be created to describe the + // output format. + GcsDestination gcs_destination = 1; + } + + // A filter on Annotations of the Dataset. Only Annotations on to-be-exported + // DataItems(specified by [data_items_filter][]) that match this filter will + // be exported. The filter syntax is the same as in + // [ListAnnotations][google.cloud.aiplatform.v1.DatasetService.ListAnnotations]. + string annotations_filter = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset_service.proto new file mode 100644 index 00000000..14897749 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/dataset_service.proto @@ -0,0 +1,411 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/annotation.proto"; +import "google/cloud/aiplatform/v1/annotation_spec.proto"; +import "google/cloud/aiplatform/v1/data_item.proto"; +import "google/cloud/aiplatform/v1/dataset.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/cloud/aiplatform/v1/training_pipeline.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DatasetServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +service DatasetService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Dataset. + rpc CreateDataset(CreateDatasetRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/datasets" + body: "dataset" + }; + option (google.api.method_signature) = "parent,dataset"; + option (google.longrunning.operation_info) = { + response_type: "Dataset" + metadata_type: "CreateDatasetOperationMetadata" + }; + } + + // Gets a Dataset. + rpc GetDataset(GetDatasetRequest) returns (Dataset) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/datasets/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Dataset. + rpc UpdateDataset(UpdateDatasetRequest) returns (Dataset) { + option (google.api.http) = { + patch: "/v1/{dataset.name=projects/*/locations/*/datasets/*}" + body: "dataset" + }; + option (google.api.method_signature) = "dataset,update_mask"; + } + + // Lists Datasets in a Location. + rpc ListDatasets(ListDatasetsRequest) returns (ListDatasetsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/datasets" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a Dataset. + rpc DeleteDataset(DeleteDatasetRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/datasets/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Imports data into a Dataset. + rpc ImportData(ImportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/datasets/*}:import" + body: "*" + }; + option (google.api.method_signature) = "name,import_configs"; + option (google.longrunning.operation_info) = { + response_type: "ImportDataResponse" + metadata_type: "ImportDataOperationMetadata" + }; + } + + // Exports data from a Dataset. + rpc ExportData(ExportDataRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/datasets/*}:export" + body: "*" + }; + option (google.api.method_signature) = "name,export_config"; + option (google.longrunning.operation_info) = { + response_type: "ExportDataResponse" + metadata_type: "ExportDataOperationMetadata" + }; + } + + // Lists DataItems in a Dataset. + rpc ListDataItems(ListDataItemsRequest) returns (ListDataItemsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/datasets/*}/dataItems" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets an AnnotationSpec. + rpc GetAnnotationSpec(GetAnnotationSpecRequest) returns (AnnotationSpec) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Annotations belongs to a dataitem + rpc ListAnnotations(ListAnnotationsRequest) returns (ListAnnotationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/datasets/*/dataItems/*}/annotations" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for [DatasetService.CreateDataset][google.cloud.aiplatform.v1.DatasetService.CreateDataset]. +message CreateDatasetRequest { + // Required. The resource name of the Location to create the Dataset in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Dataset to create. + Dataset dataset = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for [DatasetService.CreateDataset][google.cloud.aiplatform.v1.DatasetService.CreateDataset]. +message CreateDatasetOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [DatasetService.GetDataset][google.cloud.aiplatform.v1.DatasetService.GetDataset]. +message GetDatasetRequest { + // Required. The name of the Dataset resource. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 2; +} + +// Request message for [DatasetService.UpdateDataset][google.cloud.aiplatform.v1.DatasetService.UpdateDataset]. +message UpdateDatasetRequest { + // Required. The Dataset which replaces the resource on the server. + Dataset dataset = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see [google.protobuf.FieldMask][google.protobuf.FieldMask]. + // Updatable fields: + // + // * `display_name` + // * `description` + // * `labels` + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [DatasetService.ListDatasets][google.cloud.aiplatform.v1.DatasetService.ListDatasets]. +message ListDatasetsRequest { + // Required. The name of the Dataset's parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + // + // * `display_name`: supports = and != + // * `metadata_schema_uri`: supports = and != + // * `labels` supports general map functions that is: + // * `labels.key=value` - key:value equality + // * `labels.key:* or labels:key - key existence + // * A key including a space must be quoted. `labels."a key"`. + // + // Some examples: + // * `displayName="myDisplayName"` + // * `labels.myKey="myValue"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `display_name` + // * `create_time` + // * `update_time` + string order_by = 6; +} + +// Response message for [DatasetService.ListDatasets][google.cloud.aiplatform.v1.DatasetService.ListDatasets]. +message ListDatasetsResponse { + // A list of Datasets that matches the specified filter in the request. + repeated Dataset datasets = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for [DatasetService.DeleteDataset][google.cloud.aiplatform.v1.DatasetService.DeleteDataset]. +message DeleteDatasetRequest { + // Required. The resource name of the Dataset to delete. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; +} + +// Request message for [DatasetService.ImportData][google.cloud.aiplatform.v1.DatasetService.ImportData]. +message ImportDataRequest { + // Required. The name of the Dataset resource. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // Required. The desired input locations. The contents of all input locations will be + // imported in one batch. + repeated ImportDataConfig import_configs = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [DatasetService.ImportData][google.cloud.aiplatform.v1.DatasetService.ImportData]. +message ImportDataResponse { + +} + +// Runtime operation information for [DatasetService.ImportData][google.cloud.aiplatform.v1.DatasetService.ImportData]. +message ImportDataOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [DatasetService.ExportData][google.cloud.aiplatform.v1.DatasetService.ExportData]. +message ExportDataRequest { + // Required. The name of the Dataset resource. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // Required. The desired output location. + ExportDataConfig export_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [DatasetService.ExportData][google.cloud.aiplatform.v1.DatasetService.ExportData]. +message ExportDataResponse { + // All of the files that are exported in this export operation. + repeated string exported_files = 1; +} + +// Runtime operation information for [DatasetService.ExportData][google.cloud.aiplatform.v1.DatasetService.ExportData]. +message ExportDataOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; + + // A Google Cloud Storage directory which path ends with '/'. The exported + // data is stored in the directory. + string gcs_output_directory = 2; +} + +// Request message for [DatasetService.ListDataItems][google.cloud.aiplatform.v1.DatasetService.ListDataItems]. +message ListDataItemsRequest { + // Required. The resource name of the Dataset to list DataItems from. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + } + ]; + + // The standard list filter. + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + string order_by = 6; +} + +// Response message for [DatasetService.ListDataItems][google.cloud.aiplatform.v1.DatasetService.ListDataItems]. +message ListDataItemsResponse { + // A list of DataItems that matches the specified filter in the request. + repeated DataItem data_items = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for [DatasetService.GetAnnotationSpec][google.cloud.aiplatform.v1.DatasetService.GetAnnotationSpec]. +message GetAnnotationSpecRequest { + // Required. The name of the AnnotationSpec resource. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}/annotationSpecs/{annotation_spec}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/AnnotationSpec" + } + ]; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 2; +} + +// Request message for [DatasetService.ListAnnotations][google.cloud.aiplatform.v1.DatasetService.ListAnnotations]. +message ListAnnotationsRequest { + // Required. The resource name of the DataItem to list Annotations from. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}/dataItems/{data_item}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DataItem" + } + ]; + + // The standard list filter. + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + string order_by = 6; +} + +// Response message for [DatasetService.ListAnnotations][google.cloud.aiplatform.v1.DatasetService.ListAnnotations]. +message ListAnnotationsResponse { + // A list of Annotations that matches the specified filter in the request. + repeated Annotation annotations = 1; + + // The standard List next-page token. + string next_page_token = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/deployed_model_ref.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/deployed_model_ref.proto new file mode 100644 index 00000000..0950cbb9 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/deployed_model_ref.proto @@ -0,0 +1,43 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "DeployedModelNameProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Points to a DeployedModel. +message DeployedModelRef { + // Immutable. A resource name of an Endpoint. + string endpoint = 1 [ + (google.api.field_behavior) = IMMUTABLE, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Immutable. An ID of a DeployedModel in the above Endpoint. + string deployed_model_id = 2 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/encryption_spec.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/encryption_spec.proto new file mode 100644 index 00000000..ee7a96b8 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/encryption_spec.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "EncryptionSpecProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a customer-managed encryption key spec that can be applied to +// a top-level resource. +message EncryptionSpec { + // Required. The Cloud KMS resource identifier of the customer managed encryption key + // used to protect a resource. Has the form: + // `projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key`. + // The key needs to be in the same region as where the compute resource is + // created. + string kms_key_name = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint.proto new file mode 100644 index 00000000..ab5aa55d --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint.proto @@ -0,0 +1,154 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "EndpointProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Models are deployed into it, and afterwards Endpoint is called to obtain +// predictions and explanations. +message Endpoint { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Endpoint" + pattern: "projects/{project}/locations/{location}/endpoints/{endpoint}" + }; + + // Output only. The resource name of the Endpoint. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the Endpoint. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // The description of the Endpoint. + string description = 3; + + // Output only. The models deployed in this Endpoint. + // To add or remove DeployedModels use [EndpointService.DeployModel][google.cloud.aiplatform.v1.EndpointService.DeployModel] and + // [EndpointService.UndeployModel][google.cloud.aiplatform.v1.EndpointService.UndeployModel] respectively. + repeated DeployedModel deployed_models = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // A map from a DeployedModel's ID to the percentage of this Endpoint's + // traffic that should be forwarded to that DeployedModel. + // + // If a DeployedModel's ID is not listed in this map, then it receives no + // traffic. + // + // The traffic percentage values must add up to 100, or map must be empty if + // the Endpoint is to not accept any traffic at a moment. + map traffic_split = 5; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 6; + + // The labels with user-defined metadata to organize your Endpoints. + // + // 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. + map labels = 7; + + // Output only. Timestamp when this Endpoint was created. + google.protobuf.Timestamp create_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Endpoint was last updated. + google.protobuf.Timestamp update_time = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Customer-managed encryption key spec for an Endpoint. If set, this + // Endpoint and all sub-resources of this Endpoint will be secured by + // this key. + EncryptionSpec encryption_spec = 10; +} + +// A deployment of a Model. Endpoints contain one or more DeployedModels. +message DeployedModel { + // The prediction (for example, the machine) resources that the DeployedModel + // uses. The user is billed for the resources (at least their minimal amount) + // even if the DeployedModel receives no traffic. + // Not all Models support all resources types. See + // [Model.supported_deployment_resources_types][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types]. + oneof prediction_resources { + // A description of resources that are dedicated to the DeployedModel, and + // that need a higher degree of manual configuration. + DedicatedResources dedicated_resources = 7; + + // A description of resources that to large degree are decided by AI + // Platform, and require only a modest additional configuration. + AutomaticResources automatic_resources = 8; + } + + // Output only. The ID of the DeployedModel. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The name of the Model that this is the deployment of. Note that the Model + // may be in a different location than the DeployedModel's Endpoint. + string model = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // The display name of the DeployedModel. If not provided upon creation, + // the Model's display_name is used. + string display_name = 3; + + // Output only. Timestamp when the DeployedModel was created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The service account that the DeployedModel's container runs as. Specify the + // email address of the service account. If this service account is not + // specified, the container runs as a service account that doesn't have access + // to the resource project. + // + // Users deploying the Model must have the `iam.serviceAccounts.actAs` + // permission on this service account. + string service_account = 11; + + // For custom-trained Models and AutoML Tabular Models, the container of the + // DeployedModel instances will send `stderr` and `stdout` streams to + // Stackdriver Logging by default. Please note that the logs incur cost, + // which are subject to [Cloud Logging + // pricing](https://cloud.google.com/stackdriver/pricing). + // + // User can disable container logging by setting this flag to true. + bool disable_container_logging = 15; + + // These logs are like standard server access logs, containing + // information like timestamp and latency for each prediction request. + // + // Note that Stackdriver logs may incur a cost, especially if your project + // receives prediction requests at a high queries per second rate (QPS). + // Estimate your costs before enabling this option. + bool enable_access_logging = 13; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint_service.proto new file mode 100644 index 00000000..e769835c --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/endpoint_service.proto @@ -0,0 +1,313 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/endpoint.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "EndpointServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +service EndpointService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates an Endpoint. + rpc CreateEndpoint(CreateEndpointRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/endpoints" + body: "endpoint" + }; + option (google.api.method_signature) = "parent,endpoint"; + option (google.longrunning.operation_info) = { + response_type: "Endpoint" + metadata_type: "CreateEndpointOperationMetadata" + }; + } + + // Gets an Endpoint. + rpc GetEndpoint(GetEndpointRequest) returns (Endpoint) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/endpoints/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Endpoints in a Location. + rpc ListEndpoints(ListEndpointsRequest) returns (ListEndpointsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/endpoints" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates an Endpoint. + rpc UpdateEndpoint(UpdateEndpointRequest) returns (Endpoint) { + option (google.api.http) = { + patch: "/v1/{endpoint.name=projects/*/locations/*/endpoints/*}" + body: "endpoint" + }; + option (google.api.method_signature) = "endpoint,update_mask"; + } + + // Deletes an Endpoint. + rpc DeleteEndpoint(DeleteEndpointRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/endpoints/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Deploys a Model into this Endpoint, creating a DeployedModel within it. + rpc DeployModel(DeployModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{endpoint=projects/*/locations/*/endpoints/*}:deployModel" + body: "*" + }; + option (google.api.method_signature) = "endpoint,deployed_model,traffic_split"; + option (google.longrunning.operation_info) = { + response_type: "DeployModelResponse" + metadata_type: "DeployModelOperationMetadata" + }; + } + + // Undeploys a Model from an Endpoint, removing a DeployedModel from it, and + // freeing all resources it's using. + rpc UndeployModel(UndeployModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{endpoint=projects/*/locations/*/endpoints/*}:undeployModel" + body: "*" + }; + option (google.api.method_signature) = "endpoint,deployed_model_id,traffic_split"; + option (google.longrunning.operation_info) = { + response_type: "UndeployModelResponse" + metadata_type: "UndeployModelOperationMetadata" + }; + } +} + +// Request message for [EndpointService.CreateEndpoint][google.cloud.aiplatform.v1.EndpointService.CreateEndpoint]. +message CreateEndpointRequest { + // Required. The resource name of the Location to create the Endpoint in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Endpoint to create. + Endpoint endpoint = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for [EndpointService.CreateEndpoint][google.cloud.aiplatform.v1.EndpointService.CreateEndpoint]. +message CreateEndpointOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [EndpointService.GetEndpoint][google.cloud.aiplatform.v1.EndpointService.GetEndpoint] +message GetEndpointRequest { + // Required. The name of the Endpoint resource. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; +} + +// Request message for [EndpointService.ListEndpoints][google.cloud.aiplatform.v1.EndpointService.ListEndpoints]. +message ListEndpointsRequest { + // Required. The resource name of the Location from which to list the Endpoints. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Optional. An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + // + // * `endpoint` supports = and !=. `endpoint` represents the Endpoint ID, + // i.e. the last segment of the Endpoint's [resource name][google.cloud.aiplatform.v1.Endpoint.name]. + // * `display_name` supports = and, != + // * `labels` supports general map functions that is: + // * `labels.key=value` - key:value equality + // * `labels.key:* or labels:key - key existence + // * A key including a space must be quoted. `labels."a key"`. + // + // Some examples: + // * `endpoint=1` + // * `displayName="myDisplayName"` + // * `labels.myKey="myValue"` + string filter = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page size. + int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The standard list page token. + // Typically obtained via + // [ListEndpointsResponse.next_page_token][google.cloud.aiplatform.v1.ListEndpointsResponse.next_page_token] of the previous + // [EndpointService.ListEndpoints][google.cloud.aiplatform.v1.EndpointService.ListEndpoints] call. + string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5 [(google.api.field_behavior) = OPTIONAL]; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6; +} + +// Response message for [EndpointService.ListEndpoints][google.cloud.aiplatform.v1.EndpointService.ListEndpoints]. +message ListEndpointsResponse { + // List of Endpoints in the requested page. + repeated Endpoint endpoints = 1; + + // A token to retrieve the next page of results. + // Pass to [ListEndpointsRequest.page_token][google.cloud.aiplatform.v1.ListEndpointsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [EndpointService.UpdateEndpoint][google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint]. +message UpdateEndpointRequest { + // Required. The Endpoint which replaces the resource on the server. + Endpoint endpoint = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. See [google.protobuf.FieldMask][google.protobuf.FieldMask]. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [EndpointService.DeleteEndpoint][google.cloud.aiplatform.v1.EndpointService.DeleteEndpoint]. +message DeleteEndpointRequest { + // Required. The name of the Endpoint resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; +} + +// Request message for [EndpointService.DeployModel][google.cloud.aiplatform.v1.EndpointService.DeployModel]. +message DeployModelRequest { + // Required. The name of the Endpoint resource into which to deploy a Model. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Required. The DeployedModel to be created within the Endpoint. Note that + // [Endpoint.traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split] must be updated for the DeployedModel to start + // receiving traffic, either as part of this call, or via + // [EndpointService.UpdateEndpoint][google.cloud.aiplatform.v1.EndpointService.UpdateEndpoint]. + DeployedModel deployed_model = 2 [(google.api.field_behavior) = REQUIRED]; + + // A map from a DeployedModel's ID to the percentage of this Endpoint's + // traffic that should be forwarded to that DeployedModel. + // + // If this field is non-empty, then the Endpoint's + // [traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split] will be overwritten with it. + // To refer to the ID of the just being deployed Model, a "0" should be used, + // and the actual ID of the new DeployedModel will be filled in its place by + // this method. The traffic percentage values must add up to 100. + // + // If this field is empty, then the Endpoint's + // [traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split] is not updated. + map traffic_split = 3; +} + +// Response message for [EndpointService.DeployModel][google.cloud.aiplatform.v1.EndpointService.DeployModel]. +message DeployModelResponse { + // The DeployedModel that had been deployed in the Endpoint. + DeployedModel deployed_model = 1; +} + +// Runtime operation information for [EndpointService.DeployModel][google.cloud.aiplatform.v1.EndpointService.DeployModel]. +message DeployModelOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [EndpointService.UndeployModel][google.cloud.aiplatform.v1.EndpointService.UndeployModel]. +message UndeployModelRequest { + // Required. The name of the Endpoint resource from which to undeploy a Model. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Required. The ID of the DeployedModel to be undeployed from the Endpoint. + string deployed_model_id = 2 [(google.api.field_behavior) = REQUIRED]; + + // If this field is provided, then the Endpoint's + // [traffic_split][google.cloud.aiplatform.v1.Endpoint.traffic_split] will be overwritten with it. If + // last DeployedModel is being undeployed from the Endpoint, the + // [Endpoint.traffic_split] will always end up empty when this call returns. + // A DeployedModel will be successfully undeployed only if it doesn't have + // any traffic assigned to it when this method executes, or if this field + // unassigns any traffic to it. + map traffic_split = 3; +} + +// Response message for [EndpointService.UndeployModel][google.cloud.aiplatform.v1.EndpointService.UndeployModel]. +message UndeployModelResponse { + +} + +// Runtime operation information for [EndpointService.UndeployModel][google.cloud.aiplatform.v1.EndpointService.UndeployModel]. +message UndeployModelOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/env_var.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/env_var.proto new file mode 100644 index 00000000..1d6aa59f --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/env_var.proto @@ -0,0 +1,43 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "EnvVarProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents an environment variable present in a Container or Python Module. +message EnvVar { + // Required. Name of the environment variable. Must be a valid C identifier. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Variables that reference a $(VAR_NAME) are expanded + // using the previous defined environment variables in the container and + // any service environment variables. If a variable cannot be resolved, + // the reference in the input string will be unchanged. The $(VAR_NAME) + // syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped + // references will never be expanded, regardless of whether the variable + // exists or not. + string value = 2 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/execution.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/execution.proto new file mode 100644 index 00000000..7e9ee5f1 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/execution.proto @@ -0,0 +1,96 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/value.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ExecutionProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Instance of a general execution. +message Execution { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Execution" + pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/executions/{execution}" + }; + + // Describes the state of the Execution. + enum State { + // Unspecified Execution state + STATE_UNSPECIFIED = 0; + + // The Execution is new + NEW = 1; + + // The Execution is running + RUNNING = 2; + + // The Execution has finished running + COMPLETE = 3; + + // The Execution has failed + FAILED = 4; + + // The Execution completed through Cache hit. + CACHED = 5; + + // The Execution was cancelled. + CANCELLED = 6; + } + + // Output only. The resource name of the Execution. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User provided display name of the Execution. + // May be up to 128 Unicode characters. + string display_name = 2; + + // The state of this Execution. This is a property of the Execution, and does + // not imply or capture any ongoing process. This property is managed by + // clients (such as Vertex Pipelines) and the system does not prescribe + // or check the validity of state transitions. + State state = 6; + + // An eTag used to perform consistent read-modify-write updates. If not set, a + // blind "overwrite" update happens. + string etag = 9; + + // The labels with user-defined metadata to organize your Executions. + // + // 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. + // No more than 64 user labels can be associated with one Execution (System + // labels are excluded). + map labels = 10; + + // Output only. Timestamp when this Execution was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Execution was last updated. + google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto new file mode 100644 index 00000000..9a86ae85 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto @@ -0,0 +1,111 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/custom_job.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/job_state.proto"; +import "google/cloud/aiplatform/v1/study.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "HyperparameterTuningJobProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Represents a HyperparameterTuningJob. A HyperparameterTuningJob +// has a Study specification and multiple CustomJobs with identical +// CustomJob specification. +message HyperparameterTuningJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/HyperparameterTuningJob" + pattern: "projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}" + }; + + // Output only. Resource name of the HyperparameterTuningJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The display name of the HyperparameterTuningJob. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Study configuration of the HyperparameterTuningJob. + StudySpec study_spec = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The desired total number of Trials. + int32 max_trial_count = 5 [(google.api.field_behavior) = REQUIRED]; + + // Required. The desired number of Trials to run in parallel. + int32 parallel_trial_count = 6 [(google.api.field_behavior) = REQUIRED]; + + // The number of failed Trials that need to be seen before failing + // the HyperparameterTuningJob. + // + // If set to 0, Vertex AI decides how many Trials must fail + // before the whole job fails. + int32 max_failed_trial_count = 7; + + // Required. The spec of a trial job. The same spec applies to the CustomJobs created + // in all the trials. + CustomJobSpec trial_job_spec = 8 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Trials of the HyperparameterTuningJob. + repeated Trial trials = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed state of the job. + JobState state = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the HyperparameterTuningJob was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the HyperparameterTuningJob for the first time entered the + // `JOB_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the HyperparameterTuningJob entered any of the following states: + // `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED`, `JOB_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the HyperparameterTuningJob was most recently updated. + google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when job's state is JOB_STATE_FAILED or + // JOB_STATE_CANCELLED. + google.rpc.Status error = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize HyperparameterTuningJobs. + // + // 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. + map labels = 16; + + // Customer-managed encryption key options for a HyperparameterTuningJob. + // If this is set, then all resources created by the HyperparameterTuningJob + // will be encrypted with the provided encryption key. + EncryptionSpec encryption_spec = 17; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/io.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/io.proto new file mode 100644 index 00000000..8a293aa8 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/io.proto @@ -0,0 +1,85 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "IoProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// The Google Cloud Storage location for the input content. +message GcsSource { + // Required. Google Cloud Storage URI(-s) to the input file(s). May contain + // wildcards. For more information on wildcards, see + // https://cloud.google.com/storage/docs/gsutil/addlhelp/WildcardNames. + repeated string uris = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The Google Cloud Storage location where the output is to be written to. +message GcsDestination { + // Required. Google Cloud Storage URI to output directory. If the uri doesn't end with + // '/', a '/' will be automatically appended. The directory is created if it + // doesn't exist. + string output_uri_prefix = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The BigQuery location for the input content. +message BigQuerySource { + // Required. BigQuery URI to a table, up to 2000 characters long. + // Accepted forms: + // + // * BigQuery path. For example: `bq://projectId.bqDatasetId.bqTableId`. + string input_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The BigQuery location for the output content. +message BigQueryDestination { + // Required. BigQuery URI to a project or table, up to 2000 characters long. + // + // When only the project is specified, the Dataset and Table is created. + // When the full table reference is specified, the Dataset must exist and + // table must not exist. + // + // Accepted forms: + // + // * BigQuery path. For example: + // `bq://projectId` or `bq://projectId.bqDatasetId` or + // `bq://projectId.bqDatasetId.bqTableId`. + string output_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} + +// The Container Registry location for the container image. +message ContainerRegistryDestination { + // Required. Container Registry URI of a container image. + // Only Google Container Registry and Artifact Registry are supported now. + // Accepted forms: + // + // * Google Container Registry path. For example: + // `gcr.io/projectId/imageName:tag`. + // + // * Artifact Registry path. For example: + // `us-central1-docker.pkg.dev/projectId/repoName/imageName:tag`. + // + // If a tag is not specified, "latest" will be used as the default tag. + string output_uri = 1 [(google.api.field_behavior) = REQUIRED]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_service.proto new file mode 100644 index 00000000..12f6da74 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_service.proto @@ -0,0 +1,697 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/batch_prediction_job.proto"; +import "google/cloud/aiplatform/v1/custom_job.proto"; +import "google/cloud/aiplatform/v1/data_labeling_job.proto"; +import "google/cloud/aiplatform/v1/hyperparameter_tuning_job.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/timestamp.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "JobServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for creating and managing Vertex AI's jobs. +service JobService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a CustomJob. A created CustomJob right away + // will be attempted to be run. + rpc CreateCustomJob(CreateCustomJobRequest) returns (CustomJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/customJobs" + body: "custom_job" + }; + option (google.api.method_signature) = "parent,custom_job"; + } + + // Gets a CustomJob. + rpc GetCustomJob(GetCustomJobRequest) returns (CustomJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/customJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists CustomJobs in a Location. + rpc ListCustomJobs(ListCustomJobsRequest) returns (ListCustomJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/customJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a CustomJob. + rpc DeleteCustomJob(DeleteCustomJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/customJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a CustomJob. + // Starts asynchronous cancellation on the CustomJob. The server + // makes a best effort to cancel the job, but success is not + // guaranteed. Clients can use [JobService.GetCustomJob][google.cloud.aiplatform.v1.JobService.GetCustomJob] or + // other methods to check whether the cancellation succeeded or whether the + // job completed despite cancellation. On successful cancellation, + // the CustomJob is not deleted; instead it becomes a job with + // a [CustomJob.error][google.cloud.aiplatform.v1.CustomJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`, and [CustomJob.state][google.cloud.aiplatform.v1.CustomJob.state] is set to + // `CANCELLED`. + rpc CancelCustomJob(CancelCustomJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/customJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a DataLabelingJob. + rpc CreateDataLabelingJob(CreateDataLabelingJobRequest) returns (DataLabelingJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" + body: "data_labeling_job" + }; + option (google.api.method_signature) = "parent,data_labeling_job"; + } + + // Gets a DataLabelingJob. + rpc GetDataLabelingJob(GetDataLabelingJobRequest) returns (DataLabelingJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists DataLabelingJobs in a Location. + rpc ListDataLabelingJobs(ListDataLabelingJobsRequest) returns (ListDataLabelingJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/dataLabelingJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a DataLabelingJob. + rpc DeleteDataLabelingJob(DeleteDataLabelingJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a DataLabelingJob. Success of cancellation is not guaranteed. + rpc CancelDataLabelingJob(CancelDataLabelingJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/dataLabelingJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a HyperparameterTuningJob + rpc CreateHyperparameterTuningJob(CreateHyperparameterTuningJobRequest) returns (HyperparameterTuningJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + body: "hyperparameter_tuning_job" + }; + option (google.api.method_signature) = "parent,hyperparameter_tuning_job"; + } + + // Gets a HyperparameterTuningJob + rpc GetHyperparameterTuningJob(GetHyperparameterTuningJobRequest) returns (HyperparameterTuningJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists HyperparameterTuningJobs in a Location. + rpc ListHyperparameterTuningJobs(ListHyperparameterTuningJobsRequest) returns (ListHyperparameterTuningJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/hyperparameterTuningJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a HyperparameterTuningJob. + rpc DeleteHyperparameterTuningJob(DeleteHyperparameterTuningJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a HyperparameterTuningJob. + // Starts asynchronous cancellation on the HyperparameterTuningJob. The server + // makes a best effort to cancel the job, but success is not + // guaranteed. Clients can use [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob] or + // other methods to check whether the cancellation succeeded or whether the + // job completed despite cancellation. On successful cancellation, + // the HyperparameterTuningJob is not deleted; instead it becomes a job with + // a [HyperparameterTuningJob.error][google.cloud.aiplatform.v1.HyperparameterTuningJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] + // of 1, corresponding to `Code.CANCELLED`, and + // [HyperparameterTuningJob.state][google.cloud.aiplatform.v1.HyperparameterTuningJob.state] is set to `CANCELLED`. + rpc CancelHyperparameterTuningJob(CancelHyperparameterTuningJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/hyperparameterTuningJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a BatchPredictionJob. A BatchPredictionJob once created will + // right away be attempted to start. + rpc CreateBatchPredictionJob(CreateBatchPredictionJobRequest) returns (BatchPredictionJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" + body: "batch_prediction_job" + }; + option (google.api.method_signature) = "parent,batch_prediction_job"; + } + + // Gets a BatchPredictionJob + rpc GetBatchPredictionJob(GetBatchPredictionJobRequest) returns (BatchPredictionJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists BatchPredictionJobs in a Location. + rpc ListBatchPredictionJobs(ListBatchPredictionJobsRequest) returns (ListBatchPredictionJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/batchPredictionJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a BatchPredictionJob. Can only be called on jobs that already + // finished. + rpc DeleteBatchPredictionJob(DeleteBatchPredictionJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a BatchPredictionJob. + // + // Starts asynchronous cancellation on the BatchPredictionJob. The server + // makes the best effort to cancel the job, but success is not + // guaranteed. Clients can use [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob] or + // other methods to check whether the cancellation succeeded or whether the + // job completed despite cancellation. On a successful cancellation, + // the BatchPredictionJob is not deleted;instead its + // [BatchPredictionJob.state][google.cloud.aiplatform.v1.BatchPredictionJob.state] is set to `CANCELLED`. Any files already + // outputted by the job are not deleted. + rpc CancelBatchPredictionJob(CancelBatchPredictionJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/batchPredictionJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for [JobService.CreateCustomJob][google.cloud.aiplatform.v1.JobService.CreateCustomJob]. +message CreateCustomJobRequest { + // Required. The resource name of the Location to create the CustomJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The CustomJob to create. + CustomJob custom_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [JobService.GetCustomJob][google.cloud.aiplatform.v1.JobService.GetCustomJob]. +message GetCustomJobRequest { + // Required. The name of the CustomJob resource. + // Format: + // `projects/{project}/locations/{location}/customJobs/{custom_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; +} + +// Request message for [JobService.ListCustomJobs][google.cloud.aiplatform.v1.JobService.ListCustomJobs]. +message ListCustomJobsRequest { + // Required. The resource name of the Location to list the CustomJobs from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports = and !=. + // + // * `state` supports = and !=. + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` + // + // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` + // + // * `NOT display_name="my_job"` + // + // * `state="JOB_STATE_FAILED"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListCustomJobsResponse.next_page_token][google.cloud.aiplatform.v1.ListCustomJobsResponse.next_page_token] of the previous + // [JobService.ListCustomJobs][google.cloud.aiplatform.v1.JobService.ListCustomJobs] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [JobService.ListCustomJobs][google.cloud.aiplatform.v1.JobService.ListCustomJobs] +message ListCustomJobsResponse { + // List of CustomJobs in the requested page. + repeated CustomJob custom_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListCustomJobsRequest.page_token][google.cloud.aiplatform.v1.ListCustomJobsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [JobService.DeleteCustomJob][google.cloud.aiplatform.v1.JobService.DeleteCustomJob]. +message DeleteCustomJobRequest { + // Required. The name of the CustomJob resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/customJobs/{custom_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; +} + +// Request message for [JobService.CancelCustomJob][google.cloud.aiplatform.v1.JobService.CancelCustomJob]. +message CancelCustomJobRequest { + // Required. The name of the CustomJob to cancel. + // Format: + // `projects/{project}/locations/{location}/customJobs/{custom_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; +} + +// Request message for [JobService.CreateDataLabelingJob][google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob]. +message CreateDataLabelingJobRequest { + // Required. The parent of the DataLabelingJob. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The DataLabelingJob to create. + DataLabelingJob data_labeling_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [JobService.GetDataLabelingJob][google.cloud.aiplatform.v1.JobService.GetDataLabelingJob]. +message GetDataLabelingJobRequest { + // Required. The name of the DataLabelingJob. + // Format: + // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DataLabelingJob" + } + ]; +} + +// Request message for [JobService.ListDataLabelingJobs][google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs]. +message ListDataLabelingJobsRequest { + // Required. The parent of the DataLabelingJob. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports = and !=. + // + // * `state` supports = and !=. + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` + // + // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` + // + // * `NOT display_name="my_job"` + // + // * `state="JOB_STATE_FAILED"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + string page_token = 4; + + // Mask specifying which fields to read. FieldMask represents a set of + // symbolic field paths. For example, the mask can be `paths: "name"`. The + // "name" here is a field in DataLabelingJob. + // If this field is not set, all fields of the DataLabelingJob are returned. + google.protobuf.FieldMask read_mask = 5; + + // A comma-separated list of fields to order by, sorted in ascending order by + // default. + // Use `desc` after a field name for descending. + string order_by = 6; +} + +// Response message for [JobService.ListDataLabelingJobs][google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs]. +message ListDataLabelingJobsResponse { + // A list of DataLabelingJobs that matches the specified filter in the + // request. + repeated DataLabelingJob data_labeling_jobs = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for [JobService.DeleteDataLabelingJob][google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob]. +message DeleteDataLabelingJobRequest { + // Required. The name of the DataLabelingJob to be deleted. + // Format: + // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DataLabelingJob" + } + ]; +} + +// Request message for [JobService.CancelDataLabelingJob][google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob]. +message CancelDataLabelingJobRequest { + // Required. The name of the DataLabelingJob. + // Format: + // `projects/{project}/locations/{location}/dataLabelingJobs/{data_labeling_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/DataLabelingJob" + } + ]; +} + +// Request message for [JobService.CreateHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob]. +message CreateHyperparameterTuningJobRequest { + // Required. The resource name of the Location to create the HyperparameterTuningJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The HyperparameterTuningJob to create. + HyperparameterTuningJob hyperparameter_tuning_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob]. +message GetHyperparameterTuningJobRequest { + // Required. The name of the HyperparameterTuningJob resource. + // Format: + // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/HyperparameterTuningJob" + } + ]; +} + +// Request message for [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs]. +message ListHyperparameterTuningJobsRequest { + // Required. The resource name of the Location to list the HyperparameterTuningJobs + // from. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports = and !=. + // + // * `state` supports = and !=. + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` + // + // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` + // + // * `NOT display_name="my_job"` + // + // * `state="JOB_STATE_FAILED"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListHyperparameterTuningJobsResponse.next_page_token][google.cloud.aiplatform.v1.ListHyperparameterTuningJobsResponse.next_page_token] of the previous + // [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [JobService.ListHyperparameterTuningJobs][google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs] +message ListHyperparameterTuningJobsResponse { + // List of HyperparameterTuningJobs in the requested page. + // [HyperparameterTuningJob.trials][google.cloud.aiplatform.v1.HyperparameterTuningJob.trials] of the jobs will be not be returned. + repeated HyperparameterTuningJob hyperparameter_tuning_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListHyperparameterTuningJobsRequest.page_token][google.cloud.aiplatform.v1.ListHyperparameterTuningJobsRequest.page_token] to obtain that + // page. + string next_page_token = 2; +} + +// Request message for [JobService.DeleteHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob]. +message DeleteHyperparameterTuningJobRequest { + // Required. The name of the HyperparameterTuningJob resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/HyperparameterTuningJob" + } + ]; +} + +// Request message for [JobService.CancelHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob]. +message CancelHyperparameterTuningJobRequest { + // Required. The name of the HyperparameterTuningJob to cancel. + // Format: + // `projects/{project}/locations/{location}/hyperparameterTuningJobs/{hyperparameter_tuning_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/HyperparameterTuningJob" + } + ]; +} + +// Request message for [JobService.CreateBatchPredictionJob][google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob]. +message CreateBatchPredictionJobRequest { + // Required. The resource name of the Location to create the BatchPredictionJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The BatchPredictionJob to create. + BatchPredictionJob batch_prediction_job = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob]. +message GetBatchPredictionJobRequest { + // Required. The name of the BatchPredictionJob resource. + // Format: + // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/BatchPredictionJob" + } + ]; +} + +// Request message for [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs]. +message ListBatchPredictionJobsRequest { + // Required. The resource name of the Location to list the BatchPredictionJobs + // from. Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // + // Supported fields: + // + // * `display_name` supports = and !=. + // + // * `state` supports = and !=. + // + // * `model_display_name` supports = and != + // + // Some examples of using the filter are: + // + // * `state="JOB_STATE_SUCCEEDED" AND display_name="my_job"` + // + // * `state="JOB_STATE_RUNNING" OR display_name="my_job"` + // + // * `NOT display_name="my_job"` + // + // * `state="JOB_STATE_FAILED"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListBatchPredictionJobsResponse.next_page_token][google.cloud.aiplatform.v1.ListBatchPredictionJobsResponse.next_page_token] of the previous + // [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [JobService.ListBatchPredictionJobs][google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs] +message ListBatchPredictionJobsResponse { + // List of BatchPredictionJobs in the requested page. + repeated BatchPredictionJob batch_prediction_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListBatchPredictionJobsRequest.page_token][google.cloud.aiplatform.v1.ListBatchPredictionJobsRequest.page_token] to obtain that + // page. + string next_page_token = 2; +} + +// Request message for [JobService.DeleteBatchPredictionJob][google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob]. +message DeleteBatchPredictionJobRequest { + // Required. The name of the BatchPredictionJob resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/BatchPredictionJob" + } + ]; +} + +// Request message for [JobService.CancelBatchPredictionJob][google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob]. +message CancelBatchPredictionJobRequest { + // Required. The name of the BatchPredictionJob to cancel. + // Format: + // `projects/{project}/locations/{location}/batchPredictionJobs/{batch_prediction_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/BatchPredictionJob" + } + ]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_state.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_state.proto new file mode 100644 index 00000000..bc8a6139 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/job_state.proto @@ -0,0 +1,61 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "JobStateProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Describes the state of a job. +enum JobState { + // The job state is unspecified. + JOB_STATE_UNSPECIFIED = 0; + + // The job has been just created or resumed and processing has not yet begun. + JOB_STATE_QUEUED = 1; + + // The service is preparing to run the job. + JOB_STATE_PENDING = 2; + + // The job is in progress. + JOB_STATE_RUNNING = 3; + + // The job completed successfully. + JOB_STATE_SUCCEEDED = 4; + + // The job failed. + JOB_STATE_FAILED = 5; + + // The job is being cancelled. From this state the job may only go to + // either `JOB_STATE_SUCCEEDED`, `JOB_STATE_FAILED` or `JOB_STATE_CANCELLED`. + JOB_STATE_CANCELLING = 6; + + // The job has been cancelled. + JOB_STATE_CANCELLED = 7; + + // The job has been stopped, and can be resumed. + JOB_STATE_PAUSED = 8; + + // The job has expired. + JOB_STATE_EXPIRED = 9; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/machine_resources.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/machine_resources.proto new file mode 100644 index 00000000..6d03d2cf --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/machine_resources.proto @@ -0,0 +1,185 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1/accelerator_type.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "MachineResourcesProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Specification of a single machine. +message MachineSpec { + // Immutable. The type of the machine. + // + // See the [list of machine types supported for + // prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) + // + // See the [list of machine types supported for custom + // training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). + // + // For [DeployedModel][google.cloud.aiplatform.v1.DeployedModel] this field is optional, and the default + // value is `n1-standard-2`. For [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob] or as part of + // [WorkerPoolSpec][google.cloud.aiplatform.v1.WorkerPoolSpec] this field is required. + string machine_type = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The type of accelerator(s) that may be attached to the machine as per + // [accelerator_count][google.cloud.aiplatform.v1.MachineSpec.accelerator_count]. + AcceleratorType accelerator_type = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // The number of accelerators to attach to the machine. + int32 accelerator_count = 3; +} + +// A description of resources that are dedicated to a DeployedModel, and +// that need a higher degree of manual configuration. +message DedicatedResources { + // Required. Immutable. The specification of a single machine used by the prediction. + MachineSpec machine_spec = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Immutable. The minimum number of machine replicas this DeployedModel will be always + // deployed on. This value must be greater than or equal to 1. + // + // If traffic against the DeployedModel increases, it may dynamically be + // deployed onto more replicas, and as traffic decreases, some of these extra + // replicas may be freed. + int32 min_replica_count = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. The maximum number of replicas this DeployedModel may be deployed on when + // the traffic against it increases. If the requested value is too large, + // the deployment will error, but if deployment succeeds then the ability + // to scale the model to that many replicas is guaranteed (barring service + // outages). If traffic against the DeployedModel increases beyond what its + // replicas at maximum may handle, a portion of the traffic will be dropped. + // If this value is not provided, will use [min_replica_count][google.cloud.aiplatform.v1.DedicatedResources.min_replica_count] as the + // default value. + int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The metric specifications that overrides a resource + // utilization metric (CPU utilization, accelerator's duty cycle, and so on) + // target value (default to 60 if not set). At most one entry is allowed per + // metric. + // + // If [machine_spec.accelerator_count][google.cloud.aiplatform.v1.MachineSpec.accelerator_count] is + // above 0, the autoscaling will be based on both CPU utilization and + // accelerator's duty cycle metrics and scale up when either metrics exceeds + // its target value while scale down if both metrics are under their target + // value. The default target value is 60 for both metrics. + // + // If [machine_spec.accelerator_count][google.cloud.aiplatform.v1.MachineSpec.accelerator_count] is + // 0, the autoscaling will be based on CPU utilization metric only with + // default target value 60 if not explicitly set. + // + // For example, in the case of Online Prediction, if you want to override + // target CPU utilization to 80, you should set + // [autoscaling_metric_specs.metric_name][google.cloud.aiplatform.v1.AutoscalingMetricSpec.metric_name] + // to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and + // [autoscaling_metric_specs.target][google.cloud.aiplatform.v1.AutoscalingMetricSpec.target] to `80`. + repeated AutoscalingMetricSpec autoscaling_metric_specs = 4 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A description of resources that to large degree are decided by Vertex AI, +// and require only a modest additional configuration. +// Each Model supporting these resources documents its specific guidelines. +message AutomaticResources { + // Immutable. The minimum number of replicas this DeployedModel will be always deployed + // on. If traffic against it increases, it may dynamically be deployed onto + // more replicas up to [max_replica_count][google.cloud.aiplatform.v1.AutomaticResources.max_replica_count], and as traffic decreases, some + // of these extra replicas may be freed. + // If the requested value is too large, the deployment will error. + int32 min_replica_count = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The maximum number of replicas this DeployedModel may be deployed on when + // the traffic against it increases. If the requested value is too large, + // the deployment will error, but if deployment succeeds then the ability + // to scale the model to that many replicas is guaranteed (barring service + // outages). If traffic against the DeployedModel increases beyond what its + // replicas at maximum may handle, a portion of the traffic will be dropped. + // If this value is not provided, a no upper bound for scaling under heavy + // traffic will be assume, though Vertex AI may be unable to scale beyond + // certain replica number. + int32 max_replica_count = 2 [(google.api.field_behavior) = IMMUTABLE]; +} + +// A description of resources that are used for performing batch operations, are +// dedicated to a Model, and need manual configuration. +message BatchDedicatedResources { + // Required. Immutable. The specification of a single machine. + MachineSpec machine_spec = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. The number of machine replicas used at the start of the batch operation. + // If not set, Vertex AI decides starting number, not greater than + // [max_replica_count][google.cloud.aiplatform.v1.BatchDedicatedResources.max_replica_count] + int32 starting_replica_count = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. The maximum number of machine replicas the batch operation may be scaled + // to. The default value is 10. + int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Statistics information about resource consumption. +message ResourcesConsumed { + // Output only. The number of replica hours used. Note that many replicas may run in + // parallel, and additionally any given work may be queued for some time. + // Therefore this value is not strictly related to wall time. + double replica_hours = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Represents the spec of disk options. +message DiskSpec { + // Type of the boot disk (default is "pd-ssd"). + // Valid values: "pd-ssd" (Persistent Disk Solid State Drive) or + // "pd-standard" (Persistent Disk Hard Disk Drive). + string boot_disk_type = 1; + + // Size in GB of the boot disk (default is 100GB). + int32 boot_disk_size_gb = 2; +} + +// The metric specification that defines the target resource utilization +// (CPU utilization, accelerator's duty cycle, and so on) for calculating the +// desired replica count. +message AutoscalingMetricSpec { + // Required. The resource metric name. + // Supported metrics: + // + // * For Online Prediction: + // * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` + // * `aiplatform.googleapis.com/prediction/online/cpu/utilization` + string metric_name = 1 [(google.api.field_behavior) = REQUIRED]; + + // The target resource utilization in percentage (1% - 100%) for the given + // metric; once the real usage deviates from the target by a certain + // percentage, the machine replicas change. The default value is 60 + // (representing 60%) if not provided. + int32 target = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto new file mode 100644 index 00000000..7bae2c8b --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto @@ -0,0 +1,40 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ManualBatchTuningParametersProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Manual batch tuning parameters. +message ManualBatchTuningParameters { + // Immutable. The number of the records (e.g. instances) of the operation given in + // each batch to a machine replica. Machine type, and size of a single + // record should be considered when setting this parameter, higher value + // speeds up the batch operation's execution, but too high value will result + // in a whole batch not fitting in a machine's memory, and the whole + // operation will fail. + // The default value is 4. + int32 batch_size = 1 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migratable_resource.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migratable_resource.proto new file mode 100644 index 00000000..09b4a21a --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migratable_resource.proto @@ -0,0 +1,151 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "MigratableResourceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; +option (google.api.resource_definition) = { + type: "ml.googleapis.com/Version" + pattern: "projects/{project}/models/{model}/versions/{version}" +}; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" +}; +option (google.api.resource_definition) = { + type: "automl.googleapis.com/Dataset" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}" +}; +option (google.api.resource_definition) = { + type: "datalabeling.googleapis.com/Dataset" + pattern: "projects/{project}/datasets/{dataset}" +}; +option (google.api.resource_definition) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + pattern: "projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}" +}; + +// Represents one resource that exists in automl.googleapis.com, +// datalabeling.googleapis.com or ml.googleapis.com. +message MigratableResource { + // Represents one model Version in ml.googleapis.com. + message MlEngineModelVersion { + // The ml.googleapis.com endpoint that this model Version currently lives + // in. + // Example values: + // + // * ml.googleapis.com + // * us-centrall-ml.googleapis.com + // * europe-west4-ml.googleapis.com + // * asia-east1-ml.googleapis.com + string endpoint = 1; + + // Full resource name of ml engine model Version. + // Format: `projects/{project}/models/{model}/versions/{version}`. + string version = 2 [(google.api.resource_reference) = { + type: "ml.googleapis.com/Version" + }]; + } + + // Represents one Model in automl.googleapis.com. + message AutomlModel { + // Full resource name of automl Model. + // Format: + // `projects/{project}/locations/{location}/models/{model}`. + string model = 1 [(google.api.resource_reference) = { + type: "automl.googleapis.com/Model" + }]; + + // The Model's display name in automl.googleapis.com. + string model_display_name = 3; + } + + // Represents one Dataset in automl.googleapis.com. + message AutomlDataset { + // Full resource name of automl Dataset. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}`. + string dataset = 1 [(google.api.resource_reference) = { + type: "automl.googleapis.com/Dataset" + }]; + + // The Dataset's display name in automl.googleapis.com. + string dataset_display_name = 4; + } + + // Represents one Dataset in datalabeling.googleapis.com. + message DataLabelingDataset { + // Represents one AnnotatedDataset in datalabeling.googleapis.com. + message DataLabelingAnnotatedDataset { + // Full resource name of data labeling AnnotatedDataset. + // Format: + // `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`. + string annotated_dataset = 1 [(google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + }]; + + // The AnnotatedDataset's display name in datalabeling.googleapis.com. + string annotated_dataset_display_name = 3; + } + + // Full resource name of data labeling Dataset. + // Format: + // `projects/{project}/datasets/{dataset}`. + string dataset = 1 [(google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + }]; + + // The Dataset's display name in datalabeling.googleapis.com. + string dataset_display_name = 4; + + // The migratable AnnotatedDataset in datalabeling.googleapis.com belongs to + // the data labeling Dataset. + repeated DataLabelingAnnotatedDataset data_labeling_annotated_datasets = 3; + } + + oneof resource { + // Output only. Represents one Version in ml.googleapis.com. + MlEngineModelVersion ml_engine_model_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents one Model in automl.googleapis.com. + AutomlModel automl_model = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents one Dataset in automl.googleapis.com. + AutomlDataset automl_dataset = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Represents one Dataset in datalabeling.googleapis.com. + DataLabelingDataset data_labeling_dataset = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Timestamp when the last migration attempt on this MigratableResource + // started. Will not be set if there's no migration attempt on this + // MigratableResource. + google.protobuf.Timestamp last_migrate_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this MigratableResource was last updated. + google.protobuf.Timestamp last_update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migration_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migration_service.proto new file mode 100644 index 00000000..ea8409a4 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/migration_service.proto @@ -0,0 +1,316 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/cloud/aiplatform/v1/dataset.proto"; +import "google/cloud/aiplatform/v1/model.proto"; +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/migratable_resource.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/rpc/status.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "MigrationServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service that migrates resources from automl.googleapis.com, +// datalabeling.googleapis.com and ml.googleapis.com to Vertex AI. +service MigrationService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Searches all of the resources in automl.googleapis.com, + // datalabeling.googleapis.com and ml.googleapis.com that can be migrated to + // Vertex AI's given location. + rpc SearchMigratableResources(SearchMigratableResourcesRequest) returns (SearchMigratableResourcesResponse) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/migratableResources:search" + body: "*" + }; + option (google.api.method_signature) = "parent"; + } + + // Batch migrates resources from ml.googleapis.com, automl.googleapis.com, + // and datalabeling.googleapis.com to Vertex AI. + rpc BatchMigrateResources(BatchMigrateResourcesRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/migratableResources:batchMigrate" + body: "*" + }; + option (google.api.method_signature) = "parent,migrate_resource_requests"; + option (google.longrunning.operation_info) = { + response_type: "BatchMigrateResourcesResponse" + metadata_type: "BatchMigrateResourcesOperationMetadata" + }; + } +} + +// Request message for [MigrationService.SearchMigratableResources][google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources]. +message SearchMigratableResourcesRequest { + // Required. The location that the migratable resources should be searched from. + // It's the Vertex AI location that the resources can be migrated to, not + // the resources' original location. + // Format: + // `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard page size. + // The default and maximum value is 100. + int32 page_size = 2; + + // The standard page token. + string page_token = 3; + + // A filter for your search. You can use the following types of filters: + // + // * Resource type filters. The following strings filter for a specific type + // of [MigratableResource][google.cloud.aiplatform.v1.MigratableResource]: + // * `ml_engine_model_version:*` + // * `automl_model:*` + // * `automl_dataset:*` + // * `data_labeling_dataset:*` + // * "Migrated or not" filters. The following strings filter for resources + // that either have or have not already been migrated: + // * `last_migrate_time:*` filters for migrated resources. + // * `NOT last_migrate_time:*` filters for not yet migrated resources. + string filter = 4; +} + +// Response message for [MigrationService.SearchMigratableResources][google.cloud.aiplatform.v1.MigrationService.SearchMigratableResources]. +message SearchMigratableResourcesResponse { + // All migratable resources that can be migrated to the + // location specified in the request. + repeated MigratableResource migratable_resources = 1; + + // The standard next-page token. + // The migratable_resources may not fill page_size in + // SearchMigratableResourcesRequest even when there are subsequent pages. + string next_page_token = 2; +} + +// Request message for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources]. +message BatchMigrateResourcesRequest { + // Required. The location of the migrated resource will live in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The request messages specifying the resources to migrate. + // They must be in the same location as the destination. + // Up to 50 resources can be migrated in one batch. + repeated MigrateResourceRequest migrate_resource_requests = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Config of migrating one resource from automl.googleapis.com, +// datalabeling.googleapis.com and ml.googleapis.com to Vertex AI. +message MigrateResourceRequest { + // Config for migrating version in ml.googleapis.com to Vertex AI's Model. + message MigrateMlEngineModelVersionConfig { + // Required. The ml.googleapis.com endpoint that this model version should be migrated + // from. + // Example values: + // + // * ml.googleapis.com + // + // * us-centrall-ml.googleapis.com + // + // * europe-west4-ml.googleapis.com + // + // * asia-east1-ml.googleapis.com + string endpoint = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Full resource name of ml engine model version. + // Format: `projects/{project}/models/{model}/versions/{version}`. + string model_version = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "ml.googleapis.com/Version" + } + ]; + + // Required. Display name of the model in Vertex AI. + // System will pick a display name if unspecified. + string model_display_name = 3 [(google.api.field_behavior) = REQUIRED]; + } + + // Config for migrating Model in automl.googleapis.com to Vertex AI's Model. + message MigrateAutomlModelConfig { + // Required. Full resource name of automl Model. + // Format: + // `projects/{project}/locations/{location}/models/{model}`. + string model = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "automl.googleapis.com/Model" + } + ]; + + // Optional. Display name of the model in Vertex AI. + // System will pick a display name if unspecified. + string model_display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + } + + // Config for migrating Dataset in automl.googleapis.com to Vertex AI's + // Dataset. + message MigrateAutomlDatasetConfig { + // Required. Full resource name of automl Dataset. + // Format: + // `projects/{project}/locations/{location}/datasets/{dataset}`. + string dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "automl.googleapis.com/Dataset" + } + ]; + + // Required. Display name of the Dataset in Vertex AI. + // System will pick a display name if unspecified. + string dataset_display_name = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Config for migrating Dataset in datalabeling.googleapis.com to AI + // Platform's Dataset. + message MigrateDataLabelingDatasetConfig { + // Config for migrating AnnotatedDataset in datalabeling.googleapis.com to + // Vertex AI's SavedQuery. + message MigrateDataLabelingAnnotatedDatasetConfig { + // Required. Full resource name of data labeling AnnotatedDataset. + // Format: + // `projects/{project}/datasets/{dataset}/annotatedDatasets/{annotated_dataset}`. + string annotated_dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/AnnotatedDataset" + } + ]; + } + + // Required. Full resource name of data labeling Dataset. + // Format: + // `projects/{project}/datasets/{dataset}`. + string dataset = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "datalabeling.googleapis.com/Dataset" + } + ]; + + // Optional. Display name of the Dataset in Vertex AI. + // System will pick a display name if unspecified. + string dataset_display_name = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. Configs for migrating AnnotatedDataset in datalabeling.googleapis.com to + // Vertex AI's SavedQuery. The specified AnnotatedDatasets have to belong + // to the datalabeling Dataset. + repeated MigrateDataLabelingAnnotatedDatasetConfig migrate_data_labeling_annotated_dataset_configs = 3 [(google.api.field_behavior) = OPTIONAL]; + } + + oneof request { + // Config for migrating Version in ml.googleapis.com to Vertex AI's Model. + MigrateMlEngineModelVersionConfig migrate_ml_engine_model_version_config = 1; + + // Config for migrating Model in automl.googleapis.com to Vertex AI's + // Model. + MigrateAutomlModelConfig migrate_automl_model_config = 2; + + // Config for migrating Dataset in automl.googleapis.com to Vertex AI's + // Dataset. + MigrateAutomlDatasetConfig migrate_automl_dataset_config = 3; + + // Config for migrating Dataset in datalabeling.googleapis.com to + // Vertex AI's Dataset. + MigrateDataLabelingDatasetConfig migrate_data_labeling_dataset_config = 4; + } +} + +// Response message for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources]. +message BatchMigrateResourcesResponse { + // Successfully migrated resources. + repeated MigrateResourceResponse migrate_resource_responses = 1; +} + +// Describes a successfully migrated resource. +message MigrateResourceResponse { + // After migration, the resource name in Vertex AI. + oneof migrated_resource { + // Migrated Dataset's resource name. + string dataset = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + }]; + + // Migrated Model's resource name. + string model = 2 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + } + + // Before migration, the identifier in ml.googleapis.com, + // automl.googleapis.com or datalabeling.googleapis.com. + MigratableResource migratable_resource = 3; +} + +// Runtime operation information for [MigrationService.BatchMigrateResources][google.cloud.aiplatform.v1.MigrationService.BatchMigrateResources]. +message BatchMigrateResourcesOperationMetadata { + // Represents a partial result in batch migration operation for one + // [MigrateResourceRequest][google.cloud.aiplatform.v1.MigrateResourceRequest]. + message PartialResult { + // If the resource's migration is ongoing, none of the result will be set. + // If the resource's migration is finished, either error or one of the + // migrated resource name will be filled. + oneof result { + // The error result of the migration request in case of failure. + google.rpc.Status error = 2; + + // Migrated model resource name. + string model = 3 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; + + // Migrated dataset resource name. + string dataset = 4 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Dataset" + }]; + } + + // It's the same as the value in + // [MigrateResourceRequest.migrate_resource_requests][]. + MigrateResourceRequest request = 1; + } + + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; + + // Partial results that reflect the latest migration operation progress. + repeated PartialResult partial_results = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model.proto new file mode 100644 index 00000000..27337da6 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model.proto @@ -0,0 +1,535 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/dataset.proto"; +import "google/cloud/aiplatform/v1/deployed_model_ref.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/env_var.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ModelProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A trained machine learning Model. +message Model { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Model" + pattern: "projects/{project}/locations/{location}/models/{model}" + }; + + // Represents export format supported by the Model. + // All formats export to Google Cloud Storage. + message ExportFormat { + // The Model content that can be exported. + enum ExportableContent { + // Should not be used. + EXPORTABLE_CONTENT_UNSPECIFIED = 0; + + // Model artifact and any of its supported files. Will be exported to the + // location specified by the `artifactDestination` field of the + // [ExportModelRequest.output_config][google.cloud.aiplatform.v1.ExportModelRequest.output_config] object. + ARTIFACT = 1; + + // The container image that is to be used when deploying this Model. Will + // be exported to the location specified by the `imageDestination` field + // of the [ExportModelRequest.output_config][google.cloud.aiplatform.v1.ExportModelRequest.output_config] object. + IMAGE = 2; + } + + // Output only. The ID of the export format. + // The possible format IDs are: + // + // * `tflite` + // Used for Android mobile devices. + // + // * `edgetpu-tflite` + // Used for [Edge TPU](https://cloud.google.com/edge-tpu/) devices. + // + // * `tf-saved-model` + // A tensorflow model in SavedModel format. + // + // * `tf-js` + // A [TensorFlow.js](https://www.tensorflow.org/js) model that can be used + // in the browser and in Node.js using JavaScript. + // + // * `core-ml` + // Used for iOS mobile devices. + // + // * `custom-trained` + // A Model that was uploaded or trained by custom code. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The content of this Model that may be exported. + repeated ExportableContent exportable_contents = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Identifies a type of Model's prediction resources. + enum DeploymentResourcesType { + // Should not be used. + DEPLOYMENT_RESOURCES_TYPE_UNSPECIFIED = 0; + + // Resources that are dedicated to the [DeployedModel][google.cloud.aiplatform.v1.DeployedModel], and that need a + // higher degree of manual configuration. + DEDICATED_RESOURCES = 1; + + // Resources that to large degree are decided by Vertex AI, and require + // only a modest additional configuration. + AUTOMATIC_RESOURCES = 2; + } + + // The resource name of the Model. + string name = 1; + + // Required. The display name of the Model. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // The description of the Model. + string description = 3; + + // The schemata that describe formats of the Model's predictions and + // explanations as given and returned via + // [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] and [PredictionService.Explain][]. + PredictSchemata predict_schemata = 4; + + // Immutable. Points to a YAML file stored on Google Cloud Storage describing additional + // information about the Model, that is specific to it. Unset if the Model + // does not have any additional information. + // The schema is defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // AutoML Models always have this field populated by Vertex AI, if no + // additional metadata is needed, this field is set to an empty string. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string metadata_schema_uri = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. An additional information about the Model; the schema of the metadata can + // be found in [metadata_schema][google.cloud.aiplatform.v1.Model.metadata_schema_uri]. + // Unset if the Model does not have any additional information. + google.protobuf.Value metadata = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. The formats in which this Model may be exported. If empty, this Model is + // not available for export. + repeated ExportFormat supported_export_formats = 20 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The resource name of the TrainingPipeline that uploaded this Model, if any. + string training_pipeline = 7 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + } + ]; + + // Input only. The specification of the container that is to be used when deploying + // this Model. The specification is ingested upon + // [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], and all binaries it contains are copied + // and stored internally by Vertex AI. + // Not present for AutoML Models. + ModelContainerSpec container_spec = 9 [(google.api.field_behavior) = INPUT_ONLY]; + + // Immutable. The path to the directory containing the Model artifact and any of its + // supporting files. + // Not present for AutoML Models. + string artifact_uri = 26 [(google.api.field_behavior) = IMMUTABLE]; + + // Output only. When this Model is deployed, its prediction resources are described by the + // `prediction_resources` field of the [Endpoint.deployed_models][google.cloud.aiplatform.v1.Endpoint.deployed_models] object. + // Because not all Models support all resource configuration types, the + // configuration types this Model supports are listed here. If no + // configuration types are listed, the Model cannot be deployed to an + // [Endpoint][google.cloud.aiplatform.v1.Endpoint] and does not support + // online predictions ([PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] or + // [PredictionService.Explain][]). Such a Model can serve predictions by + // using a [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob], if it has at least one entry each in + // [supported_input_storage_formats][google.cloud.aiplatform.v1.Model.supported_input_storage_formats] and + // [supported_output_storage_formats][google.cloud.aiplatform.v1.Model.supported_output_storage_formats]. + repeated DeploymentResourcesType supported_deployment_resources_types = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The formats this Model supports in + // [BatchPredictionJob.input_config][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. If + // [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] exists, the instances + // should be given as per that schema. + // + // The possible formats are: + // + // * `jsonl` + // The JSON Lines format, where each instance is a single line. Uses + // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. + // + // * `csv` + // The CSV format, where each instance is a single comma-separated line. + // The first line in the file is the header, containing comma-separated field + // names. Uses [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. + // + // * `tf-record` + // The TFRecord format, where each instance is a single record in tfrecord + // syntax. Uses [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. + // + // * `tf-record-gzip` + // Similar to `tf-record`, but the file is gzipped. Uses + // [GcsSource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.gcs_source]. + // + // * `bigquery` + // Each instance is a single row in BigQuery. Uses + // [BigQuerySource][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig.bigquery_source]. + // + // * `file-list` + // Each line of the file is the location of an instance to process, uses + // `gcs_source` field of the + // [InputConfig][google.cloud.aiplatform.v1.BatchPredictionJob.InputConfig] object. + // + // + // If this Model doesn't support any of these formats it means it cannot be + // used with a [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. However, if it has + // [supported_deployment_resources_types][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types], it could serve online + // predictions by using [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] or + // [PredictionService.Explain][]. + repeated string supported_input_storage_formats = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The formats this Model supports in + // [BatchPredictionJob.output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. If both + // [PredictSchemata.instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri] and + // [PredictSchemata.prediction_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.prediction_schema_uri] exist, the predictions + // are returned together with their instances. In other words, the + // prediction has the original instance data first, followed + // by the actual prediction content (as per the schema). + // + // The possible formats are: + // + // * `jsonl` + // The JSON Lines format, where each prediction is a single line. Uses + // [GcsDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.gcs_destination]. + // + // * `csv` + // The CSV format, where each prediction is a single comma-separated line. + // The first line in the file is the header, containing comma-separated field + // names. Uses + // [GcsDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.gcs_destination]. + // + // * `bigquery` + // Each prediction is a single row in a BigQuery table, uses + // [BigQueryDestination][google.cloud.aiplatform.v1.BatchPredictionJob.OutputConfig.bigquery_destination] + // . + // + // + // If this Model doesn't support any of these formats it means it cannot be + // used with a [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. However, if it has + // [supported_deployment_resources_types][google.cloud.aiplatform.v1.Model.supported_deployment_resources_types], it could serve online + // predictions by using [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict] or + // [PredictionService.Explain][]. + repeated string supported_output_storage_formats = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Model was uploaded into Vertex AI. + google.protobuf.Timestamp create_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Model was most recently updated. + google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The pointers to DeployedModels created from this Model. Note that + // Model could have been deployed to Endpoints in different Locations. + repeated DeployedModelRef deployed_models = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 16; + + // The labels with user-defined metadata to organize your Models. + // + // 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. + map labels = 17; + + // Customer-managed encryption key spec for a Model. If set, this + // Model and all sub-resources of this Model will be secured by this key. + EncryptionSpec encryption_spec = 24; +} + +// Contains the schemata used in Model's predictions and explanations via +// [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict], [PredictionService.Explain][] and +// [BatchPredictionJob][google.cloud.aiplatform.v1.BatchPredictionJob]. +message PredictSchemata { + // Immutable. Points to a YAML file stored on Google Cloud Storage describing the format + // of a single instance, which are used in [PredictRequest.instances][google.cloud.aiplatform.v1.PredictRequest.instances], + // [ExplainRequest.instances][] and + // [BatchPredictionJob.input_config][google.cloud.aiplatform.v1.BatchPredictionJob.input_config]. + // The schema is defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // AutoML Models always have this field populated by Vertex AI. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string instance_schema_uri = 1 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Points to a YAML file stored on Google Cloud Storage describing the + // parameters of prediction and explanation via + // [PredictRequest.parameters][google.cloud.aiplatform.v1.PredictRequest.parameters], [ExplainRequest.parameters][] and + // [BatchPredictionJob.model_parameters][google.cloud.aiplatform.v1.BatchPredictionJob.model_parameters]. + // The schema is defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // AutoML Models always have this field populated by Vertex AI, if no + // parameters are supported, then it is set to an empty string. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string parameters_schema_uri = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Points to a YAML file stored on Google Cloud Storage describing the format + // of a single prediction produced by this Model, which are returned via + // [PredictResponse.predictions][google.cloud.aiplatform.v1.PredictResponse.predictions], [ExplainResponse.explanations][], and + // [BatchPredictionJob.output_config][google.cloud.aiplatform.v1.BatchPredictionJob.output_config]. + // The schema is defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + // AutoML Models always have this field populated by Vertex AI. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string prediction_schema_uri = 3 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Specification of a container for serving predictions. Some fields in this +// message correspond to fields in the [Kubernetes Container v1 core +// specification](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). +message ModelContainerSpec { + // Required. Immutable. URI of the Docker image to be used as the custom container for serving + // predictions. This URI must identify an image in Artifact Registry or + // Container Registry. Learn more about the [container publishing + // requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#publishing), + // including permissions requirements for the AI Platform Service Agent. + // + // The container image is ingested upon [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel], stored + // internally, and this original path is afterwards not used. + // + // To learn about the requirements for the Docker image itself, see + // [Custom container + // requirements](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#). + // + // You can use the URI to one of Vertex AI's [pre-built container images for + // prediction](https://cloud.google.com/vertex-ai/docs/predictions/pre-built-containers) + // in this field. + string image_uri = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Immutable. Specifies the command that runs when the container starts. This overrides + // the container's + // [ENTRYPOINT](https://docs.docker.com/engine/reference/builder/#entrypoint). + // Specify this field as an array of executable and arguments, similar to a + // Docker `ENTRYPOINT`'s "exec" form, not its "shell" form. + // + // If you do not specify this field, then the container's `ENTRYPOINT` runs, + // in conjunction with the [args][google.cloud.aiplatform.v1.ModelContainerSpec.args] field or the + // container's [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd), + // if either exists. If this field is not specified and the container does not + // have an `ENTRYPOINT`, then refer to the Docker documentation about [how + // `CMD` and `ENTRYPOINT` + // interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). + // + // If you specify this field, then you can also specify the `args` field to + // provide additional arguments for this command. However, if you specify this + // field, then the container's `CMD` is ignored. See the + // [Kubernetes documentation about how the + // `command` and `args` fields interact with a container's `ENTRYPOINT` and + // `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). + // + // In this field, you can reference [environment variables set by Vertex + // AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) + // and environment variables set in the [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. + // You cannot reference environment variables set in the Docker image. In + // order for environment variables to be expanded, reference them by using the + // following syntax: + // $(VARIABLE_NAME) + // Note that this differs from Bash variable expansion, which does not use + // parentheses. If a variable cannot be resolved, the reference in the input + // string is used unchanged. To avoid variable expansion, you can escape this + // syntax with `$$`; for example: + // $$(VARIABLE_NAME) + // This field corresponds to the `command` field of the Kubernetes Containers + // [v1 core + // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + repeated string command = 2 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. Specifies arguments for the command that runs when the container starts. + // This overrides the container's + // [`CMD`](https://docs.docker.com/engine/reference/builder/#cmd). Specify + // this field as an array of executable and arguments, similar to a Docker + // `CMD`'s "default parameters" form. + // + // If you don't specify this field but do specify the + // [command][google.cloud.aiplatform.v1.ModelContainerSpec.command] field, then the command from the + // `command` field runs without any additional arguments. See the + // [Kubernetes documentation about how the + // `command` and `args` fields interact with a container's `ENTRYPOINT` and + // `CMD`](https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#notes). + // + // If you don't specify this field and don't specify the `command` field, + // then the container's + // [`ENTRYPOINT`](https://docs.docker.com/engine/reference/builder/#cmd) and + // `CMD` determine what runs based on their default behavior. See the Docker + // documentation about [how `CMD` and `ENTRYPOINT` + // interact](https://docs.docker.com/engine/reference/builder/#understand-how-cmd-and-entrypoint-interact). + // + // In this field, you can reference [environment variables + // set by Vertex + // AI](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables) + // and environment variables set in the [env][google.cloud.aiplatform.v1.ModelContainerSpec.env] field. + // You cannot reference environment variables set in the Docker image. In + // order for environment variables to be expanded, reference them by using the + // following syntax: + // $(VARIABLE_NAME) + // Note that this differs from Bash variable expansion, which does not use + // parentheses. If a variable cannot be resolved, the reference in the input + // string is used unchanged. To avoid variable expansion, you can escape this + // syntax with `$$`; for example: + // $$(VARIABLE_NAME) + // This field corresponds to the `args` field of the Kubernetes Containers + // [v1 core + // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + repeated string args = 3 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. List of environment variables to set in the container. After the container + // starts running, code running in the container can read these environment + // variables. + // + // Additionally, the [command][google.cloud.aiplatform.v1.ModelContainerSpec.command] and + // [args][google.cloud.aiplatform.v1.ModelContainerSpec.args] fields can reference these variables. Later + // entries in this list can also reference earlier entries. For example, the + // following example sets the variable `VAR_2` to have the value `foo bar`: + // + // ```json + // [ + // { + // "name": "VAR_1", + // "value": "foo" + // }, + // { + // "name": "VAR_2", + // "value": "$(VAR_1) bar" + // } + // ] + // ``` + // + // If you switch the order of the variables in the example, then the expansion + // does not occur. + // + // This field corresponds to the `env` field of the Kubernetes Containers + // [v1 core + // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + repeated EnvVar env = 4 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. List of ports to expose from the container. Vertex AI sends any + // prediction requests that it receives to the first port on this list. AI + // Platform also sends + // [liveness and health + // checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#liveness) + // to this port. + // + // If you do not specify this field, it defaults to following value: + // + // ```json + // [ + // { + // "containerPort": 8080 + // } + // ] + // ``` + // + // Vertex AI does not use ports other than the first one listed. This field + // corresponds to the `ports` field of the Kubernetes Containers + // [v1 core + // API](https://v1-18.docs.kubernetes.io/docs/reference/generated/kubernetes-api/v1.18/#container-v1-core). + repeated Port ports = 5 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. HTTP path on the container to send prediction requests to. Vertex AI + // forwards requests sent using + // [projects.locations.endpoints.predict][google.cloud.aiplatform.v1.PredictionService.Predict] to this + // path on the container's IP address and port. Vertex AI then returns the + // container's response in the API response. + // + // For example, if you set this field to `/foo`, then when Vertex AI + // receives a prediction request, it forwards the request body in a POST + // request to the `/foo` path on the port of your container specified by the + // first value of this `ModelContainerSpec`'s + // [ports][google.cloud.aiplatform.v1.ModelContainerSpec.ports] field. + // + // If you don't specify this field, it defaults to the following value when + // you [deploy this Model to an Endpoint][google.cloud.aiplatform.v1.EndpointService.DeployModel]: + // /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict + // The placeholders in this value are replaced as follows: + // + // * ENDPOINT: The last segment (following `endpoints/`)of the + // Endpoint.name][] field of the Endpoint where this Model has been + // deployed. (Vertex AI makes this value available to your container code + // as the [`AIP_ENDPOINT_ID` environment + // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) + // + // * DEPLOYED_MODEL: [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the `DeployedModel`. + // (Vertex AI makes this value available to your container code + // as the [`AIP_DEPLOYED_MODEL_ID` environment + // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) + string predict_route = 6 [(google.api.field_behavior) = IMMUTABLE]; + + // Immutable. HTTP path on the container to send health checks to. Vertex AI + // intermittently sends GET requests to this path on the container's IP + // address and port to check that the container is healthy. Read more about + // [health + // checks](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#health). + // + // For example, if you set this field to `/bar`, then Vertex AI + // intermittently sends a GET request to the `/bar` path on the port of your + // container specified by the first value of this `ModelContainerSpec`'s + // [ports][google.cloud.aiplatform.v1.ModelContainerSpec.ports] field. + // + // If you don't specify this field, it defaults to the following value when + // you [deploy this Model to an Endpoint][google.cloud.aiplatform.v1.EndpointService.DeployModel]: + // /v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict + // The placeholders in this value are replaced as follows: + // + // * ENDPOINT: The last segment (following `endpoints/`)of the + // Endpoint.name][] field of the Endpoint where this Model has been + // deployed. (Vertex AI makes this value available to your container code + // as the [`AIP_ENDPOINT_ID` environment + // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) + // + // * DEPLOYED_MODEL: [DeployedModel.id][google.cloud.aiplatform.v1.DeployedModel.id] of the `DeployedModel`. + // (Vertex AI makes this value available to your container code as the + // [`AIP_DEPLOYED_MODEL_ID` environment + // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) + string health_route = 7 [(google.api.field_behavior) = IMMUTABLE]; +} + +// Represents a network port in a container. +message Port { + // The number of the port to expose on the pod's IP address. + // Must be a valid port number, between 1 and 65535 inclusive. + int32 container_port = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation.proto new file mode 100644 index 00000000..1ecf6cb2 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation.proto @@ -0,0 +1,62 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ModelEvaluationProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A collection of metrics calculated by comparing Model's predictions on all of +// the test data against annotations from the test data. +message ModelEvaluation { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/ModelEvaluation" + pattern: "projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}" + }; + + // Output only. The resource name of the ModelEvaluation. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Points to a YAML file stored on Google Cloud Storage describing the + // [metrics][google.cloud.aiplatform.v1.ModelEvaluation.metrics] of this ModelEvaluation. The schema is + // defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + string metrics_schema_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Evaluation metrics of the Model. The schema of the metrics is stored in + // [metrics_schema_uri][google.cloud.aiplatform.v1.ModelEvaluation.metrics_schema_uri] + google.protobuf.Value metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ModelEvaluation was created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. All possible [dimensions][ModelEvaluationSlice.slice.dimension] of + // ModelEvaluationSlices. The dimensions can be used as the filter of the + // [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices] request, in the form of + // `slice.dimension = `. + repeated string slice_dimensions = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation_slice.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation_slice.proto new file mode 100644 index 00000000..e79195e7 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_evaluation_slice.proto @@ -0,0 +1,72 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ModelEvaluationSliceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A collection of metrics calculated by comparing Model's predictions on a +// slice of the test data against ground truth annotations. +message ModelEvaluationSlice { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/ModelEvaluationSlice" + pattern: "projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}/slices/{slice}" + }; + + // Definition of a slice. + message Slice { + // Output only. The dimension of the slice. + // Well-known dimensions are: + // * `annotationSpec`: This slice is on the test data that has either + // ground truth or prediction with [AnnotationSpec.display_name][google.cloud.aiplatform.v1.AnnotationSpec.display_name] + // equals to [value][google.cloud.aiplatform.v1.ModelEvaluationSlice.Slice.value]. + string dimension = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of the dimension in this slice. + string value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. The resource name of the ModelEvaluationSlice. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The slice of the test data that is used to evaluate the Model. + Slice slice = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Points to a YAML file stored on Google Cloud Storage describing the + // [metrics][google.cloud.aiplatform.v1.ModelEvaluationSlice.metrics] of this ModelEvaluationSlice. The + // schema is defined as an OpenAPI 3.0.2 [Schema + // Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). + string metrics_schema_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Sliced evaluation metrics of the Model. The schema of the metrics is stored + // in [metrics_schema_uri][google.cloud.aiplatform.v1.ModelEvaluationSlice.metrics_schema_uri] + google.protobuf.Value metrics = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this ModelEvaluationSlice was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_service.proto new file mode 100644 index 00000000..4d4b6f53 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/model_service.proto @@ -0,0 +1,438 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/cloud/aiplatform/v1/model.proto"; +import "google/cloud/aiplatform/v1/model_evaluation.proto"; +import "google/cloud/aiplatform/v1/model_evaluation_slice.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "ModelServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for managing Vertex AI's machine learning Models. +service ModelService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Uploads a Model artifact into Vertex AI. + rpc UploadModel(UploadModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/models:upload" + body: "*" + }; + option (google.api.method_signature) = "parent,model"; + option (google.longrunning.operation_info) = { + response_type: "UploadModelResponse" + metadata_type: "UploadModelOperationMetadata" + }; + } + + // Gets a Model. + rpc GetModel(GetModelRequest) returns (Model) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/models/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists Models in a Location. + rpc ListModels(ListModelsRequest) returns (ListModelsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/models" + }; + option (google.api.method_signature) = "parent"; + } + + // Updates a Model. + rpc UpdateModel(UpdateModelRequest) returns (Model) { + option (google.api.http) = { + patch: "/v1/{model.name=projects/*/locations/*/models/*}" + body: "model" + }; + option (google.api.method_signature) = "model,update_mask"; + } + + // Deletes a Model. + // Note: Model can only be deleted if there are no DeployedModels created + // from it. + rpc DeleteModel(DeleteModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/models/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Exports a trained, exportable, Model to a location specified by the + // user. A Model is considered to be exportable if it has at least one + // [supported export format][google.cloud.aiplatform.v1.Model.supported_export_formats]. + rpc ExportModel(ExportModelRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/models/*}:export" + body: "*" + }; + option (google.api.method_signature) = "name,output_config"; + option (google.longrunning.operation_info) = { + response_type: "ExportModelResponse" + metadata_type: "ExportModelOperationMetadata" + }; + } + + // Gets a ModelEvaluation. + rpc GetModelEvaluation(GetModelEvaluationRequest) returns (ModelEvaluation) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/models/*/evaluations/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists ModelEvaluations in a Model. + rpc ListModelEvaluations(ListModelEvaluationsRequest) returns (ListModelEvaluationsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/models/*}/evaluations" + }; + option (google.api.method_signature) = "parent"; + } + + // Gets a ModelEvaluationSlice. + rpc GetModelEvaluationSlice(GetModelEvaluationSliceRequest) returns (ModelEvaluationSlice) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/models/*/evaluations/*/slices/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists ModelEvaluationSlices in a ModelEvaluation. + rpc ListModelEvaluationSlices(ListModelEvaluationSlicesRequest) returns (ListModelEvaluationSlicesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/models/*/evaluations/*}/slices" + }; + option (google.api.method_signature) = "parent"; + } +} + +// Request message for [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel]. +message UploadModelRequest { + // Required. The resource name of the Location into which to upload the Model. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The Model to create. + Model model = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel] operation. +message UploadModelOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} + +// Response message of [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel] operation. +message UploadModelResponse { + // The name of the uploaded Model resource. + // Format: `projects/{project}/locations/{location}/models/{model}` + string model = 1 [(google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + }]; +} + +// Request message for [ModelService.GetModel][google.cloud.aiplatform.v1.ModelService.GetModel]. +message GetModelRequest { + // Required. The name of the Model resource. + // Format: `projects/{project}/locations/{location}/models/{model}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; +} + +// Request message for [ModelService.ListModels][google.cloud.aiplatform.v1.ModelService.ListModels]. +message ListModelsRequest { + // Required. The resource name of the Location to list the Models from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // An expression for filtering the results of the request. For field names + // both snake_case and camelCase are supported. + // + // * `model` supports = and !=. `model` represents the Model ID, + // i.e. the last segment of the Model's [resource name][google.cloud.aiplatform.v1.Model.name]. + // * `display_name` supports = and != + // * `labels` supports general map functions that is: + // * `labels.key=value` - key:value equality + // * `labels.key:* or labels:key - key existence + // * A key including a space must be quoted. `labels."a key"`. + // + // Some examples: + // * `model=1234` + // * `displayName="myDisplayName"` + // * `labels.myKey="myValue"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListModelsResponse.next_page_token][google.cloud.aiplatform.v1.ListModelsResponse.next_page_token] of the previous + // [ModelService.ListModels][google.cloud.aiplatform.v1.ModelService.ListModels] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; + + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported fields: + // * `display_name` + // * `create_time` + // * `update_time` + // + // Example: `display_name, create_time desc`. + string order_by = 6; +} + +// Response message for [ModelService.ListModels][google.cloud.aiplatform.v1.ModelService.ListModels] +message ListModelsResponse { + // List of Models in the requested page. + repeated Model models = 1; + + // A token to retrieve next page of results. + // Pass to [ListModelsRequest.page_token][google.cloud.aiplatform.v1.ListModelsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [ModelService.UpdateModel][google.cloud.aiplatform.v1.ModelService.UpdateModel]. +message UpdateModelRequest { + // Required. The Model which replaces the resource on the server. + Model model = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + // For the `FieldMask` definition, see [google.protobuf.FieldMask][google.protobuf.FieldMask]. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [ModelService.DeleteModel][google.cloud.aiplatform.v1.ModelService.DeleteModel]. +message DeleteModelRequest { + // Required. The name of the Model resource to be deleted. + // Format: `projects/{project}/locations/{location}/models/{model}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; +} + +// Request message for [ModelService.ExportModel][google.cloud.aiplatform.v1.ModelService.ExportModel]. +message ExportModelRequest { + // Output configuration for the Model export. + message OutputConfig { + // The ID of the format in which the Model must be exported. Each Model + // lists the [export formats it supports][google.cloud.aiplatform.v1.Model.supported_export_formats]. + // If no value is provided here, then the first from the list of the Model's + // supported formats is used by default. + string export_format_id = 1; + + // The Cloud Storage location where the Model artifact is to be + // written to. Under the directory given as the destination a new one with + // name "`model-export--`", + // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format, + // will be created. Inside, the Model and any of its supporting files + // will be written. + // This field should only be set when the `exportableContent` field of the + // [Model.supported_export_formats] object contains `ARTIFACT`. + GcsDestination artifact_destination = 3; + + // The Google Container Registry or Artifact Registry uri where the + // Model container image will be copied to. + // This field should only be set when the `exportableContent` field of the + // [Model.supported_export_formats] object contains `IMAGE`. + ContainerRegistryDestination image_destination = 4; + } + + // Required. The resource name of the Model to export. + // Format: `projects/{project}/locations/{location}/models/{model}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // Required. The desired output location and configuration. + OutputConfig output_config = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Details of [ModelService.ExportModel][google.cloud.aiplatform.v1.ModelService.ExportModel] operation. +message ExportModelOperationMetadata { + // Further describes the output of the ExportModel. Supplements + // [ExportModelRequest.OutputConfig][google.cloud.aiplatform.v1.ExportModelRequest.OutputConfig]. + message OutputInfo { + // Output only. If the Model artifact is being exported to Google Cloud Storage this is + // the full path of the directory created, into which the Model files are + // being written to. + string artifact_output_uri = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. If the Model image is being exported to Google Container Registry or + // Artifact Registry this is the full path of the image created. + string image_output_uri = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; + + // Output only. Information further describing the output of this Model export. + OutputInfo output_info = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Response message of [ModelService.ExportModel][google.cloud.aiplatform.v1.ModelService.ExportModel] operation. +message ExportModelResponse { + +} + +// Request message for [ModelService.GetModelEvaluation][google.cloud.aiplatform.v1.ModelService.GetModelEvaluation]. +message GetModelEvaluationRequest { + // Required. The name of the ModelEvaluation resource. + // Format: + // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelEvaluation" + } + ]; +} + +// Request message for [ModelService.ListModelEvaluations][google.cloud.aiplatform.v1.ModelService.ListModelEvaluations]. +message ListModelEvaluationsRequest { + // Required. The resource name of the Model to list the ModelEvaluations from. + // Format: `projects/{project}/locations/{location}/models/{model}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Model" + } + ]; + + // The standard list filter. + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListModelEvaluationsResponse.next_page_token][google.cloud.aiplatform.v1.ListModelEvaluationsResponse.next_page_token] of the previous + // [ModelService.ListModelEvaluations][google.cloud.aiplatform.v1.ModelService.ListModelEvaluations] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [ModelService.ListModelEvaluations][google.cloud.aiplatform.v1.ModelService.ListModelEvaluations]. +message ListModelEvaluationsResponse { + // List of ModelEvaluations in the requested page. + repeated ModelEvaluation model_evaluations = 1; + + // A token to retrieve next page of results. + // Pass to [ListModelEvaluationsRequest.page_token][google.cloud.aiplatform.v1.ListModelEvaluationsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [ModelService.GetModelEvaluationSlice][google.cloud.aiplatform.v1.ModelService.GetModelEvaluationSlice]. +message GetModelEvaluationSliceRequest { + // Required. The name of the ModelEvaluationSlice resource. + // Format: + // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}/slices/{slice}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelEvaluationSlice" + } + ]; +} + +// Request message for [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices]. +message ListModelEvaluationSlicesRequest { + // Required. The resource name of the ModelEvaluation to list the ModelEvaluationSlices + // from. Format: + // `projects/{project}/locations/{location}/models/{model}/evaluations/{evaluation}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/ModelEvaluation" + } + ]; + + // The standard list filter. + // + // * `slice.dimension` - for =. + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListModelEvaluationSlicesResponse.next_page_token][google.cloud.aiplatform.v1.ListModelEvaluationSlicesResponse.next_page_token] of the previous + // [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [ModelService.ListModelEvaluationSlices][google.cloud.aiplatform.v1.ModelService.ListModelEvaluationSlices]. +message ListModelEvaluationSlicesResponse { + // List of ModelEvaluations in the requested page. + repeated ModelEvaluationSlice model_evaluation_slices = 1; + + // A token to retrieve next page of results. + // Pass to [ListModelEvaluationSlicesRequest.page_token][google.cloud.aiplatform.v1.ListModelEvaluationSlicesRequest.page_token] to obtain that + // page. + string next_page_token = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/operation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/operation.proto new file mode 100644 index 00000000..ee33b41a --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/operation.proto @@ -0,0 +1,53 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "OperationProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Generic Metadata shared by all operations. +message GenericOperationMetadata { + // Output only. Partial failures encountered. + // E.g. single files that couldn't be read. + // This field should never exceed 20 entries. + // Status details field will contain standard GCP error details. + repeated google.rpc.Status partial_failures = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the operation was created. + google.protobuf.Timestamp create_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the operation was updated for the last time. + // If the operation has finished (successfully or not), this is the finish + // time. + google.protobuf.Timestamp update_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// Details of operations that perform deletes of any entities. +message DeleteOperationMetadata { + // The common part of the operation metadata. + GenericOperationMetadata generic_metadata = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_job.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_job.proto new file mode 100644 index 00000000..72590305 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_job.proto @@ -0,0 +1,289 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/artifact.proto"; +import "google/cloud/aiplatform/v1/context.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/execution.proto"; +import "google/cloud/aiplatform/v1/pipeline_state.proto"; +import "google/cloud/aiplatform/v1/value.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "Pipeline"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; +option (google.api.resource_definition) = { + type: "compute.googleapis.com/Network" + pattern: "projects/{project}/global/networks/{network}" +}; + +// An instance of a machine learning PipelineJob. +message PipelineJob { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/PipelineJob" + pattern: "projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}" + }; + + // The runtime config of a PipelineJob. + message RuntimeConfig { + // 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. + map parameters = 1; + + // 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. + string gcs_output_directory = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Output only. The resource name of the PipelineJob. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The display name of the Pipeline. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + string display_name = 2; + + // Output only. Pipeline creation time. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pipeline start time. + google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Pipeline end time. + google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this PipelineJob was most recently updated. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The spec of the pipeline. + google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of the job. + PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The details of pipeline run. Not available in the list view. + PipelineJobDetail job_detail = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error that occurred during pipeline execution. + // Only populated when the pipeline's state is FAILED or CANCELLED. + google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. + map labels = 11; + + // Runtime config of the pipeline. + RuntimeConfig runtime_config = 12; + + // 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 encryption_spec = 16; + + // 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. + string service_account = 17; + + // 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 GCP resources + // being launched, if applied, such as Vertex AI + // Training or Dataflow job. If left unspecified, the workload is not peered + // with any network. + string network = 18 [(google.api.resource_reference) = { + type: "compute.googleapis.com/Network" + }]; +} + +// The runtime detail of PipelineJob. +message PipelineJobDetail { + // Output only. The context of the pipeline. + google.cloud.aiplatform.v1.Context pipeline_context = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The context of the current pipeline run. + google.cloud.aiplatform.v1.Context pipeline_run_context = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The runtime details of the tasks under the pipeline. + repeated PipelineTaskDetail task_details = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The runtime detail of a task execution. +message PipelineTaskDetail { + // A list of artifact metadata. + message ArtifactList { + // Output only. A list of artifact metadata. + repeated google.cloud.aiplatform.v1.Artifact artifacts = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Specifies state of TaskExecution + enum State { + // Unspecified. + STATE_UNSPECIFIED = 0; + + // Specifies pending state for the task. + PENDING = 1; + + // Specifies task is being executed. + RUNNING = 2; + + // Specifies task completed successfully. + SUCCEEDED = 3; + + // Specifies Task cancel is in pending state. + CANCEL_PENDING = 4; + + // Specifies task is being cancelled. + CANCELLING = 5; + + // Specifies task was cancelled. + CANCELLED = 6; + + // Specifies task failed. + FAILED = 7; + + // Specifies task was skipped due to cache hit. + SKIPPED = 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]. + NOT_TRIGGERED = 9; + } + + // Output only. The system generated ID of the task. + int64 task_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // 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. + int64 parent_task_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The user specified name of the task that is defined in + // [PipelineJob.spec][]. + string task_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Task create time. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Task start time. + google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Task end time. + google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed execution info. + PipelineTaskExecutorDetail executor_detail = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. State of the task. + State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The execution metadata of the task. + google.cloud.aiplatform.v1.Execution execution = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The error that occurred during task execution. + // Only populated when the task's state is FAILED or CANCELLED. + google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The runtime input artifacts of the task. + map inputs = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The runtime output artifacts of the task. + map outputs = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// The runtime detail of a pipeline executor. +message PipelineTaskExecutorDetail { + // The detail of a container execution. It contains the job names of the + // lifecycle of a container execution. + message ContainerDetail { + // Output only. The name of the [CustomJob][google.cloud.aiplatform.v1.CustomJob] for the main container execution. + string main_job = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; + + // 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. + string pre_caching_check_job = 2 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; + } + + // The detailed info for a custom job executor. + message CustomJobDetail { + option deprecated = true; + + // Output only. The name of the [CustomJob][google.cloud.aiplatform.v1.CustomJob]. + string job = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; + } + + oneof details { + // Output only. The detailed info for a container executor. + ContainerDetail container_detail = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed info for a custom job executor. + CustomJobDetail custom_job_detail = 2 [ + deprecated = true, + (google.api.field_behavior) = OUTPUT_ONLY + ]; + } +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_service.proto new file mode 100644 index 00000000..59f41125 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_service.proto @@ -0,0 +1,377 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/pipeline_job.proto"; +import "google/cloud/aiplatform/v1/training_pipeline.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "PipelineServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for creating and managing Vertex AI's pipelines. This includes both +// `TrainingPipeline` resources (used for AutoML and custom training) and +// `PipelineJob` resources (used for Vertex Pipelines). +service PipelineService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a TrainingPipeline. A created TrainingPipeline right away will be + // attempted to be run. + rpc CreateTrainingPipeline(CreateTrainingPipelineRequest) returns (TrainingPipeline) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/trainingPipelines" + body: "training_pipeline" + }; + option (google.api.method_signature) = "parent,training_pipeline"; + } + + // Gets a TrainingPipeline. + rpc GetTrainingPipeline(GetTrainingPipelineRequest) returns (TrainingPipeline) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/trainingPipelines/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists TrainingPipelines in a Location. + rpc ListTrainingPipelines(ListTrainingPipelinesRequest) returns (ListTrainingPipelinesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/trainingPipelines" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a TrainingPipeline. + rpc DeleteTrainingPipeline(DeleteTrainingPipelineRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/trainingPipelines/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a TrainingPipeline. + // Starts asynchronous cancellation on the TrainingPipeline. The server + // makes a best effort to cancel the pipeline, but success is not + // guaranteed. Clients can use [PipelineService.GetTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline] or + // other methods to check whether the cancellation succeeded or whether the + // pipeline completed despite cancellation. On successful cancellation, + // the TrainingPipeline is not deleted; instead it becomes a pipeline with + // a [TrainingPipeline.error][google.cloud.aiplatform.v1.TrainingPipeline.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`, and [TrainingPipeline.state][google.cloud.aiplatform.v1.TrainingPipeline.state] is set to + // `CANCELLED`. + rpc CancelTrainingPipeline(CancelTrainingPipelineRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/trainingPipelines/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } + + // Creates a PipelineJob. A PipelineJob will run immediately when created. + rpc CreatePipelineJob(CreatePipelineJobRequest) returns (google.cloud.aiplatform.v1.PipelineJob) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/pipelineJobs" + body: "pipeline_job" + }; + option (google.api.method_signature) = "parent,pipeline_job,pipeline_job_id"; + } + + // Gets a PipelineJob. + rpc GetPipelineJob(GetPipelineJobRequest) returns (google.cloud.aiplatform.v1.PipelineJob) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/pipelineJobs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists PipelineJobs in a Location. + rpc ListPipelineJobs(ListPipelineJobsRequest) returns (ListPipelineJobsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/pipelineJobs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a PipelineJob. + rpc DeletePipelineJob(DeletePipelineJobRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/pipelineJobs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Cancels a PipelineJob. + // Starts asynchronous cancellation on the PipelineJob. The server + // makes a best effort to cancel the pipeline, but success is not + // guaranteed. Clients can use [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1.PipelineService.GetPipelineJob] or + // other methods to check whether the cancellation succeeded or whether the + // pipeline completed despite cancellation. On successful cancellation, + // the PipelineJob is not deleted; instead it becomes a pipeline with + // a [PipelineJob.error][google.cloud.aiplatform.v1.PipelineJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1, + // corresponding to `Code.CANCELLED`, and [PipelineJob.state][google.cloud.aiplatform.v1.PipelineJob.state] is set to + // `CANCELLED`. + rpc CancelPipelineJob(CancelPipelineJobRequest) returns (google.protobuf.Empty) { + option (google.api.http) = { + post: "/v1/{name=projects/*/locations/*/pipelineJobs/*}:cancel" + body: "*" + }; + option (google.api.method_signature) = "name"; + } +} + +// Request message for [PipelineService.CreateTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.CreateTrainingPipeline]. +message CreateTrainingPipelineRequest { + // Required. The resource name of the Location to create the TrainingPipeline in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The TrainingPipeline to create. + TrainingPipeline training_pipeline = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [PipelineService.GetTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.GetTrainingPipeline]. +message GetTrainingPipelineRequest { + // Required. The name of the TrainingPipeline resource. + // Format: + // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + } + ]; +} + +// Request message for [PipelineService.ListTrainingPipelines][google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines]. +message ListTrainingPipelinesRequest { + // Required. The resource name of the Location to list the TrainingPipelines from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Lists the PipelineJobs that match the filter expression. The following + // fields are supported: + // + // * `pipeline_name`: Supports `=` and `!=` comparisons. + // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be in RFC 3339 format. + // * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be in RFC 3339 format. + // * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be in RFC 3339 format. + // * `labels`: Supports key-value equality and key presence. + // + // Filter expressions can be combined together using logical operators + // (`AND` & `OR`). + // For example: `pipeline_name="test" AND create_time>"2020-05-18T13:30:00Z"`. + // + // The syntax to define filter expression is based on + // https://google.aip.dev/160. + // + // Examples: + // + // * `create_time>"2021-05-18T00:00:00Z" OR + // update_time>"2020-05-18T00:00:00Z"` PipelineJobs created or updated + // after 2020-05-18 00:00:00 UTC. + // * `labels.env = "prod"` + // PipelineJobs with label "env" set to "prod". + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListTrainingPipelinesResponse.next_page_token][google.cloud.aiplatform.v1.ListTrainingPipelinesResponse.next_page_token] of the previous + // [PipelineService.ListTrainingPipelines][google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines] call. + string page_token = 4; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 5; +} + +// Response message for [PipelineService.ListTrainingPipelines][google.cloud.aiplatform.v1.PipelineService.ListTrainingPipelines] +message ListTrainingPipelinesResponse { + // List of TrainingPipelines in the requested page. + repeated TrainingPipeline training_pipelines = 1; + + // A token to retrieve the next page of results. + // Pass to [ListTrainingPipelinesRequest.page_token][google.cloud.aiplatform.v1.ListTrainingPipelinesRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [PipelineService.DeleteTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.DeleteTrainingPipeline]. +message DeleteTrainingPipelineRequest { + // Required. The name of the TrainingPipeline resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + } + ]; +} + +// Request message for [PipelineService.CancelTrainingPipeline][google.cloud.aiplatform.v1.PipelineService.CancelTrainingPipeline]. +message CancelTrainingPipelineRequest { + // Required. The name of the TrainingPipeline to cancel. + // Format: + // `projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + } + ]; +} + +// Request message for [PipelineService.CreatePipelineJob][google.cloud.aiplatform.v1.PipelineService.CreatePipelineJob]. +message CreatePipelineJobRequest { + // Required. The resource name of the Location to create the PipelineJob in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The PipelineJob to create. + google.cloud.aiplatform.v1.PipelineJob pipeline_job = 2 [(google.api.field_behavior) = REQUIRED]; + + // The ID to use for the PipelineJob, which will become the final component of + // the PipelineJob name. If not provided, an ID will be automatically + // generated. + // + // This value should be less than 128 characters, and valid characters + // are /[a-z][0-9]-/. + string pipeline_job_id = 3; +} + +// Request message for [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1.PipelineService.GetPipelineJob]. +message GetPipelineJobRequest { + // Required. The name of the PipelineJob resource. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; +} + +// Request message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs]. +message ListPipelineJobsRequest { + // Required. The resource name of the Location to list the PipelineJobs from. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list filter. + // Supported fields: + // + // * `display_name` supports `=` and `!=`. + // * `state` supports `=` and `!=`. + // + // The following examples demonstrate how to filter the list of PipelineJobs: + // + // * `state="PIPELINE_STATE_SUCCEEDED" AND display_name="my_pipeline"` + // * `state="PIPELINE_STATE_RUNNING" OR display_name="my_pipeline"` + // * `NOT display_name="my_pipeline"` + // * `state="PIPELINE_STATE_FAILED"` + string filter = 2; + + // The standard list page size. + int32 page_size = 3; + + // The standard list page token. + // Typically obtained via + // [ListPipelineJobsResponse.next_page_token][google.cloud.aiplatform.v1.ListPipelineJobsResponse.next_page_token] of the previous + // [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs] call. + string page_token = 4; +} + +// Response message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1.PipelineService.ListPipelineJobs] +message ListPipelineJobsResponse { + // List of PipelineJobs in the requested page. + repeated google.cloud.aiplatform.v1.PipelineJob pipeline_jobs = 1; + + // A token to retrieve the next page of results. + // Pass to [ListPipelineJobsRequest.page_token][google.cloud.aiplatform.v1.ListPipelineJobsRequest.page_token] to obtain that page. + string next_page_token = 2; +} + +// Request message for [PipelineService.DeletePipelineJob][google.cloud.aiplatform.v1.PipelineService.DeletePipelineJob]. +message DeletePipelineJobRequest { + // Required. The name of the PipelineJob resource to be deleted. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; +} + +// Request message for [PipelineService.CancelPipelineJob][google.cloud.aiplatform.v1.PipelineService.CancelPipelineJob]. +message CancelPipelineJobRequest { + // Required. The name of the PipelineJob to cancel. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/PipelineJob" + } + ]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_state.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_state.proto new file mode 100644 index 00000000..71a165d7 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/pipeline_state.proto @@ -0,0 +1,60 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "PipelineStateProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// Describes the state of a pipeline. +enum PipelineState { + // The pipeline state is unspecified. + PIPELINE_STATE_UNSPECIFIED = 0; + + // The pipeline has been created or resumed, and processing has not yet + // begun. + PIPELINE_STATE_QUEUED = 1; + + // The service is preparing to run the pipeline. + PIPELINE_STATE_PENDING = 2; + + // The pipeline is in progress. + PIPELINE_STATE_RUNNING = 3; + + // The pipeline completed successfully. + PIPELINE_STATE_SUCCEEDED = 4; + + // The pipeline failed. + PIPELINE_STATE_FAILED = 5; + + // The pipeline is being cancelled. From this state, the pipeline may only go + // to either PIPELINE_STATE_SUCCEEDED, PIPELINE_STATE_FAILED or + // PIPELINE_STATE_CANCELLED. + PIPELINE_STATE_CANCELLING = 6; + + // The pipeline has been cancelled. + PIPELINE_STATE_CANCELLED = 7; + + // The pipeline has been stopped, and can be resumed. + PIPELINE_STATE_PAUSED = 8; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/prediction_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/prediction_service.proto new file mode 100644 index 00000000..b6206b86 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/prediction_service.proto @@ -0,0 +1,94 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/httpbody.proto"; +import "google/api/resource.proto"; +import "google/protobuf/struct.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "PredictionServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for online predictions and explanations. +service PredictionService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Perform an online prediction. + rpc Predict(PredictRequest) returns (PredictResponse) { + option (google.api.http) = { + post: "/v1/{endpoint=projects/*/locations/*/endpoints/*}:predict" + body: "*" + additional_bindings { + post: "/v1/{endpoint=projects/*/locations/*/endpoints/*}:predictInternal" + body: "*" + } + }; + option (google.api.method_signature) = "endpoint,parameters,instances"; + } +} + +// Request message for [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict]. +message PredictRequest { + // Required. The name of the Endpoint requested to serve the prediction. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + string endpoint = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Endpoint" + } + ]; + + // Required. The instances that are the input to the prediction call. + // A DeployedModel may have an upper limit on the number of instances it + // supports per request, and when it is exceeded the prediction call errors + // in case of AutoML Models, or, in case of customer created Models, the + // behaviour is as documented by that Model. + // The schema of any single instance may be specified via Endpoint's + // DeployedModels' [Model's][google.cloud.aiplatform.v1.DeployedModel.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [instance_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.instance_schema_uri]. + repeated google.protobuf.Value instances = 2 [(google.api.field_behavior) = REQUIRED]; + + // The parameters that govern the prediction. The schema of the parameters may + // be specified via Endpoint's DeployedModels' [Model's ][google.cloud.aiplatform.v1.DeployedModel.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [parameters_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.parameters_schema_uri]. + google.protobuf.Value parameters = 3; +} + +// Response message for [PredictionService.Predict][google.cloud.aiplatform.v1.PredictionService.Predict]. +message PredictResponse { + // The predictions that are the output of the predictions call. + // The schema of any single prediction may be specified via Endpoint's + // DeployedModels' [Model's ][google.cloud.aiplatform.v1.DeployedModel.model] + // [PredictSchemata's][google.cloud.aiplatform.v1.Model.predict_schemata] + // [prediction_schema_uri][google.cloud.aiplatform.v1.PredictSchemata.prediction_schema_uri]. + repeated google.protobuf.Value predictions = 1; + + // ID of the Endpoint's DeployedModel that served this prediction. + string deployed_model_id = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto new file mode 100644 index 00000000..75222795 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_classification.proto @@ -0,0 +1,44 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "ImageClassificationPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Image Classification. +message ImageClassificationPredictionInstance { + // The image bytes or Cloud Storage URI to make the prediction on. + string content = 1; + + // The MIME type of the content of the image. Only the images in below listed + // MIME types are supported. + // - image/jpeg + // - image/gif + // - image/png + // - image/webp + // - image/bmp + // - image/tiff + // - image/vnd.microsoft.icon + string mime_type = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto new file mode 100644 index 00000000..5e531733 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_object_detection.proto @@ -0,0 +1,44 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "ImageObjectDetectionPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Image Object Detection. +message ImageObjectDetectionPredictionInstance { + // The image bytes or Cloud Storage URI to make the prediction on. + string content = 1; + + // The MIME type of the content of the image. Only the images in below listed + // MIME types are supported. + // - image/jpeg + // - image/gif + // - image/png + // - image/webp + // - image/bmp + // - image/tiff + // - image/vnd.microsoft.icon + string mime_type = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto new file mode 100644 index 00000000..b4682c03 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/image_segmentation.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "ImageSegmentationPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Image Segmentation. +message ImageSegmentationPredictionInstance { + // The image bytes to make the predictions on. + string content = 1; + + // The MIME type of the content of the image. Only the images in below listed + // MIME types are supported. + // - image/jpeg + // - image/png + string mime_type = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto new file mode 100644 index 00000000..cfd43170 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_classification.proto @@ -0,0 +1,38 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "TextClassificationPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Text Classification. +message TextClassificationPredictionInstance { + // The text snippet to make the predictions on. + string content = 1; + + // The MIME type of the text snippet. The supported MIME types are listed + // below. + // - text/plain + string mime_type = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto new file mode 100644 index 00000000..697ee119 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_extraction.proto @@ -0,0 +1,45 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "TextExtractionPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Text Extraction. +message TextExtractionPredictionInstance { + // The text snippet to make the predictions on. + string content = 1; + + // The MIME type of the text snippet. The supported MIME types are listed + // below. + // - text/plain + string mime_type = 2; + + // This field is only used for batch prediction. If a key is provided, the + // batch prediction result will by mapped to this key. If omitted, then the + // batch prediction result will contain the entire input instance. Vertex AI + // will not check if keys in the request are duplicates, so it is up to the + // caller to ensure the keys are unique. + string key = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto new file mode 100644 index 00000000..a06c7c2f --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/text_sentiment.proto @@ -0,0 +1,38 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "TextSentimentPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Text Sentiment. +message TextSentimentPredictionInstance { + // The text snippet to make the predictions on. + string content = 1; + + // The MIME type of the text snippet. The supported MIME types are listed + // below. + // - text/plain + string mime_type = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto new file mode 100644 index 00000000..9ab477e2 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_action_recognition.proto @@ -0,0 +1,51 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "VideoActionRecognitionPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Video Action Recognition. +message VideoActionRecognitionPredictionInstance { + // The Google Cloud Storage location of the video on which to perform the + // prediction. + string content = 1; + + // The MIME type of the content of the video. Only the following are + // supported: video/mp4 video/avi video/quicktime + string mime_type = 2; + + // The beginning, inclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision. + string time_segment_start = 3; + + // The end, exclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision, and "inf" or "Infinity" is allowed, which + // means the end of the video. + string time_segment_end = 4; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto new file mode 100644 index 00000000..68cb3cb3 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_classification.proto @@ -0,0 +1,51 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "VideoClassificationPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Video Classification. +message VideoClassificationPredictionInstance { + // The Google Cloud Storage location of the video on which to perform the + // prediction. + string content = 1; + + // The MIME type of the content of the video. Only the following are + // supported: video/mp4 video/avi video/quicktime + string mime_type = 2; + + // The beginning, inclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision. + string time_segment_start = 3; + + // The end, exclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision, and "inf" or "Infinity" is allowed, which + // means the end of the video. + string time_segment_end = 4; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto new file mode 100644 index 00000000..34adc840 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/instance/video_object_tracking.proto @@ -0,0 +1,51 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.instance; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Instance"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/instance;instance"; +option java_multiple_files = true; +option java_outer_classname = "VideoObjectTrackingPredictionInstanceProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.instance"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Instance"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Instance"; + +// Prediction input format for Video Object Tracking. +message VideoObjectTrackingPredictionInstance { + // The Google Cloud Storage location of the video on which to perform the + // prediction. + string content = 1; + + // The MIME type of the content of the video. Only the following are + // supported: video/mp4 video/avi video/quicktime + string mime_type = 2; + + // The beginning, inclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision. + string time_segment_start = 3; + + // The end, exclusive, of the video's time segment on which to perform + // the prediction. Expressed as a number of seconds as measured from the + // start of the video, with "s" appended at the end. Fractions are allowed, + // up to a microsecond precision, and "inf" or "Infinity" is allowed, which + // means the end of the video. + string time_segment_end = 4; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto new file mode 100644 index 00000000..b3cb7e20 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_classification.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "ImageClassificationPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Image Classification. +message ImageClassificationPredictionParams { + // The Model only returns predictions with at least this confidence score. + // Default value is 0.0 + float confidence_threshold = 1; + + // The Model only returns up to that many top, by confidence score, + // predictions per instance. If this number is very high, the Model may return + // fewer predictions. Default value is 10. + int32 max_predictions = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto new file mode 100644 index 00000000..34130f7c --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_object_detection.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "ImageObjectDetectionPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Image Object Detection. +message ImageObjectDetectionPredictionParams { + // The Model only returns predictions with at least this confidence score. + // Default value is 0.0 + float confidence_threshold = 1; + + // The Model only returns up to that many top, by confidence score, + // predictions per instance. Note that number of returned predictions is also + // limited by metadata's predictionsLimit. Default value is 10. + int32 max_predictions = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto new file mode 100644 index 00000000..50e06ee8 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/image_segmentation.proto @@ -0,0 +1,36 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "ImageSegmentationPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Image Segmentation. +message ImageSegmentationPredictionParams { + // When the model predicts category of pixels of the image, it will only + // provide predictions for pixels that it is at least this much confident + // about. All other pixels will be classified as background. Default value is + // 0.5. + float confidence_threshold = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto new file mode 100644 index 00000000..aa640722 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_action_recognition.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "VideoActionRecognitionPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Video Action Recognition. +message VideoActionRecognitionPredictionParams { + // The Model only returns predictions with at least this confidence score. + // Default value is 0.0 + float confidence_threshold = 1; + + // The model only returns up to that many top, by confidence score, + // predictions per frame of the video. If this number is very high, the + // Model may return fewer predictions per frame. Default value is 50. + int32 max_predictions = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto new file mode 100644 index 00000000..ec062072 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_classification.proto @@ -0,0 +1,64 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "VideoClassificationPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Video Classification. +message VideoClassificationPredictionParams { + // The Model only returns predictions with at least this confidence score. + // Default value is 0.0 + float confidence_threshold = 1; + + // The Model only returns up to that many top, by confidence score, + // predictions per instance. If this number is very high, the Model may return + // fewer predictions. Default value is 10,000. + int32 max_predictions = 2; + + // Set to true to request segment-level classification. Vertex AI returns + // labels and their confidence scores for the entire time segment of the + // video that user specified in the input instance. + // Default value is true + bool segment_classification = 3; + + // Set to true to request shot-level classification. Vertex AI determines + // the boundaries for each camera shot in the entire time segment of the + // video that user specified in the input instance. Vertex AI then + // returns labels and their confidence scores for each detected shot, along + // with the start and end time of the shot. + // WARNING: Model evaluation is not done for this classification type, + // the quality of it depends on the training data, but there are no metrics + // provided to describe that quality. + // Default value is false + bool shot_classification = 4; + + // Set to true to request classification for a video at one-second intervals. + // Vertex AI returns labels and their confidence scores for each second of + // the entire time segment of the video that user specified in the input + // WARNING: Model evaluation is not done for this classification type, the + // quality of it depends on the training data, but there are no metrics + // provided to describe that quality. Default value is false + bool one_sec_interval_classification = 5; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto new file mode 100644 index 00000000..579dc4d4 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/params/video_object_tracking.proto @@ -0,0 +1,43 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.params; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Params"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/params;params"; +option java_multiple_files = true; +option java_outer_classname = "VideoObjectTrackingPredictionParamsProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.params"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Params"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Params"; + +// Prediction model parameters for Video Object Tracking. +message VideoObjectTrackingPredictionParams { + // The Model only returns predictions with at least this confidence score. + // Default value is 0.0 + float confidence_threshold = 1; + + // The model only returns up to that many top, by confidence score, + // predictions per frame of the video. If this number is very high, the + // Model may return fewer predictions per frame. Default value is 50. + int32 max_predictions = 2; + + // Only bounding boxes with shortest edge at least that long as a relative + // value of video frame size are returned. Default value is 0.0. + float min_bounding_box_size = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto new file mode 100644 index 00000000..b8e396ab --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/classification.proto @@ -0,0 +1,41 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "ClassificationPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Image and Text Classification. +message ClassificationPredictionResult { + // The resource IDs of the AnnotationSpecs that had been identified. + repeated int64 ids = 1; + + // The display names of the AnnotationSpecs that had been identified, order + // matches the IDs. + repeated string display_names = 2; + + // The Model's confidences in correctness of the predicted IDs, higher value + // means higher confidence. Order matches the Ids. + repeated float confidences = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto new file mode 100644 index 00000000..50d76ecc --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_object_detection.proto @@ -0,0 +1,51 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/protobuf/struct.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "ImageObjectDetectionPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Image Object Detection. +message ImageObjectDetectionPredictionResult { + // The resource IDs of the AnnotationSpecs that had been identified, ordered + // by the confidence score descendingly. + repeated int64 ids = 1; + + // The display names of the AnnotationSpecs that had been identified, order + // matches the IDs. + repeated string display_names = 2; + + // The Model's confidences in correctness of the predicted IDs, higher value + // means higher confidence. Order matches the Ids. + repeated float confidences = 3; + + // Bounding boxes, i.e. the rectangles over the image, that pinpoint + // the found AnnotationSpecs. Given in order that matches the IDs. Each + // bounding box is an array of 4 numbers `xMin`, `xMax`, `yMin`, and + // `yMax`, which represent the extremal coordinates of the box. They are + // relative to the image size, and the point 0,0 is in the top left + // of the image. + repeated google.protobuf.ListValue bboxes = 4; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto new file mode 100644 index 00000000..f245f1e1 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/image_segmentation.proto @@ -0,0 +1,45 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "ImageSegmentationPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Image Segmentation. +message ImageSegmentationPredictionResult { + // A PNG image where each pixel in the mask represents the category in which + // the pixel in the original image was predicted to belong to. The size of + // this image will be the same as the original image. The mapping between the + // AnntoationSpec and the color can be found in model's metadata. The model + // will choose the most likely category and if none of the categories reach + // the confidence threshold, the pixel will be marked as background. + string category_mask = 1; + + // A one channel image which is encoded as an 8bit lossless PNG. The size of + // the image will be the same as the original image. For a specific pixel, + // darker color means less confidence in correctness of the cateogry in the + // categoryMask for the corresponding pixel. Black means no confidence and + // white means complete confidence. + string confidence_mask = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto new file mode 100644 index 00000000..25cd6672 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_classification.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "TabularClassificationPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Tabular Classification. +message TabularClassificationPredictionResult { + // The name of the classes being classified, contains all possible values of + // the target column. + repeated string classes = 1; + + // The model's confidence in each class being correct, higher + // value means higher confidence. The N-th score corresponds to + // the N-th class in classes. + repeated float scores = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto new file mode 100644 index 00000000..a26c3cb2 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/tabular_regression.proto @@ -0,0 +1,39 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "TabularRegressionPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Tabular Regression. +message TabularRegressionPredictionResult { + // The regression value. + float value = 1; + + // The lower bound of the prediction interval. + float lower_bound = 2; + + // The upper bound of the prediction interval. + float upper_bound = 3; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto new file mode 100644 index 00000000..00ca7694 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_extraction.proto @@ -0,0 +1,52 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "TextExtractionPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Text Extraction. +message TextExtractionPredictionResult { + // The resource IDs of the AnnotationSpecs that had been identified, + // ordered by the confidence score descendingly. + repeated int64 ids = 1; + + // The display names of the AnnotationSpecs that had been identified, + // order matches the IDs. + repeated string display_names = 2; + + // The start offsets, inclusive, of the text segment in which the + // AnnotationSpec has been identified. Expressed as a zero-based number + // of characters as measured from the start of the text snippet. + repeated int64 text_segment_start_offsets = 3; + + // The end offsets, inclusive, of the text segment in which the + // AnnotationSpec has been identified. Expressed as a zero-based number + // of characters as measured from the start of the text snippet. + repeated int64 text_segment_end_offsets = 4; + + // The Model's confidences in correctness of the predicted IDs, higher + // value means higher confidence. Order matches the Ids. + repeated float confidences = 5; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto new file mode 100644 index 00000000..09d24248 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/text_sentiment.proto @@ -0,0 +1,37 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "TextSentimentPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Text Sentiment +message TextSentimentPredictionResult { + // The integer sentiment labels between 0 (inclusive) and sentimentMax label + // (inclusive), while 0 maps to the least positive sentiment and + // sentimentMax maps to the most positive one. The higher the score is, the + // more positive the sentiment in the text snippet is. Note: sentimentMax is + // an integer value between 1 (inclusive) and 10 (inclusive). + int32 sentiment = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto new file mode 100644 index 00000000..6cd59711 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_action_recognition.proto @@ -0,0 +1,54 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "VideoActionRecognitionPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Video Action Recognition. +message VideoActionRecognitionPredictionResult { + // The resource ID of the AnnotationSpec that had been identified. + string id = 1; + + // The display name of the AnnotationSpec that had been identified. + string display_name = 2; + + // The beginning, inclusive, of the video's time segment in which the + // AnnotationSpec has been identified. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. + google.protobuf.Duration time_segment_start = 4; + + // The end, exclusive, of the video's time segment in which the + // AnnotationSpec has been identified. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. + google.protobuf.Duration time_segment_end = 5; + + // The Model's confidence in correction of this prediction, higher + // value means higher confidence. + google.protobuf.FloatValue confidence = 6; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto new file mode 100644 index 00000000..5d33c5ae --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_classification.proto @@ -0,0 +1,67 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "VideoClassificationPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Video Classification. +message VideoClassificationPredictionResult { + // The resource ID of the AnnotationSpec that had been identified. + string id = 1; + + // The display name of the AnnotationSpec that had been identified. + string display_name = 2; + + // The type of the prediction. The requested types can be configured + // via parameters. This will be one of + // - segment-classification + // - shot-classification + // - one-sec-interval-classification + string type = 3; + + // The beginning, inclusive, of the video's time segment in which the + // AnnotationSpec has been identified. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. Note that for + // 'segment-classification' prediction type, this equals the original + // 'timeSegmentStart' from the input instance, for other types it is the + // start of a shot or a 1 second interval respectively. + google.protobuf.Duration time_segment_start = 4; + + // The end, exclusive, of the video's time segment in which the + // AnnotationSpec has been identified. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. Note that for + // 'segment-classification' prediction type, this equals the original + // 'timeSegmentEnd' from the input instance, for other types it is the end + // of a shot or a 1 second interval respectively. + google.protobuf.Duration time_segment_end = 5; + + // The Model's confidence in correction of this prediction, higher + // value means higher confidence. + google.protobuf.FloatValue confidence = 6; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto new file mode 100644 index 00000000..20ecbb1a --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/predict/prediction/video_object_tracking.proto @@ -0,0 +1,82 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.predict.prediction; + +import "google/protobuf/duration.proto"; +import "google/protobuf/wrappers.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.Predict.Prediction"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/predict/prediction;prediction"; +option java_multiple_files = true; +option java_outer_classname = "VideoObjectTrackingPredictionResultProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.predict.prediction"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\Predict\\Prediction"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::Predict::Prediction"; + +// Prediction output format for Video Object Tracking. +message VideoObjectTrackingPredictionResult { + // The fields `xMin`, `xMax`, `yMin`, and `yMax` refer to a bounding box, + // i.e. the rectangle over the video frame pinpointing the found + // AnnotationSpec. The coordinates are relative to the frame size, and the + // point 0,0 is in the top left of the frame. + message Frame { + // A time (frame) of a video in which the object has been detected. + // Expressed as a number of seconds as measured from the + // start of the video, with fractions up to a microsecond precision, and + // with "s" appended at the end. + google.protobuf.Duration time_offset = 1; + + // The leftmost coordinate of the bounding box. + google.protobuf.FloatValue x_min = 2; + + // The rightmost coordinate of the bounding box. + google.protobuf.FloatValue x_max = 3; + + // The topmost coordinate of the bounding box. + google.protobuf.FloatValue y_min = 4; + + // The bottommost coordinate of the bounding box. + google.protobuf.FloatValue y_max = 5; + } + + // The resource ID of the AnnotationSpec that had been identified. + string id = 1; + + // The display name of the AnnotationSpec that had been identified. + string display_name = 2; + + // The beginning, inclusive, of the video's time segment in which the + // object instance has been detected. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. + google.protobuf.Duration time_segment_start = 3; + + // The end, inclusive, of the video's time segment in which the + // object instance has been detected. Expressed as a number of seconds as + // measured from the start of the video, with fractions up to a microsecond + // precision, and with "s" appended at the end. + google.protobuf.Duration time_segment_end = 4; + + // The Model's confidence in correction of this prediction, higher + // value means higher confidence. + google.protobuf.FloatValue confidence = 5; + + // All of the frames of the video in which a single object instance has been + // detected. The bounding boxes in the frames identify the same object. + repeated Frame frames = 6; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto new file mode 100644 index 00000000..f51227cf --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_classification.proto @@ -0,0 +1,128 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLImageClassificationProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Image Classification Model. +message AutoMlImageClassification { + // The input parameters of this TrainingJob. + AutoMlImageClassificationInputs inputs = 1; + + // The metadata information. + AutoMlImageClassificationMetadata metadata = 2; +} + +message AutoMlImageClassificationInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A Model best tailored to be used within Google Cloud, and which cannot + // be exported. + // Default. + CLOUD = 1; + + // A model that, in addition to being available within Google + // Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow + // or Core ML model and used on a mobile or edge device afterwards. + // Expected to have low latency, but may have lower prediction + // quality than other mobile models. + MOBILE_TF_LOW_LATENCY_1 = 2; + + // A model that, in addition to being available within Google + // Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow + // or Core ML model and used on a mobile or edge device with afterwards. + MOBILE_TF_VERSATILE_1 = 3; + + // A model that, in addition to being available within Google + // Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow + // or Core ML model and used on a mobile or edge device afterwards. + // Expected to have a higher latency, but should also have a higher + // prediction quality than other mobile models. + MOBILE_TF_HIGH_ACCURACY_1 = 4; + } + + ModelType model_type = 1; + + // The ID of the `base` model. If it is specified, the new model will be + // trained based on the `base` model. Otherwise, the new model will be + // trained from scratch. The `base` model must be in the same + // Project and Location as the new Model to train, and have the same + // modelType. + string base_model_id = 2; + + // The training budget of creating this model, expressed in milli node + // hours i.e. 1,000 value in this field means 1 node hour. The actual + // metadata.costMilliNodeHours will be equal or less than this value. + // If further model training ceases to provide any improvements, it will + // stop without using the full budget and the metadata.successfulStopReason + // will be `model-converged`. + // Note, node_hour = actual_hour * number_of_nodes_involved. + // For modelType `cloud`(default), the budget must be between 8,000 + // and 800,000 milli node hours, inclusive. The default value is 192,000 + // which represents one day in wall time, considering 8 nodes are used. + // For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, + // `mobile-tf-high-accuracy-1`, the training budget must be between + // 1,000 and 100,000 milli node hours, inclusive. + // The default value is 24,000 which represents one day in wall time on a + // single node that is used. + int64 budget_milli_node_hours = 3; + + // Use the entire training budget. This disables the early stopping feature. + // When false the early stopping feature is enabled, which means that + // AutoML Image Classification might stop training before the entire + // training budget has been used. + bool disable_early_stopping = 4; + + // If false, a single-label (multi-class) Model will be trained (i.e. + // assuming that for each image just up to one annotation may be + // applicable). If true, a multi-label Model will be trained (i.e. + // assuming that for each image multiple annotations may be applicable). + bool multi_label = 5; +} + +message AutoMlImageClassificationMetadata { + enum SuccessfulStopReason { + // Should not be set. + SUCCESSFUL_STOP_REASON_UNSPECIFIED = 0; + + // The inputs.budgetMilliNodeHours had been reached. + BUDGET_REACHED = 1; + + // Further training of the Model ceased to increase its quality, since it + // already has converged. + MODEL_CONVERGED = 2; + } + + // The actual training cost of creating this model, expressed in + // milli node hours, i.e. 1,000 value in this field means 1 node hour. + // Guaranteed to not exceed inputs.budgetMilliNodeHours. + int64 cost_milli_node_hours = 1; + + // For successful job completions, this is the reason why the job has + // finished. + SuccessfulStopReason successful_stop_reason = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto new file mode 100644 index 00000000..62e7ae2c --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_object_detection.proto @@ -0,0 +1,120 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLImageObjectDetectionProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Image Object Detection Model. +message AutoMlImageObjectDetection { + // The input parameters of this TrainingJob. + AutoMlImageObjectDetectionInputs inputs = 1; + + // The metadata information + AutoMlImageObjectDetectionMetadata metadata = 2; +} + +message AutoMlImageObjectDetectionInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A model best tailored to be used within Google Cloud, and which cannot + // be exported. Expected to have a higher latency, but should also have a + // higher prediction quality than other cloud models. + CLOUD_HIGH_ACCURACY_1 = 1; + + // A model best tailored to be used within Google Cloud, and which cannot + // be exported. Expected to have a low latency, but may have lower + // prediction quality than other cloud models. + CLOUD_LOW_LATENCY_1 = 2; + + // A model that, in addition to being available within Google + // Cloud can also be exported (see ModelService.ExportModel) and + // used on a mobile or edge device with TensorFlow afterwards. + // Expected to have low latency, but may have lower prediction + // quality than other mobile models. + MOBILE_TF_LOW_LATENCY_1 = 3; + + // A model that, in addition to being available within Google + // Cloud can also be exported (see ModelService.ExportModel) and + // used on a mobile or edge device with TensorFlow afterwards. + MOBILE_TF_VERSATILE_1 = 4; + + // A model that, in addition to being available within Google + // Cloud, can also be exported (see ModelService.ExportModel) and + // used on a mobile or edge device with TensorFlow afterwards. + // Expected to have a higher latency, but should also have a higher + // prediction quality than other mobile models. + MOBILE_TF_HIGH_ACCURACY_1 = 5; + } + + ModelType model_type = 1; + + // The training budget of creating this model, expressed in milli node + // hours i.e. 1,000 value in this field means 1 node hour. The actual + // metadata.costMilliNodeHours will be equal or less than this value. + // If further model training ceases to provide any improvements, it will + // stop without using the full budget and the metadata.successfulStopReason + // will be `model-converged`. + // Note, node_hour = actual_hour * number_of_nodes_involved. + // For modelType `cloud`(default), the budget must be between 20,000 + // and 900,000 milli node hours, inclusive. The default value is 216,000 + // which represents one day in wall time, considering 9 nodes are used. + // For model types `mobile-tf-low-latency-1`, `mobile-tf-versatile-1`, + // `mobile-tf-high-accuracy-1` + // the training budget must be between 1,000 and 100,000 milli node hours, + // inclusive. The default value is 24,000 which represents one day in + // wall time on a single node that is used. + int64 budget_milli_node_hours = 2; + + // Use the entire training budget. This disables the early stopping feature. + // When false the early stopping feature is enabled, which means that AutoML + // Image Object Detection might stop training before the entire training + // budget has been used. + bool disable_early_stopping = 3; +} + +message AutoMlImageObjectDetectionMetadata { + enum SuccessfulStopReason { + // Should not be set. + SUCCESSFUL_STOP_REASON_UNSPECIFIED = 0; + + // The inputs.budgetMilliNodeHours had been reached. + BUDGET_REACHED = 1; + + // Further training of the Model ceased to increase its quality, since it + // already has converged. + MODEL_CONVERGED = 2; + } + + // The actual training cost of creating this model, expressed in + // milli node hours, i.e. 1,000 value in this field means 1 node hour. + // Guaranteed to not exceed inputs.budgetMilliNodeHours. + int64 cost_milli_node_hours = 1; + + // For successful job completions, this is the reason why the job has + // finished. + SuccessfulStopReason successful_stop_reason = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto new file mode 100644 index 00000000..00af43c1 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_image_segmentation.proto @@ -0,0 +1,106 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLImageSegmentationProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Image Segmentation Model. +message AutoMlImageSegmentation { + // The input parameters of this TrainingJob. + AutoMlImageSegmentationInputs inputs = 1; + + // The metadata information. + AutoMlImageSegmentationMetadata metadata = 2; +} + +message AutoMlImageSegmentationInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A model to be used via prediction calls to uCAIP API. Expected + // to have a higher latency, but should also have a higher prediction + // quality than other models. + CLOUD_HIGH_ACCURACY_1 = 1; + + // A model to be used via prediction calls to uCAIP API. Expected + // to have a lower latency but relatively lower prediction quality. + CLOUD_LOW_ACCURACY_1 = 2; + + // A model that, in addition to being available within Google + // Cloud, can also be exported (see ModelService.ExportModel) as TensorFlow + // model and used on a mobile or edge device afterwards. + // Expected to have low latency, but may have lower prediction + // quality than other mobile models. + MOBILE_TF_LOW_LATENCY_1 = 3; + } + + ModelType model_type = 1; + + // The training budget of creating this model, expressed in milli node + // hours i.e. 1,000 value in this field means 1 node hour. The actual + // metadata.costMilliNodeHours will be equal or less than this value. + // If further model training ceases to provide any improvements, it will + // stop without using the full budget and the metadata.successfulStopReason + // will be `model-converged`. + // Note, node_hour = actual_hour * number_of_nodes_involved. Or + // actaul_wall_clock_hours = train_budget_milli_node_hours / + // (number_of_nodes_involved * 1000) + // For modelType `cloud-high-accuracy-1`(default), the budget must be between + // 20,000 and 2,000,000 milli node hours, inclusive. The default value is + // 192,000 which represents one day in wall time + // (1000 milli * 24 hours * 8 nodes). + int64 budget_milli_node_hours = 2; + + // The ID of the `base` model. If it is specified, the new model will be + // trained based on the `base` model. Otherwise, the new model will be + // trained from scratch. The `base` model must be in the same + // Project and Location as the new Model to train, and have the same + // modelType. + string base_model_id = 3; +} + +message AutoMlImageSegmentationMetadata { + enum SuccessfulStopReason { + // Should not be set. + SUCCESSFUL_STOP_REASON_UNSPECIFIED = 0; + + // The inputs.budgetMilliNodeHours had been reached. + BUDGET_REACHED = 1; + + // Further training of the Model ceased to increase its quality, since it + // already has converged. + MODEL_CONVERGED = 2; + } + + // The actual training cost of creating this model, expressed in + // milli node hours, i.e. 1,000 value in this field means 1 node hour. + // Guaranteed to not exceed inputs.budgetMilliNodeHours. + int64 cost_milli_node_hours = 1; + + // For successful job completions, this is the reason why the job has + // finished. + SuccessfulStopReason successful_stop_reason = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto new file mode 100644 index 00000000..0c4ee2d6 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_tables.proto @@ -0,0 +1,285 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLTablesProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Tables Model. +message AutoMlTables { + // The input parameters of this TrainingJob. + AutoMlTablesInputs inputs = 1; + + // The metadata information. + AutoMlTablesMetadata metadata = 2; +} + +message AutoMlTablesInputs { + message Transformation { + // Training pipeline will infer the proper transformation based on the + // statistic of dataset. + message AutoTransformation { + string column_name = 1; + } + + // Training pipeline will perform following transformation functions. + // * The value converted to float32. + // * The z_score of the value. + // * log(value+1) when the value is greater than or equal to 0. Otherwise, + // this transformation is not applied and the value is considered a + // missing value. + // * z_score of log(value+1) when the value is greater than or equal to 0. + // Otherwise, this transformation is not applied and the value is + // considered a missing value. + // * A boolean value that indicates whether the value is valid. + message NumericTransformation { + string column_name = 1; + + // If invalid values is allowed, the training pipeline will create a + // boolean feature that indicated whether the value is valid. + // Otherwise, the training pipeline will discard the input row from + // trainining data. + bool invalid_values_allowed = 2; + } + + // Training pipeline will perform following transformation functions. + // * The categorical string as is--no change to case, punctuation, + // spelling, + // tense, and so on. + // * Convert the category name to a dictionary lookup index and generate an + // embedding for each index. + // * Categories that appear less than 5 times in the training dataset are + // treated as the "unknown" category. The "unknown" category gets its own + // special lookup index and resulting embedding. + message CategoricalTransformation { + string column_name = 1; + } + + // Training pipeline will perform following transformation functions. + // * Apply the transformation functions for Numerical columns. + // * Determine the year, month, day,and weekday. Treat each value from the + // * timestamp as a Categorical column. + // * Invalid numerical values (for example, values that fall outside of a + // typical timestamp range, or are extreme values) receive no special + // treatment and are not removed. + message TimestampTransformation { + string column_name = 1; + + // The format in which that time field is expressed. The time_format must + // either be one of: + // * `unix-seconds` + // * `unix-milliseconds` + // * `unix-microseconds` + // * `unix-nanoseconds` + // (for respectively number of seconds, milliseconds, microseconds and + // nanoseconds since start of the Unix epoch); + // or be written in `strftime` syntax. If time_format is not set, then the + // default format is RFC 3339 `date-time` format, where + // `time-offset` = `"Z"` (e.g. 1985-04-12T23:20:50.52Z) + string time_format = 2; + + // If invalid values is allowed, the training pipeline will create a + // boolean feature that indicated whether the value is valid. + // Otherwise, the training pipeline will discard the input row from + // trainining data. + bool invalid_values_allowed = 3; + } + + // Training pipeline will perform following transformation functions. + // * The text as is--no change to case, punctuation, spelling, tense, and + // so + // on. + // * Tokenize text to words. Convert each words to a dictionary lookup + // index + // and generate an embedding for each index. Combine the embedding of all + // elements into a single embedding using the mean. + // * Tokenization is based on unicode script boundaries. + // * Missing values get their own lookup index and resulting embedding. + // * Stop-words receive no special treatment and are not removed. + message TextTransformation { + string column_name = 1; + } + + // Treats the column as numerical array and performs following + // transformation functions. + // * All transformations for Numerical types applied to the average of the + // all elements. + // * The average of empty arrays is treated as zero. + message NumericArrayTransformation { + string column_name = 1; + + // If invalid values is allowed, the training pipeline will create a + // boolean feature that indicated whether the value is valid. + // Otherwise, the training pipeline will discard the input row from + // trainining data. + bool invalid_values_allowed = 2; + } + + // Treats the column as categorical array and performs following + // transformation functions. + // * For each element in the array, convert the category name to a + // dictionary + // lookup index and generate an embedding for each index. + // Combine the embedding of all elements into a single embedding using + // the mean. + // * Empty arrays treated as an embedding of zeroes. + message CategoricalArrayTransformation { + string column_name = 1; + } + + // Treats the column as text array and performs following transformation + // functions. + // * Concatenate all text values in the array into a single text value + // using + // a space (" ") as a delimiter, and then treat the result as a single + // text value. Apply the transformations for Text columns. + // * Empty arrays treated as an empty text. + message TextArrayTransformation { + string column_name = 1; + } + + // The transformation that the training pipeline will apply to the input + // columns. + oneof transformation_detail { + AutoTransformation auto = 1; + + NumericTransformation numeric = 2; + + CategoricalTransformation categorical = 3; + + TimestampTransformation timestamp = 4; + + TextTransformation text = 5; + + NumericArrayTransformation repeated_numeric = 6; + + CategoricalArrayTransformation repeated_categorical = 7; + + TextArrayTransformation repeated_text = 8; + } + } + + // Additional optimization objective configuration. Required for + // `maximize-precision-at-recall` and `maximize-recall-at-precision`, + // otherwise unused. + oneof additional_optimization_objective_config { + // Required when optimization_objective is "maximize-precision-at-recall". + // Must be between 0 and 1, inclusive. + float optimization_objective_recall_value = 5; + + // Required when optimization_objective is "maximize-recall-at-precision". + // Must be between 0 and 1, inclusive. + float optimization_objective_precision_value = 6; + } + + // The type of prediction the Model is to produce. + // "classification" - Predict one out of multiple target values is + // picked for each row. + // "regression" - Predict a value based on its relation to other values. + // This type is available only to columns that contain + // semantically numeric values, i.e. integers or floating + // point number, even if stored as e.g. strings. + string prediction_type = 1; + + // The column name of the target column that the model is to predict. + string target_column = 2; + + // Each transformation will apply transform function to given input column. + // And the result will be used for training. + // When creating transformation for BigQuery Struct column, the column should + // be flattened using "." as the delimiter. + repeated Transformation transformations = 3; + + // Objective function the model is optimizing towards. The training process + // creates a model that maximizes/minimizes the value of the objective + // function over the validation set. + // + // The supported optimization objectives depend on the prediction type. + // If the field is not set, a default objective function is used. + // + // classification (binary): + // "maximize-au-roc" (default) - Maximize the area under the receiver + // operating characteristic (ROC) curve. + // "minimize-log-loss" - Minimize log loss. + // "maximize-au-prc" - Maximize the area under the precision-recall curve. + // "maximize-precision-at-recall" - Maximize precision for a specified + // recall value. + // "maximize-recall-at-precision" - Maximize recall for a specified + // precision value. + // + // classification (multi-class): + // "minimize-log-loss" (default) - Minimize log loss. + // + // regression: + // "minimize-rmse" (default) - Minimize root-mean-squared error (RMSE). + // "minimize-mae" - Minimize mean-absolute error (MAE). + // "minimize-rmsle" - Minimize root-mean-squared log error (RMSLE). + string optimization_objective = 4; + + // Required. The train budget of creating this model, expressed in milli node + // hours i.e. 1,000 value in this field means 1 node hour. + // + // The training cost of the model will not exceed this budget. The final cost + // will be attempted to be close to the budget, though may end up being (even) + // noticeably smaller - at the backend's discretion. This especially may + // happen when further model training ceases to provide any improvements. + // + // If the budget is set to a value known to be insufficient to train a + // model for the given dataset, the training won't be attempted and + // will error. + // + // The train budget must be between 1,000 and 72,000 milli node hours, + // inclusive. + int64 train_budget_milli_node_hours = 7; + + // Use the entire training budget. This disables the early stopping feature. + // By default, the early stopping feature is enabled, which means that AutoML + // Tables might stop training before the entire training budget has been used. + bool disable_early_stopping = 8; + + // Column name that should be used as the weight column. + // Higher values in this column give more importance to the row + // during model training. The column must have numeric values between 0 and + // 10000 inclusively; 0 means the row is ignored for training. If weight + // column field is not set, then all rows are assumed to have equal weight + // of 1. + string weight_column_name = 9; + + // Configuration for exporting test set predictions to a BigQuery table. If + // this configuration is absent, then the export is not performed. + ExportEvaluatedDataItemsConfig export_evaluated_data_items_config = 10; + + // Additional experiment flags for the Tables training pipeline. + repeated string additional_experiments = 11; +} + +// Model metadata specific to AutoML Tables. +message AutoMlTablesMetadata { + // Output only. The actual training cost of the model, expressed in milli + // node hours, i.e. 1,000 value in this field means 1 node hour. Guaranteed + // to not exceed the train budget. + int64 train_cost_milli_node_hours = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto new file mode 100644 index 00000000..8723af0e --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_classification.proto @@ -0,0 +1,37 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLTextClassificationProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Text Classification Model. +message AutoMlTextClassification { + // The input parameters of this TrainingJob. + AutoMlTextClassificationInputs inputs = 1; +} + +message AutoMlTextClassificationInputs { + bool multi_label = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto new file mode 100644 index 00000000..db33c3f5 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_extraction.proto @@ -0,0 +1,37 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLTextExtractionProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Text Extraction Model. +message AutoMlTextExtraction { + // The input parameters of this TrainingJob. + AutoMlTextExtractionInputs inputs = 1; +} + +message AutoMlTextExtractionInputs { + +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto new file mode 100644 index 00000000..153a57fe --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_text_sentiment.proto @@ -0,0 +1,44 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLTextSentimentProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Text Sentiment Model. +message AutoMlTextSentiment { + // The input parameters of this TrainingJob. + AutoMlTextSentimentInputs inputs = 1; +} + +message AutoMlTextSentimentInputs { + // A sentiment is expressed as an integer ordinal, where higher value + // means a more positive sentiment. The range of sentiments that will be used + // is between 0 and sentimentMax (inclusive on both ends), and all the values + // in the range must be represented in the dataset before a model can be + // created. + // Only the Annotations with this sentimentMax will be used for training. + // sentimentMax value must be between 1 and 10 (inclusive). + int32 sentiment_max = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto new file mode 100644 index 00000000..86f723b7 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_action_recognition.proto @@ -0,0 +1,62 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLVideoActionRecognitionProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Video Action Recognition +// Model. +message AutoMlVideoActionRecognition { + // The input parameters of this TrainingJob. + AutoMlVideoActionRecognitionInputs inputs = 1; +} + +message AutoMlVideoActionRecognitionInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A model best tailored to be used within Google Cloud, and which c annot + // be exported. Default. + CLOUD = 1; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) as a TensorFlow or + // TensorFlow Lite model and used on a mobile or edge device afterwards. + MOBILE_VERSATILE_1 = 2; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) to a Jetson device + // afterwards. + MOBILE_JETSON_VERSATILE_1 = 3; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) as a TensorFlow or + // TensorFlow Lite model and used on a Coral device afterwards. + MOBILE_CORAL_VERSATILE_1 = 4; + } + + ModelType model_type = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto new file mode 100644 index 00000000..ff0d78f0 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_classification.proto @@ -0,0 +1,56 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLVideoClassificationProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Video Classification Model. +message AutoMlVideoClassification { + // The input parameters of this TrainingJob. + AutoMlVideoClassificationInputs inputs = 1; +} + +message AutoMlVideoClassificationInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A model best tailored to be used within Google Cloud, and which cannot + // be exported. Default. + CLOUD = 1; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) as a TensorFlow or + // TensorFlow Lite model and used on a mobile or edge device afterwards. + MOBILE_VERSATILE_1 = 2; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) to a Jetson device + // afterwards. + MOBILE_JETSON_VERSATILE_1 = 3; + } + + ModelType model_type = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto new file mode 100644 index 00000000..52cba9f3 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/automl_video_object_tracking.proto @@ -0,0 +1,67 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "AutoMLVideoObjectTrackingProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// A TrainingJob that trains and uploads an AutoML Video ObjectTracking Model. +message AutoMlVideoObjectTracking { + // The input parameters of this TrainingJob. + AutoMlVideoObjectTrackingInputs inputs = 1; +} + +message AutoMlVideoObjectTrackingInputs { + enum ModelType { + // Should not be set. + MODEL_TYPE_UNSPECIFIED = 0; + + // A model best tailored to be used within Google Cloud, and which c annot + // be exported. Default. + CLOUD = 1; + + // A model that, in addition to being available within Google Cloud, can + // also be exported (see ModelService.ExportModel) as a TensorFlow or + // TensorFlow Lite model and used on a mobile or edge device afterwards. + MOBILE_VERSATILE_1 = 2; + + // A versatile model that is meant to be exported (see + // ModelService.ExportModel) and used on a Google Coral device. + MOBILE_CORAL_VERSATILE_1 = 3; + + // A model that trades off quality for low latency, to be exported (see + // ModelService.ExportModel) and used on a Google Coral device. + MOBILE_CORAL_LOW_LATENCY_1 = 4; + + // A versatile model that is meant to be exported (see + // ModelService.ExportModel) and used on an NVIDIA Jetson device. + MOBILE_JETSON_VERSATILE_1 = 5; + + // A model that trades off quality for low latency, to be exported (see + // ModelService.ExportModel) and used on an NVIDIA Jetson device. + MOBILE_JETSON_LOW_LATENCY_1 = 6; + } + + ModelType model_type = 1; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto new file mode 100644 index 00000000..ac0d3235 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/schema/trainingjob/definition/export_evaluated_data_items_config.proto @@ -0,0 +1,43 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1.schema.trainingjob.definition; + +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1.Schema.TrainingJob.Definition"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1/schema/trainingjob/definition;definition"; +option java_multiple_files = true; +option java_outer_classname = "ExportEvaluatedDataItemsConfigProto"; +option java_package = "com.google.cloud.aiplatform.v1.schema.trainingjob.definition"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1\\Schema\\TrainingJob\\Definition"; +option ruby_package = "Google::Cloud::AIPlatform::V1::Schema::TrainingJob::Definition"; + +// Configuration for exporting test set predictions to a BigQuery table. +message ExportEvaluatedDataItemsConfig { + // URI of desired destination BigQuery table. Expected format: + // bq://:: + // + // If not specified, then results are exported to the following auto-created + // BigQuery table: + // :export_evaluated_examples__.evaluated_examples + string destination_bigquery_uri = 1; + + // If true and an export destination is specified, then the contents of the + // destination are overwritten. Otherwise, if the export destination already + // exists, then the export operation fails. + bool override_existing_table = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto new file mode 100644 index 00000000..9722e544 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto @@ -0,0 +1,60 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SpecialistPoolProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// SpecialistPool represents customers' own workforce to work on their data +// labeling jobs. It includes a group of specialist managers who are responsible +// for managing the labelers in this pool as well as customers' data labeling +// jobs associated with this pool. +// Customers create specialist pool as well as start data labeling jobs on +// Cloud, managers and labelers work with the jobs using CrowdCompute console. +message SpecialistPool { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/SpecialistPool" + pattern: "projects/{project}/locations/{location}/specialistPools/{specialist_pool}" + }; + + // Required. The resource name of the SpecialistPool. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The user-defined name of the SpecialistPool. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + // This field should be unique on project-level. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The number of Specialists in this SpecialistPool. + int32 specialist_managers_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The email addresses of the specialists in the SpecialistPool. + repeated string specialist_manager_emails = 4; + + // Output only. The resource name of the pending data labeling jobs. + repeated string pending_data_labeling_jobs = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto new file mode 100644 index 00000000..ad17178f --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto @@ -0,0 +1,210 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/operation.proto"; +import "google/cloud/aiplatform/v1/specialist_pool.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SpecialistPoolServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A service for creating and managing Customer SpecialistPools. +// When customers start Data Labeling jobs, they can reuse/create Specialist +// Pools to bring their own Specialists to label the data. +// Customers can add/remove Managers for the Specialist Pool on Cloud console, +// then Managers will get email notifications to manage Specialists and tasks on +// CrowdCompute console. +service SpecialistPoolService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a SpecialistPool. + rpc CreateSpecialistPool(CreateSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1/{parent=projects/*/locations/*}/specialistPools" + body: "specialist_pool" + }; + option (google.api.method_signature) = "parent,specialist_pool"; + option (google.longrunning.operation_info) = { + response_type: "SpecialistPool" + metadata_type: "CreateSpecialistPoolOperationMetadata" + }; + } + + // Gets a SpecialistPool. + rpc GetSpecialistPool(GetSpecialistPoolRequest) returns (SpecialistPool) { + option (google.api.http) = { + get: "/v1/{name=projects/*/locations/*/specialistPools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists SpecialistPools in a Location. + rpc ListSpecialistPools(ListSpecialistPoolsRequest) returns (ListSpecialistPoolsResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*}/specialistPools" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a SpecialistPool as well as all Specialists in the pool. + rpc DeleteSpecialistPool(DeleteSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1/{name=projects/*/locations/*/specialistPools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Updates a SpecialistPool. + rpc UpdateSpecialistPool(UpdateSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" + body: "specialist_pool" + }; + option (google.api.method_signature) = "specialist_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "SpecialistPool" + metadata_type: "UpdateSpecialistPoolOperationMetadata" + }; + } +} + +// Request message for [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool]. +message CreateSpecialistPoolRequest { + // Required. The parent Project name for the new SpecialistPool. + // The form is `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The SpecialistPool to create. + SpecialistPool specialist_pool = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for +// [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool]. +message CreateSpecialistPoolOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [SpecialistPoolService.GetSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool]. +message GetSpecialistPoolRequest { + // Required. The name of the SpecialistPool resource. + // The form is + // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; +} + +// Request message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools]. +message ListSpecialistPoolsRequest { + // Required. The name of the SpecialistPool's parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list page size. + int32 page_size = 2; + + // The standard list page token. + // Typically obtained by [ListSpecialistPoolsResponse.next_page_token][google.cloud.aiplatform.v1.ListSpecialistPoolsResponse.next_page_token] of + // the previous [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools] call. Return + // first page if empty. + string page_token = 3; + + // Mask specifying which fields to read. FieldMask represents a set of + google.protobuf.FieldMask read_mask = 4; +} + +// Response message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools]. +message ListSpecialistPoolsResponse { + // A list of SpecialistPools that matches the specified filter in the request. + repeated SpecialistPool specialist_pools = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for [SpecialistPoolService.DeleteSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool]. +message DeleteSpecialistPoolRequest { + // Required. The resource name of the SpecialistPool to delete. Format: + // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; + + // If set to true, any specialist managers in this SpecialistPool will also be + // deleted. (Otherwise, the request will only work if the SpecialistPool has + // no specialist managers.) + bool force = 2; +} + +// Request message for [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool]. +message UpdateSpecialistPoolRequest { + // Required. The SpecialistPool which replaces the resource on the server. + SpecialistPool specialist_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation metadata for +// [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool]. +message UpdateSpecialistPoolOperationMetadata { + // Output only. The name of the SpecialistPool to which the specialists are being added. + // Format: + // `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}` + string specialist_pool = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; + + // The operation generic information. + GenericOperationMetadata generic_metadata = 2; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto new file mode 100644 index 00000000..c05c49e5 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto @@ -0,0 +1,417 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "StudyProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A message representing a Trial. A Trial contains a unique set of Parameters +// that has been or will be evaluated, along with the objective metrics got by +// running the Trial. +message Trial { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Trial" + pattern: "projects/{project}/locations/{location}/studies/{study}/trials/{trial}" + }; + + // A message representing a parameter to be tuned. + message Parameter { + // Output only. The ID of the parameter. The parameter should be defined in + // [StudySpec's Parameters][google.cloud.aiplatform.v1.StudySpec.parameters]. + string parameter_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of the parameter. + // `number_value` will be set if a parameter defined in StudySpec is + // in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. + // `string_value` will be set if a parameter defined in StudySpec is + // in type 'CATEGORICAL'. + google.protobuf.Value value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Describes a Trial state. + enum State { + // The Trial state is unspecified. + STATE_UNSPECIFIED = 0; + + // Indicates that a specific Trial has been requested, but it has not yet + // been suggested by the service. + REQUESTED = 1; + + // Indicates that the Trial has been suggested. + ACTIVE = 2; + + // Indicates that the Trial should stop according to the service. + STOPPING = 3; + + // Indicates that the Trial is completed successfully. + SUCCEEDED = 4; + + // Indicates that the Trial should not be attempted again. + // The service will set a Trial to INFEASIBLE when it's done but missing + // the final_measurement. + INFEASIBLE = 5; + } + + // Output only. Resource name of the Trial assigned by the service. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the Trial assigned by the service. + string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed state of the Trial. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parameters of the Trial. + repeated Parameter parameters = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The final measurement containing the objective value. + Measurement final_measurement = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of measurements that are strictly lexicographically + // ordered by their induced tuples (steps, elapsed_duration). + // These are used for early stopping computations. + repeated Measurement measurements = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the Trial was started. + google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. + google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the client that originally requested this Trial. + // Each client is identified by a unique client_id. When a client + // asks for a suggestion, Vizier will assign it a Trial. The client should + // evaluate the Trial, complete it, and report back to Vizier. + // If suggestion is asked again by same client_id before the Trial is + // completed, the same Trial will be returned. Multiple clients with + // different client_ids can ask for suggestions simultaneously, each of them + // will get their own Trial. + string client_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable string describing why the Trial is + // infeasible. This is set only if Trial state is `INFEASIBLE`. + string infeasible_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The CustomJob name linked to the Trial. + // It's set for a HyperparameterTuningJob's Trial. + string custom_job = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; +} + +// Represents specification of a Study. +message StudySpec { + // Represents a metric to optimize. + message MetricSpec { + // The available types of optimization goals. + enum GoalType { + // Goal Type will default to maximize. + GOAL_TYPE_UNSPECIFIED = 0; + + // Maximize the goal metric. + MAXIMIZE = 1; + + // Minimize the goal metric. + MINIMIZE = 2; + } + + // Required. The ID of the metric. Must not contain whitespaces and must be unique + // amongst all MetricSpecs. + string metric_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The optimization goal of the metric. + GoalType goal = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents a single parameter to optimize. + message ParameterSpec { + // Value specification for a parameter in `DOUBLE` type. + message DoubleValueSpec { + // Required. Inclusive minimum value of the parameter. + double min_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inclusive maximum value of the parameter. + double max_value = 2 [(google.api.field_behavior) = REQUIRED]; + + // A default value for a `DOUBLE` parameter that is assumed to be a + // relatively good starting point. Unset value signals that there is no + // offered starting point. + // + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + optional double default_value = 4; + } + + // Value specification for a parameter in `INTEGER` type. + message IntegerValueSpec { + // Required. Inclusive minimum value of the parameter. + int64 min_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inclusive maximum value of the parameter. + int64 max_value = 2 [(google.api.field_behavior) = REQUIRED]; + + // A default value for an `INTEGER` parameter that is assumed to be a + // relatively good starting point. Unset value signals that there is no + // offered starting point. + // + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + optional int64 default_value = 4; + } + + // Value specification for a parameter in `CATEGORICAL` type. + message CategoricalValueSpec { + // Required. The list of possible categories. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + + // A default value for a `CATEGORICAL` parameter that is assumed to be a + // relatively good starting point. Unset value signals that there is no + // offered starting point. + // + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + optional string default_value = 3; + } + + // Value specification for a parameter in `DISCRETE` type. + message DiscreteValueSpec { + // Required. A list of possible values. + // The list should be in increasing order and at least 1e-10 apart. + // For instance, this parameter might have possible settings of 1.5, 2.5, + // and 4.0. This list should not contain more than 1,000 values. + repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; + + // A default value for a `DISCRETE` parameter that is assumed to be a + // relatively good starting point. Unset value signals that there is no + // offered starting point. It automatically rounds to the + // nearest feasible discrete point. + // + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + optional double default_value = 3; + } + + // Represents a parameter spec with condition from its parent parameter. + message ConditionalParameterSpec { + // Represents the spec to match discrete values from parent parameter. + message DiscreteValueCondition { + // Required. Matches values of the parent parameter of 'DISCRETE' type. + // All values must exist in `discrete_value_spec` of parent parameter. + // + // The Epsilon of the value matching is 1e-10. + repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents the spec to match integer values from parent parameter. + message IntValueCondition { + // Required. Matches values of the parent parameter of 'INTEGER' type. + // All values must lie in `integer_value_spec` of parent parameter. + repeated int64 values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents the spec to match categorical values from parent parameter. + message CategoricalValueCondition { + // Required. Matches values of the parent parameter of 'CATEGORICAL' type. + // All values must exist in `categorical_value_spec` of parent + // parameter. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A set of parameter values from the parent ParameterSpec's feasible + // space. + oneof parent_value_condition { + // The spec for matching values from a parent parameter of + // `DISCRETE` type. + DiscreteValueCondition parent_discrete_values = 2; + + // The spec for matching values from a parent parameter of `INTEGER` + // type. + IntValueCondition parent_int_values = 3; + + // The spec for matching values from a parent parameter of + // `CATEGORICAL` type. + CategoricalValueCondition parent_categorical_values = 4; + } + + // Required. The spec for a conditional parameter. + ParameterSpec parameter_spec = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The type of scaling that should be applied to this parameter. + enum ScaleType { + // By default, no scaling is applied. + SCALE_TYPE_UNSPECIFIED = 0; + + // Scales the feasible space to (0, 1) linearly. + UNIT_LINEAR_SCALE = 1; + + // Scales the feasible space logarithmically to (0, 1). The entire + // feasible space must be strictly positive. + UNIT_LOG_SCALE = 2; + + // Scales the feasible space "reverse" logarithmically to (0, 1). The + // result is that values close to the top of the feasible space are spread + // out more than points near the bottom. The entire feasible space must be + // strictly positive. + UNIT_REVERSE_LOG_SCALE = 3; + } + + oneof parameter_value_spec { + // The value spec for a 'DOUBLE' parameter. + DoubleValueSpec double_value_spec = 2; + + // The value spec for an 'INTEGER' parameter. + IntegerValueSpec integer_value_spec = 3; + + // The value spec for a 'CATEGORICAL' parameter. + CategoricalValueSpec categorical_value_spec = 4; + + // The value spec for a 'DISCRETE' parameter. + DiscreteValueSpec discrete_value_spec = 5; + } + + // Required. The ID of the parameter. Must not contain whitespaces and must be unique + // amongst all ParameterSpecs. + string parameter_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // How the parameter should be scaled. + // Leave unset for `CATEGORICAL` parameters. + ScaleType scale_type = 6; + + // A conditional parameter node is active if the parameter's value matches + // the conditional node's parent_value_condition. + // + // If two items in conditional_parameter_specs have the same name, they + // must have disjoint parent_value_condition. + repeated ConditionalParameterSpec conditional_parameter_specs = 10; + } + + // The available search algorithms for the Study. + enum Algorithm { + // The default algorithm used by Vertex AI for [hyperparameter + // tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) + // and [Vertex Vizier](https://cloud.google.com/vertex-ai/docs/vizier). + ALGORITHM_UNSPECIFIED = 0; + + // Simple grid search within the feasible space. To use grid search, + // all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`. + GRID_SEARCH = 2; + + // Simple random search within the feasible space. + RANDOM_SEARCH = 3; + } + + // Describes the noise level of the repeated observations. + // + // "Noisy" means that the repeated observations with the same Trial parameters + // may lead to different metric evaluations. + enum ObservationNoise { + // The default noise level chosen by Vertex AI. + OBSERVATION_NOISE_UNSPECIFIED = 0; + + // Vertex AI assumes that the objective function is (nearly) + // perfectly reproducible, and will never repeat the same Trial + // parameters. + LOW = 1; + + // Vertex AI will estimate the amount of noise in metric + // evaluations, it may repeat the same Trial parameters more than once. + HIGH = 2; + } + + // This indicates which measurement to use if/when the service automatically + // selects the final measurement from previously reported intermediate + // measurements. Choose this based on two considerations: + // A) Do you expect your measurements to monotonically improve? + // If so, choose LAST_MEASUREMENT. On the other hand, if you're in a + // situation where your system can "over-train" and you expect the + // performance to get better for a while but then start declining, + // choose BEST_MEASUREMENT. + // B) Are your measurements significantly noisy and/or irreproducible? + // If so, BEST_MEASUREMENT will tend to be over-optimistic, and it + // may be better to choose LAST_MEASUREMENT. + // If both or neither of (A) and (B) apply, it doesn't matter which + // selection type is chosen. + enum MeasurementSelectionType { + // Will be treated as LAST_MEASUREMENT. + MEASUREMENT_SELECTION_TYPE_UNSPECIFIED = 0; + + // Use the last measurement reported. + LAST_MEASUREMENT = 1; + + // Use the best measurement reported. + BEST_MEASUREMENT = 2; + } + + // Required. Metric specs for the Study. + repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The set of parameters to tune. + repeated ParameterSpec parameters = 2 [(google.api.field_behavior) = REQUIRED]; + + // The search algorithm specified for the Study. + Algorithm algorithm = 3; + + // The observation noise level of the study. + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + ObservationNoise observation_noise = 6; + + // Describe which measurement selection type will be used + MeasurementSelectionType measurement_selection_type = 7; +} + +// A message representing a Measurement of a Trial. A Measurement contains +// the Metrics got by executing a Trial using suggested hyperparameter +// values. +message Measurement { + // A message representing a metric in the measurement. + message Metric { + // Output only. The ID of the Metric. The Metric should be defined in + // [StudySpec's Metrics][google.cloud.aiplatform.v1.StudySpec.metrics]. + string metric_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value for this metric. + double value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Time that the Trial has been running at the point of this Measurement. + google.protobuf.Duration elapsed_duration = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of steps the machine learning model has been trained for. + // Must be non-negative. + int64 step_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of metrics got by evaluating the objective functions using suggested + // Parameter values. + repeated Metric metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto new file mode 100644 index 00000000..6e469a97 --- /dev/null +++ b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto @@ -0,0 +1,354 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1/io.proto"; +import "google/cloud/aiplatform/v1/machine_resources.proto"; +import "google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto"; +import "google/cloud/aiplatform/v1/model.proto"; +import "google/cloud/aiplatform/v1/pipeline_state.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option csharp_namespace = "Google.Cloud.AIPlatform.V1"; +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TrainingPipelineProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// The TrainingPipeline orchestrates tasks associated with training a Model. It +// always executes the training task, and optionally may also +// export data from Vertex AI's Dataset which becomes the training input, +// [upload][google.cloud.aiplatform.v1.ModelService.UploadModel] the Model to Vertex AI, and evaluate the +// Model. +message TrainingPipeline { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + pattern: "projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}" + }; + + // Output only. Resource name of the TrainingPipeline. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of this TrainingPipeline. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Specifies Vertex AI owned input data that may be used for training the + // Model. The TrainingPipeline's [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] should make + // clear whether this config is used and if there are any special requirements + // on how it should be filled. If nothing about this config is mentioned in + // the [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], then it should be assumed that the + // TrainingPipeline does not depend on this configuration. + InputDataConfig input_data_config = 3; + + // Required. A Google Cloud Storage path to the YAML file that defines the training task + // which is responsible for producing the model artifact, and may also include + // additional auxiliary work. + // The definition files that can be used here are found in + // gs://google-cloud-aiplatform/schema/trainingjob/definition/. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string training_task_definition = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The training task's parameter(s), as specified in the + // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s `inputs`. + google.protobuf.Value training_task_inputs = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The metadata information as specified in the [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s + // `metadata`. This metadata is an auxiliary runtime and final information + // about the training task. While the pipeline is running this information is + // populated only at a best effort basis. Only present if the + // pipeline's [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] contains `metadata` object. + google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Describes the Model that may be uploaded (via [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel]) + // by this TrainingPipeline. The TrainingPipeline's + // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] should make clear whether this Model + // description should be populated, and if there are any special requirements + // regarding how it should be filled. If nothing is mentioned in the + // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], then it should be assumed that this field + // should not be filled and the training task either uploads the Model without + // a need of this information, or that training task does not support + // uploading a Model as part of the pipeline. + // When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and + // the trained Model had been uploaded into Vertex AI, then the + // model_to_upload's resource [name][google.cloud.aiplatform.v1.Model.name] is populated. The Model + // is always uploaded into the Project and Location in which this pipeline + // is. + Model model_to_upload = 7; + + // Output only. The detailed state of the pipeline. + PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or + // `PIPELINE_STATE_CANCELLED`. + google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline for the first time entered the + // `PIPELINE_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline entered any of the following states: + // `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, + // `PIPELINE_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline was most recently updated. + google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize TrainingPipelines. + // + // 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. + map labels = 15; + + // Customer-managed encryption key spec for a TrainingPipeline. If set, this + // TrainingPipeline will be secured by this key. + // + // Note: Model trained by this TrainingPipeline is also secured by this key if + // [model_to_upload][google.cloud.aiplatform.v1.TrainingPipeline.encryption_spec] is not set separately. + EncryptionSpec encryption_spec = 18; +} + +// Specifies Vertex AI owned input data to be used for training, and +// possibly evaluating, the Model. +message InputDataConfig { + // The instructions how the input data should be split between the + // training, validation and test sets. + // If no split type is provided, the [fraction_split][google.cloud.aiplatform.v1.InputDataConfig.fraction_split] is used by default. + oneof split { + // Split based on fractions defining the size of each set. + FractionSplit fraction_split = 2; + + // Split based on the provided filters for each set. + FilterSplit filter_split = 3; + + // Supported only for tabular Datasets. + // + // Split based on a predefined key. + PredefinedSplit predefined_split = 4; + + // Supported only for tabular Datasets. + // + // Split based on the timestamp of the input data pieces. + TimestampSplit timestamp_split = 5; + } + + // Only applicable to Custom and Hyperparameter Tuning TrainingPipelines. + // + // The destination of the training data to be written to. + // + // Supported destination file formats: + // * For non-tabular data: "jsonl". + // * For tabular data: "csv" and "bigquery". + // + // The following Vertex AI environment variables are passed to containers + // or python modules of the training task when this field is set: + // + // * AIP_DATA_FORMAT : Exported data format. + // * AIP_TRAINING_DATA_URI : Sharded exported training data uris. + // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. + // * AIP_TEST_DATA_URI : Sharded exported test data uris. + oneof destination { + // The Cloud Storage location where the training data is to be + // written to. In the given directory a new directory is created with + // name: + // `dataset---` + // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. + // All training input data is written into that directory. + // + // The Vertex AI environment variables representing Cloud Storage + // data URIs are represented in the Cloud Storage wildcard + // format to support sharded data. e.g.: "gs://.../training-*.jsonl" + // + // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data + // * AIP_TRAINING_DATA_URI = + // "gcs_destination/dataset---
+ // + // If not specified, then results are exported to the following auto-created + // BigQuery table: + // :export_evaluated_examples__.evaluated_examples + string destination_bigquery_uri = 1; + + // If true and an export destination is specified, then the contents of the + // destination are overwritten. Otherwise, if the export destination already + // exists, then the export operation fails. + bool override_existing_table = 2; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto new file mode 100644 index 00000000..10863d09 --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto @@ -0,0 +1,57 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SpecialistPoolProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// SpecialistPool represents customers' own workforce to work on their data +// labeling jobs. It includes a group of specialist managers who are responsible +// for managing the labelers in this pool as well as customers' data labeling +// jobs associated with this pool. +// Customers create specialist pool as well as start data labeling jobs on +// Cloud, managers and labelers work with the jobs using CrowdCompute console. +message SpecialistPool { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/SpecialistPool" + pattern: "projects/{project}/locations/{location}/specialistPools/{specialist_pool}" + }; + + // Required. The resource name of the SpecialistPool. + string name = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The user-defined name of the SpecialistPool. + // The name can be up to 128 characters long and can be consist of any UTF-8 + // characters. + // This field should be unique on project-level. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The number of Specialists in this SpecialistPool. + int32 specialist_managers_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The email addresses of the specialists in the SpecialistPool. + repeated string specialist_manager_emails = 4; + + // Output only. The resource name of the pending data labeling jobs. + repeated string pending_data_labeling_jobs = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto new file mode 100644 index 00000000..e6d95210 --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto @@ -0,0 +1,207 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/cloud/aiplatform/v1beta1/specialist_pool.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "SpecialistPoolServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// A service for creating and managing Customer SpecialistPools. +// When customers start Data Labeling jobs, they can reuse/create Specialist +// Pools to bring their own Specialists to label the data. +// Customers can add/remove Managers for the Specialist Pool on Cloud console, +// then Managers will get email notifications to manage Specialists and tasks on +// CrowdCompute console. +service SpecialistPoolService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a SpecialistPool. + rpc CreateSpecialistPool(CreateSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/specialistPools" + body: "specialist_pool" + }; + option (google.api.method_signature) = "parent,specialist_pool"; + option (google.longrunning.operation_info) = { + response_type: "SpecialistPool" + metadata_type: "CreateSpecialistPoolOperationMetadata" + }; + } + + // Gets a SpecialistPool. + rpc GetSpecialistPool(GetSpecialistPoolRequest) returns (SpecialistPool) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Lists SpecialistPools in a Location. + rpc ListSpecialistPools(ListSpecialistPoolsRequest) returns (ListSpecialistPoolsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/specialistPools" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a SpecialistPool as well as all Specialists in the pool. + rpc DeleteSpecialistPool(DeleteSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Updates a SpecialistPool. + rpc UpdateSpecialistPool(UpdateSpecialistPoolRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" + body: "specialist_pool" + }; + option (google.api.method_signature) = "specialist_pool,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "SpecialistPool" + metadata_type: "UpdateSpecialistPoolOperationMetadata" + }; + } +} + +// Request message for [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool]. +message CreateSpecialistPoolRequest { + // Required. The parent Project name for the new SpecialistPool. + // The form is `projects/{project}/locations/{location}`. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // Required. The SpecialistPool to create. + SpecialistPool specialist_pool = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation information for +// [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool]. +message CreateSpecialistPoolOperationMetadata { + // The operation generic information. + GenericOperationMetadata generic_metadata = 1; +} + +// Request message for [SpecialistPoolService.GetSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool]. +message GetSpecialistPoolRequest { + // Required. The name of the SpecialistPool resource. + // The form is + // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; +} + +// Request message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools]. +message ListSpecialistPoolsRequest { + // Required. The name of the SpecialistPool's parent resource. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "locations.googleapis.com/Location" + } + ]; + + // The standard list page size. + int32 page_size = 2; + + // The standard list page token. + // Typically obtained by [ListSpecialistPoolsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListSpecialistPoolsResponse.next_page_token] of + // the previous [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools] call. Return + // first page if empty. + string page_token = 3; + + // Mask specifying which fields to read. FieldMask represents a set of + google.protobuf.FieldMask read_mask = 4; +} + +// Response message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools]. +message ListSpecialistPoolsResponse { + // A list of SpecialistPools that matches the specified filter in the request. + repeated SpecialistPool specialist_pools = 1; + + // The standard List next-page token. + string next_page_token = 2; +} + +// Request message for [SpecialistPoolService.DeleteSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool]. +message DeleteSpecialistPoolRequest { + // Required. The resource name of the SpecialistPool to delete. Format: + // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; + + // If set to true, any specialist managers in this SpecialistPool will also be + // deleted. (Otherwise, the request will only work if the SpecialistPool has + // no specialist managers.) + bool force = 2; +} + +// Request message for [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool]. +message UpdateSpecialistPoolRequest { + // Required. The SpecialistPool which replaces the resource on the server. + SpecialistPool specialist_pool = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The update mask applies to the resource. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Runtime operation metadata for +// [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool]. +message UpdateSpecialistPoolOperationMetadata { + // Output only. The name of the SpecialistPool to which the specialists are being added. + // Format: + // `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}` + string specialist_pool = 1 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/SpecialistPool" + } + ]; + + // The operation generic information. + GenericOperationMetadata generic_metadata = 2; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto new file mode 100644 index 00000000..f4a997f3 --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto @@ -0,0 +1,499 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/wrappers.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "StudyProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// A message representing a Study. +message Study { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Study" + pattern: "projects/{project}/locations/{location}/studies/{study}" + }; + + // Describes the Study state. + enum State { + // The study state is unspecified. + STATE_UNSPECIFIED = 0; + + // The study is active. + ACTIVE = 1; + + // The study is stopped due to an internal error. + INACTIVE = 2; + + // The study is done when the service exhausts the parameter search space + // or max_trial_count is reached. + COMPLETED = 3; + } + + // Output only. The name of a study. The study's globally unique identifier. + // Format: `projects/{project}/locations/{location}/studies/{study}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Describes the Study, default value is empty string. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. Configuration of the Study. + StudySpec study_spec = 3 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The detailed state of a Study. + State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time at which the study was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable reason why the Study is inactive. + // This should be empty if a study is ACTIVE or COMPLETED. + string inactive_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +// A message representing a Trial. A Trial contains a unique set of Parameters +// that has been or will be evaluated, along with the objective metrics got by +// running the Trial. +message Trial { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Trial" + pattern: "projects/{project}/locations/{location}/studies/{study}/trials/{trial}" + }; + + // A message representing a parameter to be tuned. + message Parameter { + // Output only. The ID of the parameter. The parameter should be defined in + // [StudySpec's Parameters][google.cloud.aiplatform.v1beta1.StudySpec.parameters]. + string parameter_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value of the parameter. + // `number_value` will be set if a parameter defined in StudySpec is + // in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. + // `string_value` will be set if a parameter defined in StudySpec is + // in type 'CATEGORICAL'. + google.protobuf.Value value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Describes a Trial state. + enum State { + // The Trial state is unspecified. + STATE_UNSPECIFIED = 0; + + // Indicates that a specific Trial has been requested, but it has not yet + // been suggested by the service. + REQUESTED = 1; + + // Indicates that the Trial has been suggested. + ACTIVE = 2; + + // Indicates that the Trial should stop according to the service. + STOPPING = 3; + + // Indicates that the Trial is completed successfully. + SUCCEEDED = 4; + + // Indicates that the Trial should not be attempted again. + // The service will set a Trial to INFEASIBLE when it's done but missing + // the final_measurement. + INFEASIBLE = 5; + } + + // Output only. Resource name of the Trial assigned by the service. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the Trial assigned by the service. + string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The detailed state of the Trial. + State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The parameters of the Trial. + repeated Parameter parameters = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The final measurement containing the objective value. + Measurement final_measurement = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of measurements that are strictly lexicographically + // ordered by their induced tuples (steps, elapsed_duration). + // These are used for early stopping computations. + repeated Measurement measurements = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the Trial was started. + google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. + google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The identifier of the client that originally requested this Trial. + // Each client is identified by a unique client_id. When a client + // asks for a suggestion, Vizier will assign it a Trial. The client should + // evaluate the Trial, complete it, and report back to Vizier. + // If suggestion is asked again by same client_id before the Trial is + // completed, the same Trial will be returned. Multiple clients with + // different client_ids can ask for suggestions simultaneously, each of them + // will get their own Trial. + string client_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A human readable string describing why the Trial is + // infeasible. This is set only if Trial state is `INFEASIBLE`. + string infeasible_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The CustomJob name linked to the Trial. + // It's set for a HyperparameterTuningJob's Trial. + string custom_job = 11 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/CustomJob" + } + ]; +} + +// Represents specification of a Study. +message StudySpec { + // Represents a metric to optimize. + message MetricSpec { + // The available types of optimization goals. + enum GoalType { + // Goal Type will default to maximize. + GOAL_TYPE_UNSPECIFIED = 0; + + // Maximize the goal metric. + MAXIMIZE = 1; + + // Minimize the goal metric. + MINIMIZE = 2; + } + + // Required. The ID of the metric. Must not contain whitespaces and must be unique + // amongst all MetricSpecs. + string metric_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The optimization goal of the metric. + GoalType goal = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents a single parameter to optimize. + message ParameterSpec { + // Value specification for a parameter in `DOUBLE` type. + message DoubleValueSpec { + // Required. Inclusive minimum value of the parameter. + double min_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inclusive maximum value of the parameter. + double max_value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Value specification for a parameter in `INTEGER` type. + message IntegerValueSpec { + // Required. Inclusive minimum value of the parameter. + int64 min_value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Inclusive maximum value of the parameter. + int64 max_value = 2 [(google.api.field_behavior) = REQUIRED]; + } + + // Value specification for a parameter in `CATEGORICAL` type. + message CategoricalValueSpec { + // Required. The list of possible categories. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Value specification for a parameter in `DISCRETE` type. + message DiscreteValueSpec { + // Required. A list of possible values. + // The list should be in increasing order and at least 1e-10 apart. + // For instance, this parameter might have possible settings of 1.5, 2.5, + // and 4.0. This list should not contain more than 1,000 values. + repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents a parameter spec with condition from its parent parameter. + message ConditionalParameterSpec { + // Represents the spec to match discrete values from parent parameter. + message DiscreteValueCondition { + // Required. Matches values of the parent parameter of 'DISCRETE' type. + // All values must exist in `discrete_value_spec` of parent parameter. + // + // The Epsilon of the value matching is 1e-10. + repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents the spec to match integer values from parent parameter. + message IntValueCondition { + // Required. Matches values of the parent parameter of 'INTEGER' type. + // All values must lie in `integer_value_spec` of parent parameter. + repeated int64 values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // Represents the spec to match categorical values from parent parameter. + message CategoricalValueCondition { + // Required. Matches values of the parent parameter of 'CATEGORICAL' type. + // All values must exist in `categorical_value_spec` of parent + // parameter. + repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // A set of parameter values from the parent ParameterSpec's feasible + // space. + oneof parent_value_condition { + // The spec for matching values from a parent parameter of + // `DISCRETE` type. + DiscreteValueCondition parent_discrete_values = 2; + + // The spec for matching values from a parent parameter of `INTEGER` + // type. + IntValueCondition parent_int_values = 3; + + // The spec for matching values from a parent parameter of + // `CATEGORICAL` type. + CategoricalValueCondition parent_categorical_values = 4; + } + + // Required. The spec for a conditional parameter. + ParameterSpec parameter_spec = 1 [(google.api.field_behavior) = REQUIRED]; + } + + // The type of scaling that should be applied to this parameter. + enum ScaleType { + // By default, no scaling is applied. + SCALE_TYPE_UNSPECIFIED = 0; + + // Scales the feasible space to (0, 1) linearly. + UNIT_LINEAR_SCALE = 1; + + // Scales the feasible space logarithmically to (0, 1). The entire + // feasible space must be strictly positive. + UNIT_LOG_SCALE = 2; + + // Scales the feasible space "reverse" logarithmically to (0, 1). The + // result is that values close to the top of the feasible space are spread + // out more than points near the bottom. The entire feasible space must be + // strictly positive. + UNIT_REVERSE_LOG_SCALE = 3; + } + + oneof parameter_value_spec { + // The value spec for a 'DOUBLE' parameter. + DoubleValueSpec double_value_spec = 2; + + // The value spec for an 'INTEGER' parameter. + IntegerValueSpec integer_value_spec = 3; + + // The value spec for a 'CATEGORICAL' parameter. + CategoricalValueSpec categorical_value_spec = 4; + + // The value spec for a 'DISCRETE' parameter. + DiscreteValueSpec discrete_value_spec = 5; + } + + // Required. The ID of the parameter. Must not contain whitespaces and must be unique + // amongst all ParameterSpecs. + string parameter_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // How the parameter should be scaled. + // Leave unset for `CATEGORICAL` parameters. + ScaleType scale_type = 6; + + // A conditional parameter node is active if the parameter's value matches + // the conditional node's parent_value_condition. + // + // If two items in conditional_parameter_specs have the same name, they + // must have disjoint parent_value_condition. + repeated ConditionalParameterSpec conditional_parameter_specs = 10; + } + + // The decay curve automated stopping rule builds a Gaussian Process + // Regressor to predict the final objective value of a Trial based on the + // already completed Trials and the intermediate measurements of the current + // Trial. Early stopping is requested for the current Trial if there is very + // low probability to exceed the optimal value found so far. + message DecayCurveAutomatedStoppingSpec { + // True if [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration] is used as the x-axis of each + // Trials Decay Curve. Otherwise, [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count] will be used + // as the x-axis. + bool use_elapsed_duration = 1; + } + + // The median automated stopping rule stops a pending Trial if the Trial's + // best objective_value is strictly below the median 'performance' of all + // completed Trials reported up to the Trial's last measurement. + // Currently, 'performance' refers to the running average of the objective + // values reported by the Trial in each measurement. + message MedianAutomatedStoppingSpec { + // True if median automated stopping rule applies on + // [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]. It means that elapsed_duration + // field of latest measurement of current Trial is used to compute median + // objective value for each completed Trials. + bool use_elapsed_duration = 1; + } + + // Configuration for ConvexStopPolicy. + message ConvexStopConfig { + // Steps used in predicting the final objective for early stopped trials. In + // general, it's set to be the same as the defined steps in training / + // tuning. When use_steps is false, this field is set to the maximum elapsed + // seconds. + int64 max_num_steps = 1; + + // Minimum number of steps for a trial to complete. Trials which do not have + // a measurement with num_steps > min_num_steps won't be considered for + // early stopping. It's ok to set it to 0, and a trial can be early stopped + // at any stage. By default, min_num_steps is set to be one-tenth of the + // max_num_steps. + // When use_steps is false, this field is set to the minimum elapsed + // seconds. + int64 min_num_steps = 2; + + // The number of Trial measurements used in autoregressive model for + // value prediction. A trial won't be considered early stopping if has fewer + // measurement points. + int64 autoregressive_order = 3; + + // The hyper-parameter name used in the tuning job that stands for learning + // rate. Leave it blank if learning rate is not in a parameter in tuning. + // The learning_rate is used to estimate the objective value of the ongoing + // trial. + string learning_rate_parameter_name = 4; + + // This bool determines whether or not the rule is applied based on + // elapsed_secs or steps. If use_seconds==false, the early stopping decision + // is made according to the predicted objective values according to the + // target steps. If use_seconds==true, elapsed_secs is used instead of + // steps. Also, in this case, the parameters max_num_steps and min_num_steps + // are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. + bool use_seconds = 5; + } + + // The available search algorithms for the Study. + enum Algorithm { + // The default algorithm used by Vertex AI for [hyperparameter + // tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) + // and [Vertex Vizier](https://cloud.google.com/vertex-ai/docs/vizier). + ALGORITHM_UNSPECIFIED = 0; + + // Simple grid search within the feasible space. To use grid search, + // all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`. + GRID_SEARCH = 2; + + // Simple random search within the feasible space. + RANDOM_SEARCH = 3; + } + + // Describes the noise level of the repeated observations. + // + // "Noisy" means that the repeated observations with the same Trial parameters + // may lead to different metric evaluations. + enum ObservationNoise { + // The default noise level chosen by Vertex AI. + OBSERVATION_NOISE_UNSPECIFIED = 0; + + // Vertex AI assumes that the objective function is (nearly) + // perfectly reproducible, and will never repeat the same Trial + // parameters. + LOW = 1; + + // Vertex AI will estimate the amount of noise in metric + // evaluations, it may repeat the same Trial parameters more than once. + HIGH = 2; + } + + // This indicates which measurement to use if/when the service automatically + // selects the final measurement from previously reported intermediate + // measurements. Choose this based on two considerations: + // A) Do you expect your measurements to monotonically improve? + // If so, choose LAST_MEASUREMENT. On the other hand, if you're in a + // situation where your system can "over-train" and you expect the + // performance to get better for a while but then start declining, + // choose BEST_MEASUREMENT. + // B) Are your measurements significantly noisy and/or irreproducible? + // If so, BEST_MEASUREMENT will tend to be over-optimistic, and it + // may be better to choose LAST_MEASUREMENT. + // If both or neither of (A) and (B) apply, it doesn't matter which + // selection type is chosen. + enum MeasurementSelectionType { + // Will be treated as LAST_MEASUREMENT. + MEASUREMENT_SELECTION_TYPE_UNSPECIFIED = 0; + + // Use the last measurement reported. + LAST_MEASUREMENT = 1; + + // Use the best measurement reported. + BEST_MEASUREMENT = 2; + } + + oneof automated_stopping_spec { + // The automated early stopping spec using decay curve rule. + DecayCurveAutomatedStoppingSpec decay_curve_stopping_spec = 4; + + // The automated early stopping spec using median rule. + MedianAutomatedStoppingSpec median_automated_stopping_spec = 5; + + // The automated early stopping using convex stopping rule. + ConvexStopConfig convex_stop_config = 8; + } + + // Required. Metric specs for the Study. + repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The set of parameters to tune. + repeated ParameterSpec parameters = 2 [(google.api.field_behavior) = REQUIRED]; + + // The search algorithm specified for the Study. + Algorithm algorithm = 3; + + // The observation noise level of the study. + // Currently only supported by the Vizier service. Not supported by + // HyperparamterTuningJob or TrainingPipeline. + ObservationNoise observation_noise = 6; + + // Describe which measurement selection type will be used + MeasurementSelectionType measurement_selection_type = 7; +} + +// A message representing a Measurement of a Trial. A Measurement contains +// the Metrics got by executing a Trial using suggested hyperparameter +// values. +message Measurement { + // A message representing a metric in the measurement. + message Metric { + // Output only. The ID of the Metric. The Metric should be defined in + // [StudySpec's Metrics][google.cloud.aiplatform.v1beta1.StudySpec.metrics]. + string metric_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The value for this metric. + double value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // Output only. Time that the Trial has been running at the point of this Measurement. + google.protobuf.Duration elapsed_duration = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of steps the machine learning model has been trained for. + // Must be non-negative. + int64 step_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. A list of metrics got by evaluating the objective functions using suggested + // Parameter values. + repeated Metric metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto new file mode 100644 index 00000000..d19d280f --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto @@ -0,0 +1,84 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// Tensorboard is a physical database that stores users' training metrics. +// A default Tensorboard is provided in each region of a GCP project. +// If needed users can also create extra Tensorboards in their projects. +message Tensorboard { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/Tensorboard" + pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}" + }; + + // Output only. Name of the Tensorboard. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. User provided name of this Tensorboard. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Description of this Tensorboard. + string description = 3; + + // Customer-managed encryption key spec for a Tensorboard. If set, this + // Tensorboard and all sub-resources of this Tensorboard will be secured by + // this key. + EncryptionSpec encryption_spec = 11; + + // Output only. Consumer project Cloud Storage path prefix used to store blob data, which + // can either be a bucket or directory. Does not end with a '/'. + string blob_storage_path_prefix = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The number of Runs stored in this Tensorboard. + int32 run_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Tensorboard was created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this Tensorboard was last updated. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize your Tensorboards. + // + // 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. + // No more than 64 user labels can be associated with one Tensorboard + // (System labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. + map labels = 8; + + // Used to perform a consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 9; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto new file mode 100644 index 00000000..793ce91d --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto @@ -0,0 +1,99 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardDataProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// All the data stored in a TensorboardTimeSeries. +message TimeSeriesData { + // Required. The ID of the TensorboardTimeSeries, which will become the final component + // of the TensorboardTimeSeries' resource name + string tensorboard_time_series_id = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. Immutable. The value type of this time series. All the values in this time series data + // must match this value type. + TensorboardTimeSeries.ValueType value_type = 2 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Required. Data points in this time series. + repeated TimeSeriesDataPoint values = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// A TensorboardTimeSeries data point. +message TimeSeriesDataPoint { + // Value of this time series data point. + oneof value { + // A scalar value. + Scalar scalar = 3; + + // A tensor value. + TensorboardTensor tensor = 4; + + // A blob sequence value. + TensorboardBlobSequence blobs = 5; + } + + // Wall clock timestamp when this data point is generated by the end user. + google.protobuf.Timestamp wall_time = 1; + + // Step index of this data point within the run. + int64 step = 2; +} + +// One point viewable on a scalar metric plot. +message Scalar { + // Value of the point at this step / timestamp. + double value = 1; +} + +// One point viewable on a tensor metric plot. +message TensorboardTensor { + // Required. Serialized form of + // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto + bytes value = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Version number of TensorProto used to serialize [value][google.cloud.aiplatform.v1beta1.TensorboardTensor.value]. + int32 version_number = 2 [(google.api.field_behavior) = OPTIONAL]; +} + +// One point viewable on a blob metric plot, but mostly just a wrapper message +// to work around repeated fields can't be used directly within `oneof` fields. +message TensorboardBlobSequence { + // List of blobs contained within the sequence. + repeated TensorboardBlob values = 1; +} + +// One blob (e.g, image, graph) viewable on a blob metric plot. +message TensorboardBlob { + // Output only. A URI safe key uniquely identifying a blob. Can be used to locate the blob + // stored in the Cloud Storage bucket of the consumer project. + string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Optional. The bytes of the blob is not present unless it's returned by the + // ReadTensorboardBlobData endpoint. + bytes data = 2 [(google.api.field_behavior) = OPTIONAL]; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto new file mode 100644 index 00000000..6d8b330f --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto @@ -0,0 +1,76 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardExperimentProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// A TensorboardExperiment is a group of TensorboardRuns, that are typically the +// results of a training job run, in a Tensorboard. +message TensorboardExperiment { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TensorboardExperiment" + pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}" + }; + + // Output only. Name of the TensorboardExperiment. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // User provided name of this TensorboardExperiment. + string display_name = 2; + + // Description of this TensorboardExperiment. + string description = 3; + + // Output only. Timestamp when this TensorboardExperiment was created. + google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this TensorboardExperiment was last updated. + google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize your Datasets. + // + // 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. + // No more than 64 user labels can be associated with one Dataset (System + // labels are excluded). + // + // See https://goo.gl/xmQnxf for more information and examples of labels. + // System reserved label keys are prefixed with "aiplatform.googleapis.com/" + // and are immutable. Following system labels exist for each Dataset: + // * "aiplatform.googleapis.com/dataset_metadata_schema": + // - output only, its value is the + // [metadata_schema's][metadata_schema_uri] title. + map labels = 6; + + // Used to perform consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 7; + + // Immutable. Source of the TensorboardExperiment. Example: a custom training job. + string source = 8 [(google.api.field_behavior) = IMMUTABLE]; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto new file mode 100644 index 00000000..db946ecd --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto @@ -0,0 +1,61 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardRunProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// TensorboardRun maps to a specific execution of a training job with a given +// set of hyperparameter values, model definition, dataset, etc +message TensorboardRun { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TensorboardRun" + pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}" + }; + + // Output only. Name of the TensorboardRun. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. User provided name of this TensorboardRun. + // This value must be unique among all TensorboardRuns + // belonging to the same parent TensorboardExperiment. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Description of this TensorboardRun. + string description = 3; + + // Output only. Timestamp when this TensorboardRun was created. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this TensorboardRun was last updated. + google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; + + map labels = 8; + + // Used to perform a consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 9; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto new file mode 100644 index 00000000..3046133f --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto @@ -0,0 +1,856 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/annotations.proto"; +import "google/api/client.proto"; +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/operation.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard_data.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard_run.proto"; +import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; +import "google/longrunning/operations.proto"; +import "google/protobuf/field_mask.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardServiceProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// TensorboardService +service TensorboardService { + option (google.api.default_host) = "aiplatform.googleapis.com"; + option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; + + // Creates a Tensorboard. + rpc CreateTensorboard(CreateTensorboardRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*}/tensorboards" + body: "tensorboard" + }; + option (google.api.method_signature) = "parent,tensorboard"; + option (google.longrunning.operation_info) = { + response_type: "Tensorboard" + metadata_type: "CreateTensorboardOperationMetadata" + }; + } + + // Gets a Tensorboard. + rpc GetTensorboard(GetTensorboardRequest) returns (Tensorboard) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a Tensorboard. + rpc UpdateTensorboard(UpdateTensorboardRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + patch: "/v1beta1/{tensorboard.name=projects/*/locations/*/tensorboards/*}" + body: "tensorboard" + }; + option (google.api.method_signature) = "tensorboard,update_mask"; + option (google.longrunning.operation_info) = { + response_type: "Tensorboard" + metadata_type: "UpdateTensorboardOperationMetadata" + }; + } + + // Lists Tensorboards in a Location. + rpc ListTensorboards(ListTensorboardsRequest) returns (ListTensorboardsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*}/tensorboards" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a Tensorboard. + rpc DeleteTensorboard(DeleteTensorboardRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Creates a TensorboardExperiment. + rpc CreateTensorboardExperiment(CreateTensorboardExperimentRequest) returns (TensorboardExperiment) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments" + body: "tensorboard_experiment" + }; + option (google.api.method_signature) = "parent,tensorboard_experiment,tensorboard_experiment_id"; + } + + // Gets a TensorboardExperiment. + rpc GetTensorboardExperiment(GetTensorboardExperimentRequest) returns (TensorboardExperiment) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a TensorboardExperiment. + rpc UpdateTensorboardExperiment(UpdateTensorboardExperimentRequest) returns (TensorboardExperiment) { + option (google.api.http) = { + patch: "/v1beta1/{tensorboard_experiment.name=projects/*/locations/*/tensorboards/*/experiments/*}" + body: "tensorboard_experiment" + }; + option (google.api.method_signature) = "tensorboard_experiment,update_mask"; + } + + // Lists TensorboardExperiments in a Location. + rpc ListTensorboardExperiments(ListTensorboardExperimentsRequest) returns (ListTensorboardExperimentsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a TensorboardExperiment. + rpc DeleteTensorboardExperiment(DeleteTensorboardExperimentRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Creates a TensorboardRun. + rpc CreateTensorboardRun(CreateTensorboardRunRequest) returns (TensorboardRun) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" + body: "tensorboard_run" + }; + option (google.api.method_signature) = "parent,tensorboard_run,tensorboard_run_id"; + } + + // Gets a TensorboardRun. + rpc GetTensorboardRun(GetTensorboardRunRequest) returns (TensorboardRun) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a TensorboardRun. + rpc UpdateTensorboardRun(UpdateTensorboardRunRequest) returns (TensorboardRun) { + option (google.api.http) = { + patch: "/v1beta1/{tensorboard_run.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + body: "tensorboard_run" + }; + option (google.api.method_signature) = "tensorboard_run,update_mask"; + } + + // Lists TensorboardRuns in a Location. + rpc ListTensorboardRuns(ListTensorboardRunsRequest) returns (ListTensorboardRunsResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a TensorboardRun. + rpc DeleteTensorboardRun(DeleteTensorboardRunRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Creates a TensorboardTimeSeries. + rpc CreateTensorboardTimeSeries(CreateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { + option (google.api.http) = { + post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" + body: "tensorboard_time_series" + }; + option (google.api.method_signature) = "parent,tensorboard_time_series"; + } + + // Gets a TensorboardTimeSeries. + rpc GetTensorboardTimeSeries(GetTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { + option (google.api.http) = { + get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + }; + option (google.api.method_signature) = "name"; + } + + // Updates a TensorboardTimeSeries. + rpc UpdateTensorboardTimeSeries(UpdateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { + option (google.api.http) = { + patch: "/v1beta1/{tensorboard_time_series.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + body: "tensorboard_time_series" + }; + option (google.api.method_signature) = "tensorboard_time_series,update_mask"; + } + + // Lists TensorboardTimeSeries in a Location. + rpc ListTensorboardTimeSeries(ListTensorboardTimeSeriesRequest) returns (ListTensorboardTimeSeriesResponse) { + option (google.api.http) = { + get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" + }; + option (google.api.method_signature) = "parent"; + } + + // Deletes a TensorboardTimeSeries. + rpc DeleteTensorboardTimeSeries(DeleteTensorboardTimeSeriesRequest) returns (google.longrunning.Operation) { + option (google.api.http) = { + delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" + }; + option (google.api.method_signature) = "name"; + option (google.longrunning.operation_info) = { + response_type: "google.protobuf.Empty" + metadata_type: "DeleteOperationMetadata" + }; + } + + // Reads a TensorboardTimeSeries' data. Data is returned in paginated + // responses. By default, if the number of data points stored is less than + // 1000, all data will be returned. Otherwise, 1000 data points will be + // randomly selected from this time series and returned. This value can be + // changed by changing max_data_points. + rpc ReadTensorboardTimeSeriesData(ReadTensorboardTimeSeriesDataRequest) returns (ReadTensorboardTimeSeriesDataResponse) { + option (google.api.http) = { + get: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:read" + }; + option (google.api.method_signature) = "tensorboard_time_series"; + } + + // Gets bytes of TensorboardBlobs. + // This is to allow reading blob data stored in consumer project's Cloud + // Storage bucket without users having to obtain Cloud Storage access + // permission. + rpc ReadTensorboardBlobData(ReadTensorboardBlobDataRequest) returns (stream ReadTensorboardBlobDataResponse) { + option (google.api.http) = { + get: "/v1beta1/{time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:readBlobData" + }; + option (google.api.method_signature) = "time_series"; + } + + // Write time series data points into multiple TensorboardTimeSeries under + // a TensorboardRun. If any data fail to be ingested, an error will be + // returned. + rpc WriteTensorboardRunData(WriteTensorboardRunDataRequest) returns (WriteTensorboardRunDataResponse) { + option (google.api.http) = { + post: "/v1beta1/{tensorboard_run=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}:write" + body: "*" + }; + option (google.api.method_signature) = "tensorboard_run,time_series_data"; + } + + // Exports a TensorboardTimeSeries' data. Data is returned in paginated + // responses. + rpc ExportTensorboardTimeSeriesData(ExportTensorboardTimeSeriesDataRequest) returns (ExportTensorboardTimeSeriesDataResponse) { + option (google.api.http) = { + post: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:exportTensorboardTimeSeries" + body: "*" + }; + option (google.api.method_signature) = "tensorboard_time_series"; + } +} + +// Request message for [TensorboardService.CreateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard]. +message CreateTensorboardRequest { + // Required. The resource name of the Location to create the Tensorboard in. + // Format: `projects/{project}/locations/{location}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Tensorboard" + } + ]; + + // Required. The Tensorboard to create. + Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.GetTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboard]. +message GetTensorboardRequest { + // Required. The name of the Tensorboard resource. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Tensorboard" + } + ]; +} + +// Request message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards]. +message ListTensorboardsRequest { + // Required. The resource name of the Location to list Tensorboards. + // Format: + // 'projects/{project}/locations/{location}' + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/Tensorboard" + } + ]; + + // Lists the Tensorboards that match the filter expression. + string filter = 2; + + // The maximum number of Tensorboards to return. The service may return + // fewer than this value. If unspecified, at most 100 Tensorboards will be + // returned. The maximum value is 100; values above 100 will be coerced to + // 100. + int32 page_size = 3; + + // A page token, received from a previous + // [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] must + // match the call that provided the page token. + string page_token = 4; + + // Field to use to sort the list. + string order_by = 5; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 6; +} + +// Response message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards]. +message ListTensorboardsResponse { + // The Tensorboards mathching the request. + repeated Tensorboard tensorboards = 1; + + // A token, which can be sent as [ListTensorboardsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardsRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + string next_page_token = 2; +} + +// Request message for [TensorboardService.UpdateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboard]. +message UpdateTensorboardRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // Tensorboard resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten if new + // values are specified. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The Tensorboard's `name` field is used to identify the + // Tensorboard to be updated. Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.DeleteTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboard]. +message DeleteTensorboardRequest { + // Required. The name of the Tensorboard to be deleted. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/Tensorboard" + } + ]; +} + +// Request message for [TensorboardService.CreateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment]. +message CreateTensorboardExperimentRequest { + // Required. The resource name of the Tensorboard to create the TensorboardExperiment + // in. Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardExperiment" + } + ]; + + // The TensorboardExperiment to create. + TensorboardExperiment tensorboard_experiment = 2; + + // Required. The ID to use for the Tensorboard experiment, which will become the final + // component of the Tensorboard experiment's resource name. + // + // This value should be 1-128 characters, and valid characters + // are /[a-z][0-9]-/. + string tensorboard_experiment_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.GetTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardExperiment]. +message GetTensorboardExperimentRequest { + // Required. The name of the TensorboardExperiment resource. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardExperiment" + } + ]; +} + +// Request message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments]. +message ListTensorboardExperimentsRequest { + // Required. The resource name of the Tensorboard to list TensorboardExperiments. + // Format: + // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}' + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/TensorboardExperiment" + } + ]; + + // Lists the TensorboardExperiments that match the filter expression. + string filter = 2; + + // The maximum number of TensorboardExperiments to return. The service may + // return fewer than this value. If unspecified, at most 50 + // TensorboardExperiments will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. + int32 page_size = 3; + + // A page token, received from a previous + // [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] must + // match the call that provided the page token. + string page_token = 4; + + // Field to use to sort the list. + string order_by = 5; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 6; +} + +// Response message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments]. +message ListTensorboardExperimentsResponse { + // The TensorboardExperiments mathching the request. + repeated TensorboardExperiment tensorboard_experiments = 1; + + // A token, which can be sent as + // [ListTensorboardExperimentsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardExperimentsRequest.page_token] to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for [TensorboardService.UpdateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardExperiment]. +message UpdateTensorboardExperimentRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // TensorboardExperiment resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten if new + // values are specified. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The TensorboardExperiment's `name` field is used to identify the + // TensorboardExperiment to be updated. Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + TensorboardExperiment tensorboard_experiment = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.DeleteTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardExperiment]. +message DeleteTensorboardExperimentRequest { + // Required. The name of the TensorboardExperiment to be deleted. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardExperiment" + } + ]; +} + +// Request message for [TensorboardService.CreateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardRun]. +message CreateTensorboardRunRequest { + // Required. The resource name of the Tensorboard to create the TensorboardRun in. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardRun" + } + ]; + + // Required. The TensorboardRun to create. + TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The ID to use for the Tensorboard run, which will become the final + // component of the Tensorboard run's resource name. + // + // This value should be 1-128 characters, and valid characters + // are /[a-z][0-9]-/. + string tensorboard_run_id = 3 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.GetTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardRun]. +message GetTensorboardRunRequest { + // Required. The name of the TensorboardRun resource. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardRun" + } + ]; +} + +// Request message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData]. +message ReadTensorboardBlobDataRequest { + // Required. The resource name of the TensorboardTimeSeries to list Blobs. + // Format: + // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}' + string time_series = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; + + // IDs of the blobs to read. + repeated string blob_ids = 2; +} + +// Response message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData]. +message ReadTensorboardBlobDataResponse { + // Blob messages containing blob bytes. + repeated TensorboardBlob blobs = 1; +} + +// Request message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns]. +message ListTensorboardRunsRequest { + // Required. The resource name of the Tensorboard to list TensorboardRuns. + // Format: + // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}' + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/TensorboardRun" + } + ]; + + // Lists the TensorboardRuns that match the filter expression. + string filter = 2; + + // The maximum number of TensorboardRuns to return. The service may return + // fewer than this value. If unspecified, at most 50 TensorboardRuns will be + // returned. The maximum value is 1000; values above 1000 will be coerced to + // 1000. + int32 page_size = 3; + + // A page token, received from a previous + // [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] must + // match the call that provided the page token. + string page_token = 4; + + // Field to use to sort the list. + string order_by = 5; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 6; +} + +// Response message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns]. +message ListTensorboardRunsResponse { + // The TensorboardRuns mathching the request. + repeated TensorboardRun tensorboard_runs = 1; + + // A token, which can be sent as [ListTensorboardRunsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardRunsRequest.page_token] to + // retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for [TensorboardService.UpdateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardRun]. +message UpdateTensorboardRunRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // TensorboardRun resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten if new + // values are specified. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The TensorboardRun's `name` field is used to identify the TensorboardRun to + // be updated. Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.DeleteTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardRun]. +message DeleteTensorboardRunRequest { + // Required. The name of the TensorboardRun to be deleted. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardRun" + } + ]; +} + +// Request message for [TensorboardService.CreateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardTimeSeries]. +message CreateTensorboardTimeSeriesRequest { + // Required. The resource name of the TensorboardRun to create the + // TensorboardTimeSeries in. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; + + // Optional. The user specified unique ID to use for the TensorboardTimeSeries, which + // will become the final component of the TensorboardTimeSeries's resource + // name. Ref: go/ucaip-user-specified-id + // + // This value should match "[a-z0-9][a-z0-9-]{0, 127}" + string tensorboard_time_series_id = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Required. The TensorboardTimeSeries to create. + TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.GetTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardTimeSeries]. +message GetTensorboardTimeSeriesRequest { + // Required. The name of the TensorboardTimeSeries resource. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; +} + +// Request message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries]. +message ListTensorboardTimeSeriesRequest { + // Required. The resource name of the TensorboardRun to list TensorboardTimeSeries. + // Format: + // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}' + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + child_type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; + + // Lists the TensorboardTimeSeries that match the filter expression. + string filter = 2; + + // The maximum number of TensorboardTimeSeries to return. The service may + // return fewer than this value. If unspecified, at most 50 + // TensorboardTimeSeries will be returned. The maximum value is 1000; values + // above 1000 will be coerced to 1000. + int32 page_size = 3; + + // A page token, received from a previous + // [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] must + // match the call that provided the page token. + string page_token = 4; + + // Field to use to sort the list. + string order_by = 5; + + // Mask specifying which fields to read. + google.protobuf.FieldMask read_mask = 6; +} + +// Response message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries]. +message ListTensorboardTimeSeriesResponse { + // The TensorboardTimeSeries mathching the request. + repeated TensorboardTimeSeries tensorboard_time_series = 1; + + // A token, which can be sent as + // [ListTensorboardTimeSeriesRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardTimeSeriesRequest.page_token] to retrieve the next page. + // If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Request message for [TensorboardService.UpdateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardTimeSeries]. +message UpdateTensorboardTimeSeriesRequest { + // Required. Field mask is used to specify the fields to be overwritten in the + // TensorboardTimeSeries resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten if new + // values are specified. + google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; + + // Required. The TensorboardTimeSeries' `name` field is used to identify the + // TensorboardTimeSeries to be updated. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Request message for [TensorboardService.DeleteTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardTimeSeries]. +message DeleteTensorboardTimeSeriesRequest { + // Required. The name of the TensorboardTimeSeries to be deleted. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; +} + +// Request message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData]. +message ReadTensorboardTimeSeriesDataRequest { + // Required. The resource name of the TensorboardTimeSeries to read data from. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + string tensorboard_time_series = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; + + // The maximum number of TensorboardTimeSeries' data to return. + // + // This value should be a positive integer. + // This value can be set to -1 to return all data. + int32 max_data_points = 2; + + // Reads the TensorboardTimeSeries' data that match the filter expression. + string filter = 3; +} + +// Response message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData]. +message ReadTensorboardTimeSeriesDataResponse { + // The returned time series data. + TimeSeriesData time_series_data = 1; +} + +// Request message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData]. +message WriteTensorboardRunDataRequest { + // Required. The resource name of the TensorboardRun to write data to. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` + string tensorboard_run = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardRun" + } + ]; + + // Required. The TensorboardTimeSeries data to write. + // Values with in a time series are indexed by their step value. + // Repeated writes to the same step will overwrite the existing value for that + // step. + // The upper limit of data points per write request is 5000. + repeated TimeSeriesData time_series_data = 2 [(google.api.field_behavior) = REQUIRED]; +} + +// Response message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData]. +message WriteTensorboardRunDataResponse { + +} + +// Request message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData]. +message ExportTensorboardTimeSeriesDataRequest { + // Required. The resource name of the TensorboardTimeSeries to export data from. + // Format: + // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` + string tensorboard_time_series = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + } + ]; + + // Exports the TensorboardTimeSeries' data that match the filter expression. + string filter = 2; + + // The maximum number of data points to return per page. + // The default page_size will be 1000. Values must be between 1 and 10000. + // Values above 10000 will be coerced to 10000. + int32 page_size = 3; + + // A page token, received from a previous + // [TensorboardService.ExportTensorboardTimeSeries][] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [TensorboardService.ExportTensorboardTimeSeries][] must + // match the call that provided the page token. + string page_token = 4; + + // Field to use to sort the TensorboardTimeSeries' data. + // By default, TensorboardTimeSeries' data will be returned in a pseudo random + // order. + string order_by = 5; +} + +// Response message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData]. +message ExportTensorboardTimeSeriesDataResponse { + // The returned time series data points. + repeated TimeSeriesDataPoint time_series_data_points = 1; + + // A token, which can be sent as + // [ExportTensorboardTimeSeriesRequest.page_token][] to retrieve the next + // page. If this field is omitted, there are no subsequent pages. + string next_page_token = 2; +} + +// Details of operations that perform create Tensorboard. +message CreateTensorboardOperationMetadata { + // Operation metadata for Tensorboard. + GenericOperationMetadata generic_metadata = 1; +} + +// Details of operations that perform update Tensorboard. +message UpdateTensorboardOperationMetadata { + // Operation metadata for Tensorboard. + GenericOperationMetadata generic_metadata = 1; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto new file mode 100644 index 00000000..1a37dd96 --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto @@ -0,0 +1,104 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/protobuf/timestamp.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TensorboardTimeSeriesProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// TensorboardTimeSeries maps to times series produced in training runs +message TensorboardTimeSeries { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TensorboardTimeSeries" + pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}" + }; + + // Describes metadata for a TensorboardTimeSeries. + message Metadata { + // Output only. Max step index of all data points within a TensorboardTimeSeries. + int64 max_step = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Max wall clock timestamp of all data points within a + // TensorboardTimeSeries. + google.protobuf.Timestamp max_wall_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The largest blob sequence length (number of blobs) of all data points in + // this time series, if its ValueType is BLOB_SEQUENCE. + int64 max_blob_sequence_length = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + } + + // An enum representing the value type of a TensorboardTimeSeries. + enum ValueType { + // The value type is unspecified. + VALUE_TYPE_UNSPECIFIED = 0; + + // Used for TensorboardTimeSeries that is a list of scalars. + // E.g. accuracy of a model over epochs/time. + SCALAR = 1; + + // Used for TensorboardTimeSeries that is a list of tensors. + // E.g. histograms of weights of layer in a model over epoch/time. + TENSOR = 2; + + // Used for TensorboardTimeSeries that is a list of blob sequences. + // E.g. set of sample images with labels over epochs/time. + BLOB_SEQUENCE = 3; + } + + // Output only. Name of the TensorboardTimeSeries. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. User provided name of this TensorboardTimeSeries. + // This value should be unique among all TensorboardTimeSeries resources + // belonging to the same TensorboardRun resource (parent resource). + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Description of this TensorboardTimeSeries. + string description = 3; + + // Required. Immutable. Type of TensorboardTimeSeries value. + ValueType value_type = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.field_behavior) = IMMUTABLE + ]; + + // Output only. Timestamp when this TensorboardTimeSeries was created. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when this TensorboardTimeSeries was last updated. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform a consistent read-modify-write updates. If not set, a blind + // "overwrite" update happens. + string etag = 7; + + // Immutable. Name of the plugin this time series pertain to. Such as Scalar, Tensor, + // Blob + string plugin_name = 8 [(google.api.field_behavior) = IMMUTABLE]; + + // Data of the current plugin, with the size limited to 65KB. + bytes plugin_data = 9; + + // Output only. Scalar, Tensor, or Blob metadata for this TensorboardTimeSeries. + Metadata metadata = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto new file mode 100644 index 00000000..6495149d --- /dev/null +++ b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto @@ -0,0 +1,351 @@ +// Copyright 2021 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. + +syntax = "proto3"; + +package google.cloud.aiplatform.v1beta1; + +import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; +import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; +import "google/cloud/aiplatform/v1beta1/io.proto"; +import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; +import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto"; +import "google/cloud/aiplatform/v1beta1/model.proto"; +import "google/cloud/aiplatform/v1beta1/pipeline_state.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/rpc/status.proto"; +import "google/api/annotations.proto"; + +option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; +option java_multiple_files = true; +option java_outer_classname = "TrainingPipelineProto"; +option java_package = "com.google.cloud.aiplatform.v1beta1"; + +// The TrainingPipeline orchestrates tasks associated with training a Model. It +// always executes the training task, and optionally may also +// export data from Vertex AI's Dataset which becomes the training input, +// [upload][google.cloud.aiplatform.v1beta1.ModelService.UploadModel] the Model to Vertex AI, and evaluate the +// Model. +message TrainingPipeline { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/TrainingPipeline" + pattern: "projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}" + }; + + // Output only. Resource name of the TrainingPipeline. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of this TrainingPipeline. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Specifies Vertex AI owned input data that may be used for training the + // Model. The TrainingPipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make + // clear whether this config is used and if there are any special requirements + // on how it should be filled. If nothing about this config is mentioned in + // the [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition], then it should be assumed that the + // TrainingPipeline does not depend on this configuration. + InputDataConfig input_data_config = 3; + + // Required. A Google Cloud Storage path to the YAML file that defines the training task + // which is responsible for producing the model artifact, and may also include + // additional auxiliary work. + // The definition files that can be used here are found in + // gs://google-cloud-aiplatform/schema/trainingjob/definition/. + // Note: The URI given on output will be immutable and probably different, + // including the URI scheme, than the one given on input. The output URI will + // point to a location where the user only has a read access. + string training_task_definition = 4 [(google.api.field_behavior) = REQUIRED]; + + // Required. The training task's parameter(s), as specified in the + // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition]'s `inputs`. + google.protobuf.Value training_task_inputs = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The metadata information as specified in the [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition]'s + // `metadata`. This metadata is an auxiliary runtime and final information + // about the training task. While the pipeline is running this information is + // populated only at a best effort basis. Only present if the + // pipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] contains `metadata` object. + google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Describes the Model that may be uploaded (via [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.ModelService.UploadModel]) + // by this TrainingPipeline. The TrainingPipeline's + // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make clear whether this Model + // description should be populated, and if there are any special requirements + // regarding how it should be filled. If nothing is mentioned in the + // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition], then it should be assumed that this field + // should not be filled and the training task either uploads the Model without + // a need of this information, or that training task does not support + // uploading a Model as part of the pipeline. + // When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and + // the trained Model had been uploaded into Vertex AI, then the + // model_to_upload's resource [name][google.cloud.aiplatform.v1beta1.Model.name] is populated. The Model + // is always uploaded into the Project and Location in which this pipeline + // is. + Model model_to_upload = 7; + + // Output only. The detailed state of the pipeline. + PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or + // `PIPELINE_STATE_CANCELLED`. + google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline was created. + google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline for the first time entered the + // `PIPELINE_STATE_RUNNING` state. + google.protobuf.Timestamp start_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline entered any of the following states: + // `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, + // `PIPELINE_STATE_CANCELLED`. + google.protobuf.Timestamp end_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Time when the TrainingPipeline was most recently updated. + google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The labels with user-defined metadata to organize TrainingPipelines. + // + // 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. + map labels = 15; + + // Customer-managed encryption key spec for a TrainingPipeline. If set, this + // TrainingPipeline will be secured by this key. + // + // Note: Model trained by this TrainingPipeline is also secured by this key if + // [model_to_upload][google.cloud.aiplatform.v1beta1.TrainingPipeline.encryption_spec] is not set separately. + EncryptionSpec encryption_spec = 18; +} + +// Specifies Vertex AI owned input data to be used for training, and +// possibly evaluating, the Model. +message InputDataConfig { + // The instructions how the input data should be split between the + // training, validation and test sets. + // If no split type is provided, the [fraction_split][google.cloud.aiplatform.v1beta1.InputDataConfig.fraction_split] is used by default. + oneof split { + // Split based on fractions defining the size of each set. + FractionSplit fraction_split = 2; + + // Split based on the provided filters for each set. + FilterSplit filter_split = 3; + + // Supported only for tabular Datasets. + // + // Split based on a predefined key. + PredefinedSplit predefined_split = 4; + + // Supported only for tabular Datasets. + // + // Split based on the timestamp of the input data pieces. + TimestampSplit timestamp_split = 5; + } + + // Only applicable to Custom and Hyperparameter Tuning TrainingPipelines. + // + // The destination of the training data to be written to. + // + // Supported destination file formats: + // * For non-tabular data: "jsonl". + // * For tabular data: "csv" and "bigquery". + // + // The following Vertex AI environment variables are passed to containers + // or python modules of the training task when this field is set: + // + // * AIP_DATA_FORMAT : Exported data format. + // * AIP_TRAINING_DATA_URI : Sharded exported training data uris. + // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. + // * AIP_TEST_DATA_URI : Sharded exported test data uris. + oneof destination { + // The Cloud Storage location where the training data is to be + // written to. In the given directory a new directory is created with + // name: + // `dataset---` + // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. + // All training input data is written into that directory. + // + // The Vertex AI environment variables representing Cloud Storage + // data URIs are represented in the Cloud Storage wildcard + // format to support sharded data. e.g.: "gs://.../training-*.jsonl" + // + // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data + // * AIP_TRAINING_DATA_URI = + // "gcs_destination/dataset---
- // - // If not specified, then results are exported to the following auto-created - // BigQuery table: - // :export_evaluated_examples__.evaluated_examples - string destination_bigquery_uri = 1; - - // If true and an export destination is specified, then the contents of the - // destination are overwritten. Otherwise, if the export destination already - // exists, then the export operation fails. - bool override_existing_table = 2; -} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto deleted file mode 100644 index 9722e544..00000000 --- a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool.proto +++ /dev/null @@ -1,60 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Cloud.AIPlatform.V1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "SpecialistPoolProto"; -option java_package = "com.google.cloud.aiplatform.v1"; -option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; -option ruby_package = "Google::Cloud::AIPlatform::V1"; - -// SpecialistPool represents customers' own workforce to work on their data -// labeling jobs. It includes a group of specialist managers who are responsible -// for managing the labelers in this pool as well as customers' data labeling -// jobs associated with this pool. -// Customers create specialist pool as well as start data labeling jobs on -// Cloud, managers and labelers work with the jobs using CrowdCompute console. -message SpecialistPool { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/SpecialistPool" - pattern: "projects/{project}/locations/{location}/specialistPools/{specialist_pool}" - }; - - // Required. The resource name of the SpecialistPool. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The user-defined name of the SpecialistPool. - // The name can be up to 128 characters long and can be consist of any UTF-8 - // characters. - // This field should be unique on project-level. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The number of Specialists in this SpecialistPool. - int32 specialist_managers_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The email addresses of the specialists in the SpecialistPool. - repeated string specialist_manager_emails = 4; - - // Output only. The resource name of the pending data labeling jobs. - repeated string pending_data_labeling_jobs = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto deleted file mode 100644 index ad17178f..00000000 --- a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/specialist_pool_service.proto +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/operation.proto"; -import "google/cloud/aiplatform/v1/specialist_pool.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; - -option csharp_namespace = "Google.Cloud.AIPlatform.V1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "SpecialistPoolServiceProto"; -option java_package = "com.google.cloud.aiplatform.v1"; -option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; -option ruby_package = "Google::Cloud::AIPlatform::V1"; - -// A service for creating and managing Customer SpecialistPools. -// When customers start Data Labeling jobs, they can reuse/create Specialist -// Pools to bring their own Specialists to label the data. -// Customers can add/remove Managers for the Specialist Pool on Cloud console, -// then Managers will get email notifications to manage Specialists and tasks on -// CrowdCompute console. -service SpecialistPoolService { - option (google.api.default_host) = "aiplatform.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Creates a SpecialistPool. - rpc CreateSpecialistPool(CreateSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1/{parent=projects/*/locations/*}/specialistPools" - body: "specialist_pool" - }; - option (google.api.method_signature) = "parent,specialist_pool"; - option (google.longrunning.operation_info) = { - response_type: "SpecialistPool" - metadata_type: "CreateSpecialistPoolOperationMetadata" - }; - } - - // Gets a SpecialistPool. - rpc GetSpecialistPool(GetSpecialistPoolRequest) returns (SpecialistPool) { - option (google.api.http) = { - get: "/v1/{name=projects/*/locations/*/specialistPools/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists SpecialistPools in a Location. - rpc ListSpecialistPools(ListSpecialistPoolsRequest) returns (ListSpecialistPoolsResponse) { - option (google.api.http) = { - get: "/v1/{parent=projects/*/locations/*}/specialistPools" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a SpecialistPool as well as all Specialists in the pool. - rpc DeleteSpecialistPool(DeleteSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1/{name=projects/*/locations/*/specialistPools/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Updates a SpecialistPool. - rpc UpdateSpecialistPool(UpdateSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - patch: "/v1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" - body: "specialist_pool" - }; - option (google.api.method_signature) = "specialist_pool,update_mask"; - option (google.longrunning.operation_info) = { - response_type: "SpecialistPool" - metadata_type: "UpdateSpecialistPoolOperationMetadata" - }; - } -} - -// Request message for [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool]. -message CreateSpecialistPoolRequest { - // Required. The parent Project name for the new SpecialistPool. - // The form is `projects/{project}/locations/{location}`. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The SpecialistPool to create. - SpecialistPool specialist_pool = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Runtime operation information for -// [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.CreateSpecialistPool]. -message CreateSpecialistPoolOperationMetadata { - // The operation generic information. - GenericOperationMetadata generic_metadata = 1; -} - -// Request message for [SpecialistPoolService.GetSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.GetSpecialistPool]. -message GetSpecialistPoolRequest { - // Required. The name of the SpecialistPool resource. - // The form is - // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; -} - -// Request message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools]. -message ListSpecialistPoolsRequest { - // Required. The name of the SpecialistPool's parent resource. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // The standard list page size. - int32 page_size = 2; - - // The standard list page token. - // Typically obtained by [ListSpecialistPoolsResponse.next_page_token][google.cloud.aiplatform.v1.ListSpecialistPoolsResponse.next_page_token] of - // the previous [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools] call. Return - // first page if empty. - string page_token = 3; - - // Mask specifying which fields to read. FieldMask represents a set of - google.protobuf.FieldMask read_mask = 4; -} - -// Response message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1.SpecialistPoolService.ListSpecialistPools]. -message ListSpecialistPoolsResponse { - // A list of SpecialistPools that matches the specified filter in the request. - repeated SpecialistPool specialist_pools = 1; - - // The standard List next-page token. - string next_page_token = 2; -} - -// Request message for [SpecialistPoolService.DeleteSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.DeleteSpecialistPool]. -message DeleteSpecialistPoolRequest { - // Required. The resource name of the SpecialistPool to delete. Format: - // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; - - // If set to true, any specialist managers in this SpecialistPool will also be - // deleted. (Otherwise, the request will only work if the SpecialistPool has - // no specialist managers.) - bool force = 2; -} - -// Request message for [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool]. -message UpdateSpecialistPoolRequest { - // Required. The SpecialistPool which replaces the resource on the server. - SpecialistPool specialist_pool = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The update mask applies to the resource. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Runtime operation metadata for -// [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1.SpecialistPoolService.UpdateSpecialistPool]. -message UpdateSpecialistPoolOperationMetadata { - // Output only. The name of the SpecialistPool to which the specialists are being added. - // Format: - // `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}` - string specialist_pool = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; - - // The operation generic information. - GenericOperationMetadata generic_metadata = 2; -} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto deleted file mode 100644 index c05c49e5..00000000 --- a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/study.proto +++ /dev/null @@ -1,417 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Cloud.AIPlatform.V1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "StudyProto"; -option java_package = "com.google.cloud.aiplatform.v1"; -option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; -option ruby_package = "Google::Cloud::AIPlatform::V1"; - -// A message representing a Trial. A Trial contains a unique set of Parameters -// that has been or will be evaluated, along with the objective metrics got by -// running the Trial. -message Trial { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/Trial" - pattern: "projects/{project}/locations/{location}/studies/{study}/trials/{trial}" - }; - - // A message representing a parameter to be tuned. - message Parameter { - // Output only. The ID of the parameter. The parameter should be defined in - // [StudySpec's Parameters][google.cloud.aiplatform.v1.StudySpec.parameters]. - string parameter_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value of the parameter. - // `number_value` will be set if a parameter defined in StudySpec is - // in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. - // `string_value` will be set if a parameter defined in StudySpec is - // in type 'CATEGORICAL'. - google.protobuf.Value value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Describes a Trial state. - enum State { - // The Trial state is unspecified. - STATE_UNSPECIFIED = 0; - - // Indicates that a specific Trial has been requested, but it has not yet - // been suggested by the service. - REQUESTED = 1; - - // Indicates that the Trial has been suggested. - ACTIVE = 2; - - // Indicates that the Trial should stop according to the service. - STOPPING = 3; - - // Indicates that the Trial is completed successfully. - SUCCEEDED = 4; - - // Indicates that the Trial should not be attempted again. - // The service will set a Trial to INFEASIBLE when it's done but missing - // the final_measurement. - INFEASIBLE = 5; - } - - // Output only. Resource name of the Trial assigned by the service. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The identifier of the Trial assigned by the service. - string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The detailed state of the Trial. - State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parameters of the Trial. - repeated Parameter parameters = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The final measurement containing the objective value. - Measurement final_measurement = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of measurements that are strictly lexicographically - // ordered by their induced tuples (steps, elapsed_duration). - // These are used for early stopping computations. - repeated Measurement measurements = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the Trial was started. - google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. - google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The identifier of the client that originally requested this Trial. - // Each client is identified by a unique client_id. When a client - // asks for a suggestion, Vizier will assign it a Trial. The client should - // evaluate the Trial, complete it, and report back to Vizier. - // If suggestion is asked again by same client_id before the Trial is - // completed, the same Trial will be returned. Multiple clients with - // different client_ids can ask for suggestions simultaneously, each of them - // will get their own Trial. - string client_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A human readable string describing why the Trial is - // infeasible. This is set only if Trial state is `INFEASIBLE`. - string infeasible_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The CustomJob name linked to the Trial. - // It's set for a HyperparameterTuningJob's Trial. - string custom_job = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/CustomJob" - } - ]; -} - -// Represents specification of a Study. -message StudySpec { - // Represents a metric to optimize. - message MetricSpec { - // The available types of optimization goals. - enum GoalType { - // Goal Type will default to maximize. - GOAL_TYPE_UNSPECIFIED = 0; - - // Maximize the goal metric. - MAXIMIZE = 1; - - // Minimize the goal metric. - MINIMIZE = 2; - } - - // Required. The ID of the metric. Must not contain whitespaces and must be unique - // amongst all MetricSpecs. - string metric_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The optimization goal of the metric. - GoalType goal = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents a single parameter to optimize. - message ParameterSpec { - // Value specification for a parameter in `DOUBLE` type. - message DoubleValueSpec { - // Required. Inclusive minimum value of the parameter. - double min_value = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Inclusive maximum value of the parameter. - double max_value = 2 [(google.api.field_behavior) = REQUIRED]; - - // A default value for a `DOUBLE` parameter that is assumed to be a - // relatively good starting point. Unset value signals that there is no - // offered starting point. - // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - optional double default_value = 4; - } - - // Value specification for a parameter in `INTEGER` type. - message IntegerValueSpec { - // Required. Inclusive minimum value of the parameter. - int64 min_value = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Inclusive maximum value of the parameter. - int64 max_value = 2 [(google.api.field_behavior) = REQUIRED]; - - // A default value for an `INTEGER` parameter that is assumed to be a - // relatively good starting point. Unset value signals that there is no - // offered starting point. - // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - optional int64 default_value = 4; - } - - // Value specification for a parameter in `CATEGORICAL` type. - message CategoricalValueSpec { - // Required. The list of possible categories. - repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; - - // A default value for a `CATEGORICAL` parameter that is assumed to be a - // relatively good starting point. Unset value signals that there is no - // offered starting point. - // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - optional string default_value = 3; - } - - // Value specification for a parameter in `DISCRETE` type. - message DiscreteValueSpec { - // Required. A list of possible values. - // The list should be in increasing order and at least 1e-10 apart. - // For instance, this parameter might have possible settings of 1.5, 2.5, - // and 4.0. This list should not contain more than 1,000 values. - repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; - - // A default value for a `DISCRETE` parameter that is assumed to be a - // relatively good starting point. Unset value signals that there is no - // offered starting point. It automatically rounds to the - // nearest feasible discrete point. - // - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - optional double default_value = 3; - } - - // Represents a parameter spec with condition from its parent parameter. - message ConditionalParameterSpec { - // Represents the spec to match discrete values from parent parameter. - message DiscreteValueCondition { - // Required. Matches values of the parent parameter of 'DISCRETE' type. - // All values must exist in `discrete_value_spec` of parent parameter. - // - // The Epsilon of the value matching is 1e-10. - repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents the spec to match integer values from parent parameter. - message IntValueCondition { - // Required. Matches values of the parent parameter of 'INTEGER' type. - // All values must lie in `integer_value_spec` of parent parameter. - repeated int64 values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents the spec to match categorical values from parent parameter. - message CategoricalValueCondition { - // Required. Matches values of the parent parameter of 'CATEGORICAL' type. - // All values must exist in `categorical_value_spec` of parent - // parameter. - repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // A set of parameter values from the parent ParameterSpec's feasible - // space. - oneof parent_value_condition { - // The spec for matching values from a parent parameter of - // `DISCRETE` type. - DiscreteValueCondition parent_discrete_values = 2; - - // The spec for matching values from a parent parameter of `INTEGER` - // type. - IntValueCondition parent_int_values = 3; - - // The spec for matching values from a parent parameter of - // `CATEGORICAL` type. - CategoricalValueCondition parent_categorical_values = 4; - } - - // Required. The spec for a conditional parameter. - ParameterSpec parameter_spec = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // The type of scaling that should be applied to this parameter. - enum ScaleType { - // By default, no scaling is applied. - SCALE_TYPE_UNSPECIFIED = 0; - - // Scales the feasible space to (0, 1) linearly. - UNIT_LINEAR_SCALE = 1; - - // Scales the feasible space logarithmically to (0, 1). The entire - // feasible space must be strictly positive. - UNIT_LOG_SCALE = 2; - - // Scales the feasible space "reverse" logarithmically to (0, 1). The - // result is that values close to the top of the feasible space are spread - // out more than points near the bottom. The entire feasible space must be - // strictly positive. - UNIT_REVERSE_LOG_SCALE = 3; - } - - oneof parameter_value_spec { - // The value spec for a 'DOUBLE' parameter. - DoubleValueSpec double_value_spec = 2; - - // The value spec for an 'INTEGER' parameter. - IntegerValueSpec integer_value_spec = 3; - - // The value spec for a 'CATEGORICAL' parameter. - CategoricalValueSpec categorical_value_spec = 4; - - // The value spec for a 'DISCRETE' parameter. - DiscreteValueSpec discrete_value_spec = 5; - } - - // Required. The ID of the parameter. Must not contain whitespaces and must be unique - // amongst all ParameterSpecs. - string parameter_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // How the parameter should be scaled. - // Leave unset for `CATEGORICAL` parameters. - ScaleType scale_type = 6; - - // A conditional parameter node is active if the parameter's value matches - // the conditional node's parent_value_condition. - // - // If two items in conditional_parameter_specs have the same name, they - // must have disjoint parent_value_condition. - repeated ConditionalParameterSpec conditional_parameter_specs = 10; - } - - // The available search algorithms for the Study. - enum Algorithm { - // The default algorithm used by Vertex AI for [hyperparameter - // tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) - // and [Vertex Vizier](https://cloud.google.com/vertex-ai/docs/vizier). - ALGORITHM_UNSPECIFIED = 0; - - // Simple grid search within the feasible space. To use grid search, - // all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`. - GRID_SEARCH = 2; - - // Simple random search within the feasible space. - RANDOM_SEARCH = 3; - } - - // Describes the noise level of the repeated observations. - // - // "Noisy" means that the repeated observations with the same Trial parameters - // may lead to different metric evaluations. - enum ObservationNoise { - // The default noise level chosen by Vertex AI. - OBSERVATION_NOISE_UNSPECIFIED = 0; - - // Vertex AI assumes that the objective function is (nearly) - // perfectly reproducible, and will never repeat the same Trial - // parameters. - LOW = 1; - - // Vertex AI will estimate the amount of noise in metric - // evaluations, it may repeat the same Trial parameters more than once. - HIGH = 2; - } - - // This indicates which measurement to use if/when the service automatically - // selects the final measurement from previously reported intermediate - // measurements. Choose this based on two considerations: - // A) Do you expect your measurements to monotonically improve? - // If so, choose LAST_MEASUREMENT. On the other hand, if you're in a - // situation where your system can "over-train" and you expect the - // performance to get better for a while but then start declining, - // choose BEST_MEASUREMENT. - // B) Are your measurements significantly noisy and/or irreproducible? - // If so, BEST_MEASUREMENT will tend to be over-optimistic, and it - // may be better to choose LAST_MEASUREMENT. - // If both or neither of (A) and (B) apply, it doesn't matter which - // selection type is chosen. - enum MeasurementSelectionType { - // Will be treated as LAST_MEASUREMENT. - MEASUREMENT_SELECTION_TYPE_UNSPECIFIED = 0; - - // Use the last measurement reported. - LAST_MEASUREMENT = 1; - - // Use the best measurement reported. - BEST_MEASUREMENT = 2; - } - - // Required. Metric specs for the Study. - repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The set of parameters to tune. - repeated ParameterSpec parameters = 2 [(google.api.field_behavior) = REQUIRED]; - - // The search algorithm specified for the Study. - Algorithm algorithm = 3; - - // The observation noise level of the study. - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - ObservationNoise observation_noise = 6; - - // Describe which measurement selection type will be used - MeasurementSelectionType measurement_selection_type = 7; -} - -// A message representing a Measurement of a Trial. A Measurement contains -// the Metrics got by executing a Trial using suggested hyperparameter -// values. -message Measurement { - // A message representing a metric in the measurement. - message Metric { - // Output only. The ID of the Metric. The Metric should be defined in - // [StudySpec's Metrics][google.cloud.aiplatform.v1.StudySpec.metrics]. - string metric_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value for this metric. - double value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. Time that the Trial has been running at the point of this Measurement. - google.protobuf.Duration elapsed_duration = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of steps the machine learning model has been trained for. - // Must be non-negative. - int64 step_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of metrics got by evaluating the objective functions using suggested - // Parameter values. - repeated Metric metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto b/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto deleted file mode 100644 index 6e469a97..00000000 --- a/owl-bot-staging/v1/protos/google/cloud/aiplatform/v1/training_pipeline.proto +++ /dev/null @@ -1,354 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1/encryption_spec.proto"; -import "google/cloud/aiplatform/v1/io.proto"; -import "google/cloud/aiplatform/v1/machine_resources.proto"; -import "google/cloud/aiplatform/v1/manual_batch_tuning_parameters.proto"; -import "google/cloud/aiplatform/v1/model.proto"; -import "google/cloud/aiplatform/v1/pipeline_state.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; -import "google/api/annotations.proto"; - -option csharp_namespace = "Google.Cloud.AIPlatform.V1"; -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TrainingPipelineProto"; -option java_package = "com.google.cloud.aiplatform.v1"; -option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; -option ruby_package = "Google::Cloud::AIPlatform::V1"; - -// The TrainingPipeline orchestrates tasks associated with training a Model. It -// always executes the training task, and optionally may also -// export data from Vertex AI's Dataset which becomes the training input, -// [upload][google.cloud.aiplatform.v1.ModelService.UploadModel] the Model to Vertex AI, and evaluate the -// Model. -message TrainingPipeline { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/TrainingPipeline" - pattern: "projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}" - }; - - // Output only. Resource name of the TrainingPipeline. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The user-defined name of this TrainingPipeline. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Specifies Vertex AI owned input data that may be used for training the - // Model. The TrainingPipeline's [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] should make - // clear whether this config is used and if there are any special requirements - // on how it should be filled. If nothing about this config is mentioned in - // the [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], then it should be assumed that the - // TrainingPipeline does not depend on this configuration. - InputDataConfig input_data_config = 3; - - // Required. A Google Cloud Storage path to the YAML file that defines the training task - // which is responsible for producing the model artifact, and may also include - // additional auxiliary work. - // The definition files that can be used here are found in - // gs://google-cloud-aiplatform/schema/trainingjob/definition/. - // Note: The URI given on output will be immutable and probably different, - // including the URI scheme, than the one given on input. The output URI will - // point to a location where the user only has a read access. - string training_task_definition = 4 [(google.api.field_behavior) = REQUIRED]; - - // Required. The training task's parameter(s), as specified in the - // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s `inputs`. - google.protobuf.Value training_task_inputs = 5 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The metadata information as specified in the [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition]'s - // `metadata`. This metadata is an auxiliary runtime and final information - // about the training task. While the pipeline is running this information is - // populated only at a best effort basis. Only present if the - // pipeline's [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] contains `metadata` object. - google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Describes the Model that may be uploaded (via [ModelService.UploadModel][google.cloud.aiplatform.v1.ModelService.UploadModel]) - // by this TrainingPipeline. The TrainingPipeline's - // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition] should make clear whether this Model - // description should be populated, and if there are any special requirements - // regarding how it should be filled. If nothing is mentioned in the - // [training_task_definition][google.cloud.aiplatform.v1.TrainingPipeline.training_task_definition], then it should be assumed that this field - // should not be filled and the training task either uploads the Model without - // a need of this information, or that training task does not support - // uploading a Model as part of the pipeline. - // When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and - // the trained Model had been uploaded into Vertex AI, then the - // model_to_upload's resource [name][google.cloud.aiplatform.v1.Model.name] is populated. The Model - // is always uploaded into the Project and Location in which this pipeline - // is. - Model model_to_upload = 7; - - // Output only. The detailed state of the pipeline. - PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or - // `PIPELINE_STATE_CANCELLED`. - google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline was created. - google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline for the first time entered the - // `PIPELINE_STATE_RUNNING` state. - google.protobuf.Timestamp start_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline entered any of the following states: - // `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, - // `PIPELINE_STATE_CANCELLED`. - google.protobuf.Timestamp end_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline was most recently updated. - google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The labels with user-defined metadata to organize TrainingPipelines. - // - // 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. - map labels = 15; - - // Customer-managed encryption key spec for a TrainingPipeline. If set, this - // TrainingPipeline will be secured by this key. - // - // Note: Model trained by this TrainingPipeline is also secured by this key if - // [model_to_upload][google.cloud.aiplatform.v1.TrainingPipeline.encryption_spec] is not set separately. - EncryptionSpec encryption_spec = 18; -} - -// Specifies Vertex AI owned input data to be used for training, and -// possibly evaluating, the Model. -message InputDataConfig { - // The instructions how the input data should be split between the - // training, validation and test sets. - // If no split type is provided, the [fraction_split][google.cloud.aiplatform.v1.InputDataConfig.fraction_split] is used by default. - oneof split { - // Split based on fractions defining the size of each set. - FractionSplit fraction_split = 2; - - // Split based on the provided filters for each set. - FilterSplit filter_split = 3; - - // Supported only for tabular Datasets. - // - // Split based on a predefined key. - PredefinedSplit predefined_split = 4; - - // Supported only for tabular Datasets. - // - // Split based on the timestamp of the input data pieces. - TimestampSplit timestamp_split = 5; - } - - // Only applicable to Custom and Hyperparameter Tuning TrainingPipelines. - // - // The destination of the training data to be written to. - // - // Supported destination file formats: - // * For non-tabular data: "jsonl". - // * For tabular data: "csv" and "bigquery". - // - // The following Vertex AI environment variables are passed to containers - // or python modules of the training task when this field is set: - // - // * AIP_DATA_FORMAT : Exported data format. - // * AIP_TRAINING_DATA_URI : Sharded exported training data uris. - // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. - // * AIP_TEST_DATA_URI : Sharded exported test data uris. - oneof destination { - // The Cloud Storage location where the training data is to be - // written to. In the given directory a new directory is created with - // name: - // `dataset---` - // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. - // All training input data is written into that directory. - // - // The Vertex AI environment variables representing Cloud Storage - // data URIs are represented in the Cloud Storage wildcard - // format to support sharded data. e.g.: "gs://.../training-*.jsonl" - // - // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data - // * AIP_TRAINING_DATA_URI = - // "gcs_destination/dataset---
- // - // If not specified, then results are exported to the following auto-created - // BigQuery table: - // :export_evaluated_examples__.evaluated_examples - string destination_bigquery_uri = 1; - - // If true and an export destination is specified, then the contents of the - // destination are overwritten. Otherwise, if the export destination already - // exists, then the export operation fails. - bool override_existing_table = 2; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto deleted file mode 100644 index 10863d09..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool.proto +++ /dev/null @@ -1,57 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "SpecialistPoolProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// SpecialistPool represents customers' own workforce to work on their data -// labeling jobs. It includes a group of specialist managers who are responsible -// for managing the labelers in this pool as well as customers' data labeling -// jobs associated with this pool. -// Customers create specialist pool as well as start data labeling jobs on -// Cloud, managers and labelers work with the jobs using CrowdCompute console. -message SpecialistPool { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/SpecialistPool" - pattern: "projects/{project}/locations/{location}/specialistPools/{specialist_pool}" - }; - - // Required. The resource name of the SpecialistPool. - string name = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The user-defined name of the SpecialistPool. - // The name can be up to 128 characters long and can be consist of any UTF-8 - // characters. - // This field should be unique on project-level. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The number of Specialists in this SpecialistPool. - int32 specialist_managers_count = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The email addresses of the specialists in the SpecialistPool. - repeated string specialist_manager_emails = 4; - - // Output only. The resource name of the pending data labeling jobs. - repeated string pending_data_labeling_jobs = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto deleted file mode 100644 index e6d95210..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/specialist_pool_service.proto +++ /dev/null @@ -1,207 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/operation.proto"; -import "google/cloud/aiplatform/v1beta1/specialist_pool.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "SpecialistPoolServiceProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// A service for creating and managing Customer SpecialistPools. -// When customers start Data Labeling jobs, they can reuse/create Specialist -// Pools to bring their own Specialists to label the data. -// Customers can add/remove Managers for the Specialist Pool on Cloud console, -// then Managers will get email notifications to manage Specialists and tasks on -// CrowdCompute console. -service SpecialistPoolService { - option (google.api.default_host) = "aiplatform.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Creates a SpecialistPool. - rpc CreateSpecialistPool(CreateSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*}/specialistPools" - body: "specialist_pool" - }; - option (google.api.method_signature) = "parent,specialist_pool"; - option (google.longrunning.operation_info) = { - response_type: "SpecialistPool" - metadata_type: "CreateSpecialistPoolOperationMetadata" - }; - } - - // Gets a SpecialistPool. - rpc GetSpecialistPool(GetSpecialistPoolRequest) returns (SpecialistPool) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Lists SpecialistPools in a Location. - rpc ListSpecialistPools(ListSpecialistPoolsRequest) returns (ListSpecialistPoolsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*}/specialistPools" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a SpecialistPool as well as all Specialists in the pool. - rpc DeleteSpecialistPool(DeleteSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/specialistPools/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Updates a SpecialistPool. - rpc UpdateSpecialistPool(UpdateSpecialistPoolRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - patch: "/v1beta1/{specialist_pool.name=projects/*/locations/*/specialistPools/*}" - body: "specialist_pool" - }; - option (google.api.method_signature) = "specialist_pool,update_mask"; - option (google.longrunning.operation_info) = { - response_type: "SpecialistPool" - metadata_type: "UpdateSpecialistPoolOperationMetadata" - }; - } -} - -// Request message for [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool]. -message CreateSpecialistPoolRequest { - // Required. The parent Project name for the new SpecialistPool. - // The form is `projects/{project}/locations/{location}`. - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // Required. The SpecialistPool to create. - SpecialistPool specialist_pool = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Runtime operation information for -// [SpecialistPoolService.CreateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.CreateSpecialistPool]. -message CreateSpecialistPoolOperationMetadata { - // The operation generic information. - GenericOperationMetadata generic_metadata = 1; -} - -// Request message for [SpecialistPoolService.GetSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.GetSpecialistPool]. -message GetSpecialistPoolRequest { - // Required. The name of the SpecialistPool resource. - // The form is - // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}`. - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; -} - -// Request message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools]. -message ListSpecialistPoolsRequest { - // Required. The name of the SpecialistPool's parent resource. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "locations.googleapis.com/Location" - } - ]; - - // The standard list page size. - int32 page_size = 2; - - // The standard list page token. - // Typically obtained by [ListSpecialistPoolsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListSpecialistPoolsResponse.next_page_token] of - // the previous [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools] call. Return - // first page if empty. - string page_token = 3; - - // Mask specifying which fields to read. FieldMask represents a set of - google.protobuf.FieldMask read_mask = 4; -} - -// Response message for [SpecialistPoolService.ListSpecialistPools][google.cloud.aiplatform.v1beta1.SpecialistPoolService.ListSpecialistPools]. -message ListSpecialistPoolsResponse { - // A list of SpecialistPools that matches the specified filter in the request. - repeated SpecialistPool specialist_pools = 1; - - // The standard List next-page token. - string next_page_token = 2; -} - -// Request message for [SpecialistPoolService.DeleteSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.DeleteSpecialistPool]. -message DeleteSpecialistPoolRequest { - // Required. The resource name of the SpecialistPool to delete. Format: - // `projects/{project}/locations/{location}/specialistPools/{specialist_pool}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; - - // If set to true, any specialist managers in this SpecialistPool will also be - // deleted. (Otherwise, the request will only work if the SpecialistPool has - // no specialist managers.) - bool force = 2; -} - -// Request message for [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool]. -message UpdateSpecialistPoolRequest { - // Required. The SpecialistPool which replaces the resource on the server. - SpecialistPool specialist_pool = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The update mask applies to the resource. - google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Runtime operation metadata for -// [SpecialistPoolService.UpdateSpecialistPool][google.cloud.aiplatform.v1beta1.SpecialistPoolService.UpdateSpecialistPool]. -message UpdateSpecialistPoolOperationMetadata { - // Output only. The name of the SpecialistPool to which the specialists are being added. - // Format: - // `projects/{project_id}/locations/{location_id}/specialistPools/{specialist_pool}` - string specialist_pool = 1 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/SpecialistPool" - } - ]; - - // The operation generic information. - GenericOperationMetadata generic_metadata = 2; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto deleted file mode 100644 index f4a997f3..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/study.proto +++ /dev/null @@ -1,499 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/duration.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/protobuf/wrappers.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "StudyProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// A message representing a Study. -message Study { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/Study" - pattern: "projects/{project}/locations/{location}/studies/{study}" - }; - - // Describes the Study state. - enum State { - // The study state is unspecified. - STATE_UNSPECIFIED = 0; - - // The study is active. - ACTIVE = 1; - - // The study is stopped due to an internal error. - INACTIVE = 2; - - // The study is done when the service exhausts the parameter search space - // or max_trial_count is reached. - COMPLETED = 3; - } - - // Output only. The name of a study. The study's globally unique identifier. - // Format: `projects/{project}/locations/{location}/studies/{study}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. Describes the Study, default value is empty string. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. Configuration of the Study. - StudySpec study_spec = 3 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The detailed state of a Study. - State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time at which the study was created. - google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A human readable reason why the Study is inactive. - // This should be empty if a study is ACTIVE or COMPLETED. - string inactive_reason = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; -} - -// A message representing a Trial. A Trial contains a unique set of Parameters -// that has been or will be evaluated, along with the objective metrics got by -// running the Trial. -message Trial { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/Trial" - pattern: "projects/{project}/locations/{location}/studies/{study}/trials/{trial}" - }; - - // A message representing a parameter to be tuned. - message Parameter { - // Output only. The ID of the parameter. The parameter should be defined in - // [StudySpec's Parameters][google.cloud.aiplatform.v1beta1.StudySpec.parameters]. - string parameter_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value of the parameter. - // `number_value` will be set if a parameter defined in StudySpec is - // in type 'INTEGER', 'DOUBLE' or 'DISCRETE'. - // `string_value` will be set if a parameter defined in StudySpec is - // in type 'CATEGORICAL'. - google.protobuf.Value value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Describes a Trial state. - enum State { - // The Trial state is unspecified. - STATE_UNSPECIFIED = 0; - - // Indicates that a specific Trial has been requested, but it has not yet - // been suggested by the service. - REQUESTED = 1; - - // Indicates that the Trial has been suggested. - ACTIVE = 2; - - // Indicates that the Trial should stop according to the service. - STOPPING = 3; - - // Indicates that the Trial is completed successfully. - SUCCEEDED = 4; - - // Indicates that the Trial should not be attempted again. - // The service will set a Trial to INFEASIBLE when it's done but missing - // the final_measurement. - INFEASIBLE = 5; - } - - // Output only. Resource name of the Trial assigned by the service. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The identifier of the Trial assigned by the service. - string id = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The detailed state of the Trial. - State state = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The parameters of the Trial. - repeated Parameter parameters = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The final measurement containing the objective value. - Measurement final_measurement = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of measurements that are strictly lexicographically - // ordered by their induced tuples (steps, elapsed_duration). - // These are used for early stopping computations. - repeated Measurement measurements = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the Trial was started. - google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`. - google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The identifier of the client that originally requested this Trial. - // Each client is identified by a unique client_id. When a client - // asks for a suggestion, Vizier will assign it a Trial. The client should - // evaluate the Trial, complete it, and report back to Vizier. - // If suggestion is asked again by same client_id before the Trial is - // completed, the same Trial will be returned. Multiple clients with - // different client_ids can ask for suggestions simultaneously, each of them - // will get their own Trial. - string client_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A human readable string describing why the Trial is - // infeasible. This is set only if Trial state is `INFEASIBLE`. - string infeasible_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The CustomJob name linked to the Trial. - // It's set for a HyperparameterTuningJob's Trial. - string custom_job = 11 [ - (google.api.field_behavior) = OUTPUT_ONLY, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/CustomJob" - } - ]; -} - -// Represents specification of a Study. -message StudySpec { - // Represents a metric to optimize. - message MetricSpec { - // The available types of optimization goals. - enum GoalType { - // Goal Type will default to maximize. - GOAL_TYPE_UNSPECIFIED = 0; - - // Maximize the goal metric. - MAXIMIZE = 1; - - // Minimize the goal metric. - MINIMIZE = 2; - } - - // Required. The ID of the metric. Must not contain whitespaces and must be unique - // amongst all MetricSpecs. - string metric_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The optimization goal of the metric. - GoalType goal = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents a single parameter to optimize. - message ParameterSpec { - // Value specification for a parameter in `DOUBLE` type. - message DoubleValueSpec { - // Required. Inclusive minimum value of the parameter. - double min_value = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Inclusive maximum value of the parameter. - double max_value = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Value specification for a parameter in `INTEGER` type. - message IntegerValueSpec { - // Required. Inclusive minimum value of the parameter. - int64 min_value = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Inclusive maximum value of the parameter. - int64 max_value = 2 [(google.api.field_behavior) = REQUIRED]; - } - - // Value specification for a parameter in `CATEGORICAL` type. - message CategoricalValueSpec { - // Required. The list of possible categories. - repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Value specification for a parameter in `DISCRETE` type. - message DiscreteValueSpec { - // Required. A list of possible values. - // The list should be in increasing order and at least 1e-10 apart. - // For instance, this parameter might have possible settings of 1.5, 2.5, - // and 4.0. This list should not contain more than 1,000 values. - repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents a parameter spec with condition from its parent parameter. - message ConditionalParameterSpec { - // Represents the spec to match discrete values from parent parameter. - message DiscreteValueCondition { - // Required. Matches values of the parent parameter of 'DISCRETE' type. - // All values must exist in `discrete_value_spec` of parent parameter. - // - // The Epsilon of the value matching is 1e-10. - repeated double values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents the spec to match integer values from parent parameter. - message IntValueCondition { - // Required. Matches values of the parent parameter of 'INTEGER' type. - // All values must lie in `integer_value_spec` of parent parameter. - repeated int64 values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // Represents the spec to match categorical values from parent parameter. - message CategoricalValueCondition { - // Required. Matches values of the parent parameter of 'CATEGORICAL' type. - // All values must exist in `categorical_value_spec` of parent - // parameter. - repeated string values = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // A set of parameter values from the parent ParameterSpec's feasible - // space. - oneof parent_value_condition { - // The spec for matching values from a parent parameter of - // `DISCRETE` type. - DiscreteValueCondition parent_discrete_values = 2; - - // The spec for matching values from a parent parameter of `INTEGER` - // type. - IntValueCondition parent_int_values = 3; - - // The spec for matching values from a parent parameter of - // `CATEGORICAL` type. - CategoricalValueCondition parent_categorical_values = 4; - } - - // Required. The spec for a conditional parameter. - ParameterSpec parameter_spec = 1 [(google.api.field_behavior) = REQUIRED]; - } - - // The type of scaling that should be applied to this parameter. - enum ScaleType { - // By default, no scaling is applied. - SCALE_TYPE_UNSPECIFIED = 0; - - // Scales the feasible space to (0, 1) linearly. - UNIT_LINEAR_SCALE = 1; - - // Scales the feasible space logarithmically to (0, 1). The entire - // feasible space must be strictly positive. - UNIT_LOG_SCALE = 2; - - // Scales the feasible space "reverse" logarithmically to (0, 1). The - // result is that values close to the top of the feasible space are spread - // out more than points near the bottom. The entire feasible space must be - // strictly positive. - UNIT_REVERSE_LOG_SCALE = 3; - } - - oneof parameter_value_spec { - // The value spec for a 'DOUBLE' parameter. - DoubleValueSpec double_value_spec = 2; - - // The value spec for an 'INTEGER' parameter. - IntegerValueSpec integer_value_spec = 3; - - // The value spec for a 'CATEGORICAL' parameter. - CategoricalValueSpec categorical_value_spec = 4; - - // The value spec for a 'DISCRETE' parameter. - DiscreteValueSpec discrete_value_spec = 5; - } - - // Required. The ID of the parameter. Must not contain whitespaces and must be unique - // amongst all ParameterSpecs. - string parameter_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // How the parameter should be scaled. - // Leave unset for `CATEGORICAL` parameters. - ScaleType scale_type = 6; - - // A conditional parameter node is active if the parameter's value matches - // the conditional node's parent_value_condition. - // - // If two items in conditional_parameter_specs have the same name, they - // must have disjoint parent_value_condition. - repeated ConditionalParameterSpec conditional_parameter_specs = 10; - } - - // The decay curve automated stopping rule builds a Gaussian Process - // Regressor to predict the final objective value of a Trial based on the - // already completed Trials and the intermediate measurements of the current - // Trial. Early stopping is requested for the current Trial if there is very - // low probability to exceed the optimal value found so far. - message DecayCurveAutomatedStoppingSpec { - // True if [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration] is used as the x-axis of each - // Trials Decay Curve. Otherwise, [Measurement.step_count][google.cloud.aiplatform.v1beta1.Measurement.step_count] will be used - // as the x-axis. - bool use_elapsed_duration = 1; - } - - // The median automated stopping rule stops a pending Trial if the Trial's - // best objective_value is strictly below the median 'performance' of all - // completed Trials reported up to the Trial's last measurement. - // Currently, 'performance' refers to the running average of the objective - // values reported by the Trial in each measurement. - message MedianAutomatedStoppingSpec { - // True if median automated stopping rule applies on - // [Measurement.elapsed_duration][google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration]. It means that elapsed_duration - // field of latest measurement of current Trial is used to compute median - // objective value for each completed Trials. - bool use_elapsed_duration = 1; - } - - // Configuration for ConvexStopPolicy. - message ConvexStopConfig { - // Steps used in predicting the final objective for early stopped trials. In - // general, it's set to be the same as the defined steps in training / - // tuning. When use_steps is false, this field is set to the maximum elapsed - // seconds. - int64 max_num_steps = 1; - - // Minimum number of steps for a trial to complete. Trials which do not have - // a measurement with num_steps > min_num_steps won't be considered for - // early stopping. It's ok to set it to 0, and a trial can be early stopped - // at any stage. By default, min_num_steps is set to be one-tenth of the - // max_num_steps. - // When use_steps is false, this field is set to the minimum elapsed - // seconds. - int64 min_num_steps = 2; - - // The number of Trial measurements used in autoregressive model for - // value prediction. A trial won't be considered early stopping if has fewer - // measurement points. - int64 autoregressive_order = 3; - - // The hyper-parameter name used in the tuning job that stands for learning - // rate. Leave it blank if learning rate is not in a parameter in tuning. - // The learning_rate is used to estimate the objective value of the ongoing - // trial. - string learning_rate_parameter_name = 4; - - // This bool determines whether or not the rule is applied based on - // elapsed_secs or steps. If use_seconds==false, the early stopping decision - // is made according to the predicted objective values according to the - // target steps. If use_seconds==true, elapsed_secs is used instead of - // steps. Also, in this case, the parameters max_num_steps and min_num_steps - // are overloaded to contain max_elapsed_seconds and min_elapsed_seconds. - bool use_seconds = 5; - } - - // The available search algorithms for the Study. - enum Algorithm { - // The default algorithm used by Vertex AI for [hyperparameter - // tuning](https://cloud.google.com/vertex-ai/docs/training/hyperparameter-tuning-overview) - // and [Vertex Vizier](https://cloud.google.com/vertex-ai/docs/vizier). - ALGORITHM_UNSPECIFIED = 0; - - // Simple grid search within the feasible space. To use grid search, - // all parameters must be `INTEGER`, `CATEGORICAL`, or `DISCRETE`. - GRID_SEARCH = 2; - - // Simple random search within the feasible space. - RANDOM_SEARCH = 3; - } - - // Describes the noise level of the repeated observations. - // - // "Noisy" means that the repeated observations with the same Trial parameters - // may lead to different metric evaluations. - enum ObservationNoise { - // The default noise level chosen by Vertex AI. - OBSERVATION_NOISE_UNSPECIFIED = 0; - - // Vertex AI assumes that the objective function is (nearly) - // perfectly reproducible, and will never repeat the same Trial - // parameters. - LOW = 1; - - // Vertex AI will estimate the amount of noise in metric - // evaluations, it may repeat the same Trial parameters more than once. - HIGH = 2; - } - - // This indicates which measurement to use if/when the service automatically - // selects the final measurement from previously reported intermediate - // measurements. Choose this based on two considerations: - // A) Do you expect your measurements to monotonically improve? - // If so, choose LAST_MEASUREMENT. On the other hand, if you're in a - // situation where your system can "over-train" and you expect the - // performance to get better for a while but then start declining, - // choose BEST_MEASUREMENT. - // B) Are your measurements significantly noisy and/or irreproducible? - // If so, BEST_MEASUREMENT will tend to be over-optimistic, and it - // may be better to choose LAST_MEASUREMENT. - // If both or neither of (A) and (B) apply, it doesn't matter which - // selection type is chosen. - enum MeasurementSelectionType { - // Will be treated as LAST_MEASUREMENT. - MEASUREMENT_SELECTION_TYPE_UNSPECIFIED = 0; - - // Use the last measurement reported. - LAST_MEASUREMENT = 1; - - // Use the best measurement reported. - BEST_MEASUREMENT = 2; - } - - oneof automated_stopping_spec { - // The automated early stopping spec using decay curve rule. - DecayCurveAutomatedStoppingSpec decay_curve_stopping_spec = 4; - - // The automated early stopping spec using median rule. - MedianAutomatedStoppingSpec median_automated_stopping_spec = 5; - - // The automated early stopping using convex stopping rule. - ConvexStopConfig convex_stop_config = 8; - } - - // Required. Metric specs for the Study. - repeated MetricSpec metrics = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The set of parameters to tune. - repeated ParameterSpec parameters = 2 [(google.api.field_behavior) = REQUIRED]; - - // The search algorithm specified for the Study. - Algorithm algorithm = 3; - - // The observation noise level of the study. - // Currently only supported by the Vizier service. Not supported by - // HyperparamterTuningJob or TrainingPipeline. - ObservationNoise observation_noise = 6; - - // Describe which measurement selection type will be used - MeasurementSelectionType measurement_selection_type = 7; -} - -// A message representing a Measurement of a Trial. A Measurement contains -// the Metrics got by executing a Trial using suggested hyperparameter -// values. -message Measurement { - // A message representing a metric in the measurement. - message Metric { - // Output only. The ID of the Metric. The Metric should be defined in - // [StudySpec's Metrics][google.cloud.aiplatform.v1beta1.StudySpec.metrics]. - string metric_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The value for this metric. - double value = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // Output only. Time that the Trial has been running at the point of this Measurement. - google.protobuf.Duration elapsed_duration = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of steps the machine learning model has been trained for. - // Must be non-negative. - int64 step_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. A list of metrics got by evaluating the objective functions using suggested - // Parameter values. - repeated Metric metrics = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto deleted file mode 100644 index d19d280f..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard.proto +++ /dev/null @@ -1,84 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// Tensorboard is a physical database that stores users' training metrics. -// A default Tensorboard is provided in each region of a GCP project. -// If needed users can also create extra Tensorboards in their projects. -message Tensorboard { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/Tensorboard" - pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}" - }; - - // Output only. Name of the Tensorboard. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. User provided name of this Tensorboard. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Description of this Tensorboard. - string description = 3; - - // Customer-managed encryption key spec for a Tensorboard. If set, this - // Tensorboard and all sub-resources of this Tensorboard will be secured by - // this key. - EncryptionSpec encryption_spec = 11; - - // Output only. Consumer project Cloud Storage path prefix used to store blob data, which - // can either be a bucket or directory. Does not end with a '/'. - string blob_storage_path_prefix = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The number of Runs stored in this Tensorboard. - int32 run_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Timestamp when this Tensorboard was created. - google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Timestamp when this Tensorboard was last updated. - google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The labels with user-defined metadata to organize your Tensorboards. - // - // 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. - // No more than 64 user labels can be associated with one Tensorboard - // (System labels are excluded). - // - // See https://goo.gl/xmQnxf for more information and examples of labels. - // System reserved label keys are prefixed with "aiplatform.googleapis.com/" - // and are immutable. - map labels = 8; - - // Used to perform a consistent read-modify-write updates. If not set, a blind - // "overwrite" update happens. - string etag = 9; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto deleted file mode 100644 index 793ce91d..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_data.proto +++ /dev/null @@ -1,99 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardDataProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// All the data stored in a TensorboardTimeSeries. -message TimeSeriesData { - // Required. The ID of the TensorboardTimeSeries, which will become the final component - // of the TensorboardTimeSeries' resource name - string tensorboard_time_series_id = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. Immutable. The value type of this time series. All the values in this time series data - // must match this value type. - TensorboardTimeSeries.ValueType value_type = 2 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Required. Data points in this time series. - repeated TimeSeriesDataPoint values = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// A TensorboardTimeSeries data point. -message TimeSeriesDataPoint { - // Value of this time series data point. - oneof value { - // A scalar value. - Scalar scalar = 3; - - // A tensor value. - TensorboardTensor tensor = 4; - - // A blob sequence value. - TensorboardBlobSequence blobs = 5; - } - - // Wall clock timestamp when this data point is generated by the end user. - google.protobuf.Timestamp wall_time = 1; - - // Step index of this data point within the run. - int64 step = 2; -} - -// One point viewable on a scalar metric plot. -message Scalar { - // Value of the point at this step / timestamp. - double value = 1; -} - -// One point viewable on a tensor metric plot. -message TensorboardTensor { - // Required. Serialized form of - // https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto - bytes value = 1 [(google.api.field_behavior) = REQUIRED]; - - // Optional. Version number of TensorProto used to serialize [value][google.cloud.aiplatform.v1beta1.TensorboardTensor.value]. - int32 version_number = 2 [(google.api.field_behavior) = OPTIONAL]; -} - -// One point viewable on a blob metric plot, but mostly just a wrapper message -// to work around repeated fields can't be used directly within `oneof` fields. -message TensorboardBlobSequence { - // List of blobs contained within the sequence. - repeated TensorboardBlob values = 1; -} - -// One blob (e.g, image, graph) viewable on a blob metric plot. -message TensorboardBlob { - // Output only. A URI safe key uniquely identifying a blob. Can be used to locate the blob - // stored in the Cloud Storage bucket of the consumer project. - string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Optional. The bytes of the blob is not present unless it's returned by the - // ReadTensorboardBlobData endpoint. - bytes data = 2 [(google.api.field_behavior) = OPTIONAL]; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto deleted file mode 100644 index 6d8b330f..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardExperimentProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// A TensorboardExperiment is a group of TensorboardRuns, that are typically the -// results of a training job run, in a Tensorboard. -message TensorboardExperiment { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/TensorboardExperiment" - pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}" - }; - - // Output only. Name of the TensorboardExperiment. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // User provided name of this TensorboardExperiment. - string display_name = 2; - - // Description of this TensorboardExperiment. - string description = 3; - - // Output only. Timestamp when this TensorboardExperiment was created. - google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Timestamp when this TensorboardExperiment was last updated. - google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The labels with user-defined metadata to organize your Datasets. - // - // 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. - // No more than 64 user labels can be associated with one Dataset (System - // labels are excluded). - // - // See https://goo.gl/xmQnxf for more information and examples of labels. - // System reserved label keys are prefixed with "aiplatform.googleapis.com/" - // and are immutable. Following system labels exist for each Dataset: - // * "aiplatform.googleapis.com/dataset_metadata_schema": - // - output only, its value is the - // [metadata_schema's][metadata_schema_uri] title. - map labels = 6; - - // Used to perform consistent read-modify-write updates. If not set, a blind - // "overwrite" update happens. - string etag = 7; - - // Immutable. Source of the TensorboardExperiment. Example: a custom training job. - string source = 8 [(google.api.field_behavior) = IMMUTABLE]; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto deleted file mode 100644 index db946ecd..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_run.proto +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardRunProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// TensorboardRun maps to a specific execution of a training job with a given -// set of hyperparameter values, model definition, dataset, etc -message TensorboardRun { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/TensorboardRun" - pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}" - }; - - // Output only. Name of the TensorboardRun. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. User provided name of this TensorboardRun. - // This value must be unique among all TensorboardRuns - // belonging to the same parent TensorboardExperiment. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Description of this TensorboardRun. - string description = 3; - - // Output only. Timestamp when this TensorboardRun was created. - google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Timestamp when this TensorboardRun was last updated. - google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; - - map labels = 8; - - // Used to perform a consistent read-modify-write updates. If not set, a blind - // "overwrite" update happens. - string etag = 9; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto deleted file mode 100644 index 3046133f..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_service.proto +++ /dev/null @@ -1,856 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/annotations.proto"; -import "google/api/client.proto"; -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/operation.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard_data.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard_run.proto"; -import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto"; -import "google/longrunning/operations.proto"; -import "google/protobuf/field_mask.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardServiceProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// TensorboardService -service TensorboardService { - option (google.api.default_host) = "aiplatform.googleapis.com"; - option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform"; - - // Creates a Tensorboard. - rpc CreateTensorboard(CreateTensorboardRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*}/tensorboards" - body: "tensorboard" - }; - option (google.api.method_signature) = "parent,tensorboard"; - option (google.longrunning.operation_info) = { - response_type: "Tensorboard" - metadata_type: "CreateTensorboardOperationMetadata" - }; - } - - // Gets a Tensorboard. - rpc GetTensorboard(GetTensorboardRequest) returns (Tensorboard) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates a Tensorboard. - rpc UpdateTensorboard(UpdateTensorboardRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - patch: "/v1beta1/{tensorboard.name=projects/*/locations/*/tensorboards/*}" - body: "tensorboard" - }; - option (google.api.method_signature) = "tensorboard,update_mask"; - option (google.longrunning.operation_info) = { - response_type: "Tensorboard" - metadata_type: "UpdateTensorboardOperationMetadata" - }; - } - - // Lists Tensorboards in a Location. - rpc ListTensorboards(ListTensorboardsRequest) returns (ListTensorboardsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*}/tensorboards" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a Tensorboard. - rpc DeleteTensorboard(DeleteTensorboardRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Creates a TensorboardExperiment. - rpc CreateTensorboardExperiment(CreateTensorboardExperimentRequest) returns (TensorboardExperiment) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments" - body: "tensorboard_experiment" - }; - option (google.api.method_signature) = "parent,tensorboard_experiment,tensorboard_experiment_id"; - } - - // Gets a TensorboardExperiment. - rpc GetTensorboardExperiment(GetTensorboardExperimentRequest) returns (TensorboardExperiment) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates a TensorboardExperiment. - rpc UpdateTensorboardExperiment(UpdateTensorboardExperimentRequest) returns (TensorboardExperiment) { - option (google.api.http) = { - patch: "/v1beta1/{tensorboard_experiment.name=projects/*/locations/*/tensorboards/*/experiments/*}" - body: "tensorboard_experiment" - }; - option (google.api.method_signature) = "tensorboard_experiment,update_mask"; - } - - // Lists TensorboardExperiments in a Location. - rpc ListTensorboardExperiments(ListTensorboardExperimentsRequest) returns (ListTensorboardExperimentsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a TensorboardExperiment. - rpc DeleteTensorboardExperiment(DeleteTensorboardExperimentRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Creates a TensorboardRun. - rpc CreateTensorboardRun(CreateTensorboardRunRequest) returns (TensorboardRun) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" - body: "tensorboard_run" - }; - option (google.api.method_signature) = "parent,tensorboard_run,tensorboard_run_id"; - } - - // Gets a TensorboardRun. - rpc GetTensorboardRun(GetTensorboardRunRequest) returns (TensorboardRun) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates a TensorboardRun. - rpc UpdateTensorboardRun(UpdateTensorboardRunRequest) returns (TensorboardRun) { - option (google.api.http) = { - patch: "/v1beta1/{tensorboard_run.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" - body: "tensorboard_run" - }; - option (google.api.method_signature) = "tensorboard_run,update_mask"; - } - - // Lists TensorboardRuns in a Location. - rpc ListTensorboardRuns(ListTensorboardRunsRequest) returns (ListTensorboardRunsResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a TensorboardRun. - rpc DeleteTensorboardRun(DeleteTensorboardRunRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Creates a TensorboardTimeSeries. - rpc CreateTensorboardTimeSeries(CreateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { - option (google.api.http) = { - post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" - body: "tensorboard_time_series" - }; - option (google.api.method_signature) = "parent,tensorboard_time_series"; - } - - // Gets a TensorboardTimeSeries. - rpc GetTensorboardTimeSeries(GetTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { - option (google.api.http) = { - get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" - }; - option (google.api.method_signature) = "name"; - } - - // Updates a TensorboardTimeSeries. - rpc UpdateTensorboardTimeSeries(UpdateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) { - option (google.api.http) = { - patch: "/v1beta1/{tensorboard_time_series.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" - body: "tensorboard_time_series" - }; - option (google.api.method_signature) = "tensorboard_time_series,update_mask"; - } - - // Lists TensorboardTimeSeries in a Location. - rpc ListTensorboardTimeSeries(ListTensorboardTimeSeriesRequest) returns (ListTensorboardTimeSeriesResponse) { - option (google.api.http) = { - get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries" - }; - option (google.api.method_signature) = "parent"; - } - - // Deletes a TensorboardTimeSeries. - rpc DeleteTensorboardTimeSeries(DeleteTensorboardTimeSeriesRequest) returns (google.longrunning.Operation) { - option (google.api.http) = { - delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}" - }; - option (google.api.method_signature) = "name"; - option (google.longrunning.operation_info) = { - response_type: "google.protobuf.Empty" - metadata_type: "DeleteOperationMetadata" - }; - } - - // Reads a TensorboardTimeSeries' data. Data is returned in paginated - // responses. By default, if the number of data points stored is less than - // 1000, all data will be returned. Otherwise, 1000 data points will be - // randomly selected from this time series and returned. This value can be - // changed by changing max_data_points. - rpc ReadTensorboardTimeSeriesData(ReadTensorboardTimeSeriesDataRequest) returns (ReadTensorboardTimeSeriesDataResponse) { - option (google.api.http) = { - get: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:read" - }; - option (google.api.method_signature) = "tensorboard_time_series"; - } - - // Gets bytes of TensorboardBlobs. - // This is to allow reading blob data stored in consumer project's Cloud - // Storage bucket without users having to obtain Cloud Storage access - // permission. - rpc ReadTensorboardBlobData(ReadTensorboardBlobDataRequest) returns (stream ReadTensorboardBlobDataResponse) { - option (google.api.http) = { - get: "/v1beta1/{time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:readBlobData" - }; - option (google.api.method_signature) = "time_series"; - } - - // Write time series data points into multiple TensorboardTimeSeries under - // a TensorboardRun. If any data fail to be ingested, an error will be - // returned. - rpc WriteTensorboardRunData(WriteTensorboardRunDataRequest) returns (WriteTensorboardRunDataResponse) { - option (google.api.http) = { - post: "/v1beta1/{tensorboard_run=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}:write" - body: "*" - }; - option (google.api.method_signature) = "tensorboard_run,time_series_data"; - } - - // Exports a TensorboardTimeSeries' data. Data is returned in paginated - // responses. - rpc ExportTensorboardTimeSeriesData(ExportTensorboardTimeSeriesDataRequest) returns (ExportTensorboardTimeSeriesDataResponse) { - option (google.api.http) = { - post: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:exportTensorboardTimeSeries" - body: "*" - }; - option (google.api.method_signature) = "tensorboard_time_series"; - } -} - -// Request message for [TensorboardService.CreateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard]. -message CreateTensorboardRequest { - // Required. The resource name of the Location to create the Tensorboard in. - // Format: `projects/{project}/locations/{location}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/Tensorboard" - } - ]; - - // Required. The Tensorboard to create. - Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.GetTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboard]. -message GetTensorboardRequest { - // Required. The name of the Tensorboard resource. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/Tensorboard" - } - ]; -} - -// Request message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards]. -message ListTensorboardsRequest { - // Required. The resource name of the Location to list Tensorboards. - // Format: - // 'projects/{project}/locations/{location}' - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "aiplatform.googleapis.com/Tensorboard" - } - ]; - - // Lists the Tensorboards that match the filter expression. - string filter = 2; - - // The maximum number of Tensorboards to return. The service may return - // fewer than this value. If unspecified, at most 100 Tensorboards will be - // returned. The maximum value is 100; values above 100 will be coerced to - // 100. - int32 page_size = 3; - - // A page token, received from a previous - // [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to - // [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] must - // match the call that provided the page token. - string page_token = 4; - - // Field to use to sort the list. - string order_by = 5; - - // Mask specifying which fields to read. - google.protobuf.FieldMask read_mask = 6; -} - -// Response message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards]. -message ListTensorboardsResponse { - // The Tensorboards mathching the request. - repeated Tensorboard tensorboards = 1; - - // A token, which can be sent as [ListTensorboardsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardsRequest.page_token] - // to retrieve the next page. If this field is omitted, there are no - // subsequent pages. - string next_page_token = 2; -} - -// Request message for [TensorboardService.UpdateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboard]. -message UpdateTensorboardRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // Tensorboard resource by the update. - // The fields specified in the update_mask are relative to the resource, not - // the full request. A field will be overwritten if it is in the mask. If the - // user does not provide a mask then all fields will be overwritten if new - // values are specified. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The Tensorboard's `name` field is used to identify the - // Tensorboard to be updated. Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.DeleteTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboard]. -message DeleteTensorboardRequest { - // Required. The name of the Tensorboard to be deleted. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/Tensorboard" - } - ]; -} - -// Request message for [TensorboardService.CreateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment]. -message CreateTensorboardExperimentRequest { - // Required. The resource name of the Tensorboard to create the TensorboardExperiment - // in. Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardExperiment" - } - ]; - - // The TensorboardExperiment to create. - TensorboardExperiment tensorboard_experiment = 2; - - // Required. The ID to use for the Tensorboard experiment, which will become the final - // component of the Tensorboard experiment's resource name. - // - // This value should be 1-128 characters, and valid characters - // are /[a-z][0-9]-/. - string tensorboard_experiment_id = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.GetTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardExperiment]. -message GetTensorboardExperimentRequest { - // Required. The name of the TensorboardExperiment resource. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardExperiment" - } - ]; -} - -// Request message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments]. -message ListTensorboardExperimentsRequest { - // Required. The resource name of the Tensorboard to list TensorboardExperiments. - // Format: - // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}' - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "aiplatform.googleapis.com/TensorboardExperiment" - } - ]; - - // Lists the TensorboardExperiments that match the filter expression. - string filter = 2; - - // The maximum number of TensorboardExperiments to return. The service may - // return fewer than this value. If unspecified, at most 50 - // TensorboardExperiments will be returned. The maximum value is 1000; values - // above 1000 will be coerced to 1000. - int32 page_size = 3; - - // A page token, received from a previous - // [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to - // [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] must - // match the call that provided the page token. - string page_token = 4; - - // Field to use to sort the list. - string order_by = 5; - - // Mask specifying which fields to read. - google.protobuf.FieldMask read_mask = 6; -} - -// Response message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments]. -message ListTensorboardExperimentsResponse { - // The TensorboardExperiments mathching the request. - repeated TensorboardExperiment tensorboard_experiments = 1; - - // A token, which can be sent as - // [ListTensorboardExperimentsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardExperimentsRequest.page_token] to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Request message for [TensorboardService.UpdateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardExperiment]. -message UpdateTensorboardExperimentRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // TensorboardExperiment resource by the update. - // The fields specified in the update_mask are relative to the resource, not - // the full request. A field will be overwritten if it is in the mask. If the - // user does not provide a mask then all fields will be overwritten if new - // values are specified. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The TensorboardExperiment's `name` field is used to identify the - // TensorboardExperiment to be updated. Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - TensorboardExperiment tensorboard_experiment = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.DeleteTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardExperiment]. -message DeleteTensorboardExperimentRequest { - // Required. The name of the TensorboardExperiment to be deleted. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardExperiment" - } - ]; -} - -// Request message for [TensorboardService.CreateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardRun]. -message CreateTensorboardRunRequest { - // Required. The resource name of the Tensorboard to create the TensorboardRun in. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardRun" - } - ]; - - // Required. The TensorboardRun to create. - TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED]; - - // Required. The ID to use for the Tensorboard run, which will become the final - // component of the Tensorboard run's resource name. - // - // This value should be 1-128 characters, and valid characters - // are /[a-z][0-9]-/. - string tensorboard_run_id = 3 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.GetTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardRun]. -message GetTensorboardRunRequest { - // Required. The name of the TensorboardRun resource. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardRun" - } - ]; -} - -// Request message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData]. -message ReadTensorboardBlobDataRequest { - // Required. The resource name of the TensorboardTimeSeries to list Blobs. - // Format: - // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}' - string time_series = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; - - // IDs of the blobs to read. - repeated string blob_ids = 2; -} - -// Response message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData]. -message ReadTensorboardBlobDataResponse { - // Blob messages containing blob bytes. - repeated TensorboardBlob blobs = 1; -} - -// Request message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns]. -message ListTensorboardRunsRequest { - // Required. The resource name of the Tensorboard to list TensorboardRuns. - // Format: - // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}' - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "aiplatform.googleapis.com/TensorboardRun" - } - ]; - - // Lists the TensorboardRuns that match the filter expression. - string filter = 2; - - // The maximum number of TensorboardRuns to return. The service may return - // fewer than this value. If unspecified, at most 50 TensorboardRuns will be - // returned. The maximum value is 1000; values above 1000 will be coerced to - // 1000. - int32 page_size = 3; - - // A page token, received from a previous - // [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to - // [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] must - // match the call that provided the page token. - string page_token = 4; - - // Field to use to sort the list. - string order_by = 5; - - // Mask specifying which fields to read. - google.protobuf.FieldMask read_mask = 6; -} - -// Response message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns]. -message ListTensorboardRunsResponse { - // The TensorboardRuns mathching the request. - repeated TensorboardRun tensorboard_runs = 1; - - // A token, which can be sent as [ListTensorboardRunsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardRunsRequest.page_token] to - // retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Request message for [TensorboardService.UpdateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardRun]. -message UpdateTensorboardRunRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // TensorboardRun resource by the update. - // The fields specified in the update_mask are relative to the resource, not - // the full request. A field will be overwritten if it is in the mask. If the - // user does not provide a mask then all fields will be overwritten if new - // values are specified. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The TensorboardRun's `name` field is used to identify the TensorboardRun to - // be updated. Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.DeleteTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardRun]. -message DeleteTensorboardRunRequest { - // Required. The name of the TensorboardRun to be deleted. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardRun" - } - ]; -} - -// Request message for [TensorboardService.CreateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardTimeSeries]. -message CreateTensorboardTimeSeriesRequest { - // Required. The resource name of the TensorboardRun to create the - // TensorboardTimeSeries in. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; - - // Optional. The user specified unique ID to use for the TensorboardTimeSeries, which - // will become the final component of the TensorboardTimeSeries's resource - // name. Ref: go/ucaip-user-specified-id - // - // This value should match "[a-z0-9][a-z0-9-]{0, 127}" - string tensorboard_time_series_id = 3 [(google.api.field_behavior) = OPTIONAL]; - - // Required. The TensorboardTimeSeries to create. - TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.GetTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardTimeSeries]. -message GetTensorboardTimeSeriesRequest { - // Required. The name of the TensorboardTimeSeries resource. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; -} - -// Request message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries]. -message ListTensorboardTimeSeriesRequest { - // Required. The resource name of the TensorboardRun to list TensorboardTimeSeries. - // Format: - // 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}' - string parent = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - child_type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; - - // Lists the TensorboardTimeSeries that match the filter expression. - string filter = 2; - - // The maximum number of TensorboardTimeSeries to return. The service may - // return fewer than this value. If unspecified, at most 50 - // TensorboardTimeSeries will be returned. The maximum value is 1000; values - // above 1000 will be coerced to 1000. - int32 page_size = 3; - - // A page token, received from a previous - // [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to - // [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] must - // match the call that provided the page token. - string page_token = 4; - - // Field to use to sort the list. - string order_by = 5; - - // Mask specifying which fields to read. - google.protobuf.FieldMask read_mask = 6; -} - -// Response message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries]. -message ListTensorboardTimeSeriesResponse { - // The TensorboardTimeSeries mathching the request. - repeated TensorboardTimeSeries tensorboard_time_series = 1; - - // A token, which can be sent as - // [ListTensorboardTimeSeriesRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardTimeSeriesRequest.page_token] to retrieve the next page. - // If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Request message for [TensorboardService.UpdateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardTimeSeries]. -message UpdateTensorboardTimeSeriesRequest { - // Required. Field mask is used to specify the fields to be overwritten in the - // TensorboardTimeSeries resource by the update. - // The fields specified in the update_mask are relative to the resource, not - // the full request. A field will be overwritten if it is in the mask. If the - // user does not provide a mask then all fields will be overwritten if new - // values are specified. - google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED]; - - // Required. The TensorboardTimeSeries' `name` field is used to identify the - // TensorboardTimeSeries to be updated. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Request message for [TensorboardService.DeleteTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardTimeSeries]. -message DeleteTensorboardTimeSeriesRequest { - // Required. The name of the TensorboardTimeSeries to be deleted. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - string name = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; -} - -// Request message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData]. -message ReadTensorboardTimeSeriesDataRequest { - // Required. The resource name of the TensorboardTimeSeries to read data from. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - string tensorboard_time_series = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; - - // The maximum number of TensorboardTimeSeries' data to return. - // - // This value should be a positive integer. - // This value can be set to -1 to return all data. - int32 max_data_points = 2; - - // Reads the TensorboardTimeSeries' data that match the filter expression. - string filter = 3; -} - -// Response message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData]. -message ReadTensorboardTimeSeriesDataResponse { - // The returned time series data. - TimeSeriesData time_series_data = 1; -} - -// Request message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData]. -message WriteTensorboardRunDataRequest { - // Required. The resource name of the TensorboardRun to write data to. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}` - string tensorboard_run = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardRun" - } - ]; - - // Required. The TensorboardTimeSeries data to write. - // Values with in a time series are indexed by their step value. - // Repeated writes to the same step will overwrite the existing value for that - // step. - // The upper limit of data points per write request is 5000. - repeated TimeSeriesData time_series_data = 2 [(google.api.field_behavior) = REQUIRED]; -} - -// Response message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData]. -message WriteTensorboardRunDataResponse { - -} - -// Request message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData]. -message ExportTensorboardTimeSeriesDataRequest { - // Required. The resource name of the TensorboardTimeSeries to export data from. - // Format: - // `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}` - string tensorboard_time_series = 1 [ - (google.api.field_behavior) = REQUIRED, - (google.api.resource_reference) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - } - ]; - - // Exports the TensorboardTimeSeries' data that match the filter expression. - string filter = 2; - - // The maximum number of data points to return per page. - // The default page_size will be 1000. Values must be between 1 and 10000. - // Values above 10000 will be coerced to 10000. - int32 page_size = 3; - - // A page token, received from a previous - // [TensorboardService.ExportTensorboardTimeSeries][] call. - // Provide this to retrieve the subsequent page. - // - // When paginating, all other parameters provided to - // [TensorboardService.ExportTensorboardTimeSeries][] must - // match the call that provided the page token. - string page_token = 4; - - // Field to use to sort the TensorboardTimeSeries' data. - // By default, TensorboardTimeSeries' data will be returned in a pseudo random - // order. - string order_by = 5; -} - -// Response message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData]. -message ExportTensorboardTimeSeriesDataResponse { - // The returned time series data points. - repeated TimeSeriesDataPoint time_series_data_points = 1; - - // A token, which can be sent as - // [ExportTensorboardTimeSeriesRequest.page_token][] to retrieve the next - // page. If this field is omitted, there are no subsequent pages. - string next_page_token = 2; -} - -// Details of operations that perform create Tensorboard. -message CreateTensorboardOperationMetadata { - // Operation metadata for Tensorboard. - GenericOperationMetadata generic_metadata = 1; -} - -// Details of operations that perform update Tensorboard. -message UpdateTensorboardOperationMetadata { - // Operation metadata for Tensorboard. - GenericOperationMetadata generic_metadata = 1; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto deleted file mode 100644 index 1a37dd96..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto +++ /dev/null @@ -1,104 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/protobuf/timestamp.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TensorboardTimeSeriesProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// TensorboardTimeSeries maps to times series produced in training runs -message TensorboardTimeSeries { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/TensorboardTimeSeries" - pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}" - }; - - // Describes metadata for a TensorboardTimeSeries. - message Metadata { - // Output only. Max step index of all data points within a TensorboardTimeSeries. - int64 max_step = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Max wall clock timestamp of all data points within a - // TensorboardTimeSeries. - google.protobuf.Timestamp max_wall_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. The largest blob sequence length (number of blobs) of all data points in - // this time series, if its ValueType is BLOB_SEQUENCE. - int64 max_blob_sequence_length = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; - } - - // An enum representing the value type of a TensorboardTimeSeries. - enum ValueType { - // The value type is unspecified. - VALUE_TYPE_UNSPECIFIED = 0; - - // Used for TensorboardTimeSeries that is a list of scalars. - // E.g. accuracy of a model over epochs/time. - SCALAR = 1; - - // Used for TensorboardTimeSeries that is a list of tensors. - // E.g. histograms of weights of layer in a model over epoch/time. - TENSOR = 2; - - // Used for TensorboardTimeSeries that is a list of blob sequences. - // E.g. set of sample images with labels over epochs/time. - BLOB_SEQUENCE = 3; - } - - // Output only. Name of the TensorboardTimeSeries. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. User provided name of this TensorboardTimeSeries. - // This value should be unique among all TensorboardTimeSeries resources - // belonging to the same TensorboardRun resource (parent resource). - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Description of this TensorboardTimeSeries. - string description = 3; - - // Required. Immutable. Type of TensorboardTimeSeries value. - ValueType value_type = 4 [ - (google.api.field_behavior) = REQUIRED, - (google.api.field_behavior) = IMMUTABLE - ]; - - // Output only. Timestamp when this TensorboardTimeSeries was created. - google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Timestamp when this TensorboardTimeSeries was last updated. - google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Used to perform a consistent read-modify-write updates. If not set, a blind - // "overwrite" update happens. - string etag = 7; - - // Immutable. Name of the plugin this time series pertain to. Such as Scalar, Tensor, - // Blob - string plugin_name = 8 [(google.api.field_behavior) = IMMUTABLE]; - - // Data of the current plugin, with the size limited to 65KB. - bytes plugin_data = 9; - - // Output only. Scalar, Tensor, or Blob metadata for this TensorboardTimeSeries. - Metadata metadata = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; -} diff --git a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto b/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto deleted file mode 100644 index 6495149d..00000000 --- a/owl-bot-staging/v1beta1/protos/google/cloud/aiplatform/v1beta1/training_pipeline.proto +++ /dev/null @@ -1,351 +0,0 @@ -// Copyright 2021 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. - -syntax = "proto3"; - -package google.cloud.aiplatform.v1beta1; - -import "google/api/field_behavior.proto"; -import "google/api/resource.proto"; -import "google/cloud/aiplatform/v1beta1/encryption_spec.proto"; -import "google/cloud/aiplatform/v1beta1/io.proto"; -import "google/cloud/aiplatform/v1beta1/machine_resources.proto"; -import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto"; -import "google/cloud/aiplatform/v1beta1/model.proto"; -import "google/cloud/aiplatform/v1beta1/pipeline_state.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; -import "google/rpc/status.proto"; -import "google/api/annotations.proto"; - -option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform"; -option java_multiple_files = true; -option java_outer_classname = "TrainingPipelineProto"; -option java_package = "com.google.cloud.aiplatform.v1beta1"; - -// The TrainingPipeline orchestrates tasks associated with training a Model. It -// always executes the training task, and optionally may also -// export data from Vertex AI's Dataset which becomes the training input, -// [upload][google.cloud.aiplatform.v1beta1.ModelService.UploadModel] the Model to Vertex AI, and evaluate the -// Model. -message TrainingPipeline { - option (google.api.resource) = { - type: "aiplatform.googleapis.com/TrainingPipeline" - pattern: "projects/{project}/locations/{location}/trainingPipelines/{training_pipeline}" - }; - - // Output only. Resource name of the TrainingPipeline. - string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Required. The user-defined name of this TrainingPipeline. - string display_name = 2 [(google.api.field_behavior) = REQUIRED]; - - // Specifies Vertex AI owned input data that may be used for training the - // Model. The TrainingPipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make - // clear whether this config is used and if there are any special requirements - // on how it should be filled. If nothing about this config is mentioned in - // the [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition], then it should be assumed that the - // TrainingPipeline does not depend on this configuration. - InputDataConfig input_data_config = 3; - - // Required. A Google Cloud Storage path to the YAML file that defines the training task - // which is responsible for producing the model artifact, and may also include - // additional auxiliary work. - // The definition files that can be used here are found in - // gs://google-cloud-aiplatform/schema/trainingjob/definition/. - // Note: The URI given on output will be immutable and probably different, - // including the URI scheme, than the one given on input. The output URI will - // point to a location where the user only has a read access. - string training_task_definition = 4 [(google.api.field_behavior) = REQUIRED]; - - // Required. The training task's parameter(s), as specified in the - // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition]'s `inputs`. - google.protobuf.Value training_task_inputs = 5 [(google.api.field_behavior) = REQUIRED]; - - // Output only. The metadata information as specified in the [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition]'s - // `metadata`. This metadata is an auxiliary runtime and final information - // about the training task. While the pipeline is running this information is - // populated only at a best effort basis. Only present if the - // pipeline's [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] contains `metadata` object. - google.protobuf.Value training_task_metadata = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Describes the Model that may be uploaded (via [ModelService.UploadModel][google.cloud.aiplatform.v1beta1.ModelService.UploadModel]) - // by this TrainingPipeline. The TrainingPipeline's - // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition] should make clear whether this Model - // description should be populated, and if there are any special requirements - // regarding how it should be filled. If nothing is mentioned in the - // [training_task_definition][google.cloud.aiplatform.v1beta1.TrainingPipeline.training_task_definition], then it should be assumed that this field - // should not be filled and the training task either uploads the Model without - // a need of this information, or that training task does not support - // uploading a Model as part of the pipeline. - // When the Pipeline's state becomes `PIPELINE_STATE_SUCCEEDED` and - // the trained Model had been uploaded into Vertex AI, then the - // model_to_upload's resource [name][google.cloud.aiplatform.v1beta1.Model.name] is populated. The Model - // is always uploaded into the Project and Location in which this pipeline - // is. - Model model_to_upload = 7; - - // Output only. The detailed state of the pipeline. - PipelineState state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Only populated when the pipeline's state is `PIPELINE_STATE_FAILED` or - // `PIPELINE_STATE_CANCELLED`. - google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline was created. - google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline for the first time entered the - // `PIPELINE_STATE_RUNNING` state. - google.protobuf.Timestamp start_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline entered any of the following states: - // `PIPELINE_STATE_SUCCEEDED`, `PIPELINE_STATE_FAILED`, - // `PIPELINE_STATE_CANCELLED`. - google.protobuf.Timestamp end_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // Output only. Time when the TrainingPipeline was most recently updated. - google.protobuf.Timestamp update_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY]; - - // The labels with user-defined metadata to organize TrainingPipelines. - // - // 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. - map labels = 15; - - // Customer-managed encryption key spec for a TrainingPipeline. If set, this - // TrainingPipeline will be secured by this key. - // - // Note: Model trained by this TrainingPipeline is also secured by this key if - // [model_to_upload][google.cloud.aiplatform.v1beta1.TrainingPipeline.encryption_spec] is not set separately. - EncryptionSpec encryption_spec = 18; -} - -// Specifies Vertex AI owned input data to be used for training, and -// possibly evaluating, the Model. -message InputDataConfig { - // The instructions how the input data should be split between the - // training, validation and test sets. - // If no split type is provided, the [fraction_split][google.cloud.aiplatform.v1beta1.InputDataConfig.fraction_split] is used by default. - oneof split { - // Split based on fractions defining the size of each set. - FractionSplit fraction_split = 2; - - // Split based on the provided filters for each set. - FilterSplit filter_split = 3; - - // Supported only for tabular Datasets. - // - // Split based on a predefined key. - PredefinedSplit predefined_split = 4; - - // Supported only for tabular Datasets. - // - // Split based on the timestamp of the input data pieces. - TimestampSplit timestamp_split = 5; - } - - // Only applicable to Custom and Hyperparameter Tuning TrainingPipelines. - // - // The destination of the training data to be written to. - // - // Supported destination file formats: - // * For non-tabular data: "jsonl". - // * For tabular data: "csv" and "bigquery". - // - // The following Vertex AI environment variables are passed to containers - // or python modules of the training task when this field is set: - // - // * AIP_DATA_FORMAT : Exported data format. - // * AIP_TRAINING_DATA_URI : Sharded exported training data uris. - // * AIP_VALIDATION_DATA_URI : Sharded exported validation data uris. - // * AIP_TEST_DATA_URI : Sharded exported test data uris. - oneof destination { - // The Cloud Storage location where the training data is to be - // written to. In the given directory a new directory is created with - // name: - // `dataset---` - // where timestamp is in YYYY-MM-DDThh:mm:ss.sssZ ISO-8601 format. - // All training input data is written into that directory. - // - // The Vertex AI environment variables representing Cloud Storage - // data URIs are represented in the Cloud Storage wildcard - // format to support sharded data. e.g.: "gs://.../training-*.jsonl" - // - // * AIP_DATA_FORMAT = "jsonl" for non-tabular data, "csv" for tabular data - // * AIP_TRAINING_DATA_URI = - // "gcs_destination/dataset---