diff --git a/google/cloud/aiplatform/v1/BUILD.bazel b/google/cloud/aiplatform/v1/BUILD.bazel index fca87f632..ed5dacad0 100644 --- a/google/cloud/aiplatform/v1/BUILD.bazel +++ b/google/cloud/aiplatform/v1/BUILD.bazel @@ -86,6 +86,7 @@ proto_library( "pipeline_service.proto", "pipeline_state.proto", "prediction_service.proto", + "saved_query.proto", "specialist_pool.proto", "specialist_pool_service.proto", "study.proto", diff --git a/google/cloud/aiplatform/v1/dataset_service.proto b/google/cloud/aiplatform/v1/dataset_service.proto index f9f82845b..5425db5b0 100644 --- a/google/cloud/aiplatform/v1/dataset_service.proto +++ b/google/cloud/aiplatform/v1/dataset_service.proto @@ -25,6 +25,7 @@ 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/saved_query.proto"; import "google/longrunning/operations.proto"; import "google/protobuf/field_mask.proto"; @@ -126,6 +127,14 @@ service DatasetService { option (google.api.method_signature) = "parent"; } + // Lists SavedQueries in a Dataset. + rpc ListSavedQueries(ListSavedQueriesRequest) returns (ListSavedQueriesResponse) { + option (google.api.http) = { + get: "/v1/{parent=projects/*/locations/*/datasets/*}/savedQueries" + }; + option (google.api.method_signature) = "parent"; + } + // Gets an AnnotationSpec. rpc GetAnnotationSpec(GetAnnotationSpecRequest) returns (AnnotationSpec) { option (google.api.http) = { @@ -357,6 +366,44 @@ message ListDataItemsResponse { string next_page_token = 2; } +// Request message for [DatasetService.ListSavedQueries][google.cloud.aiplatform.v1.DatasetService.ListSavedQueries]. +message ListSavedQueriesRequest { + // Required. The resource name of the Dataset to list SavedQueries 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.ListSavedQueries][google.cloud.aiplatform.v1.DatasetService.ListSavedQueries]. +message ListSavedQueriesResponse { + // A list of SavedQueries that match the specified filter in the request. + repeated SavedQuery saved_queries = 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. diff --git a/google/cloud/aiplatform/v1/pipeline_failure_policy.proto b/google/cloud/aiplatform/v1/pipeline_failure_policy.proto index f82b1befb..5ff3b78be 100644 --- a/google/cloud/aiplatform/v1/pipeline_failure_policy.proto +++ b/google/cloud/aiplatform/v1/pipeline_failure_policy.proto @@ -24,7 +24,7 @@ option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; -// Reperesents the failure policy of a pipeline. Currently, the default of a +// Represents the failure policy of a pipeline. Currently, the default of a // pipeline is that the pipeline will continue to run until no more tasks can be // executed, also known as PIPELINE_FAILURE_POLICY_FAIL_SLOW. However, if a // pipeline is set to PIPELINE_FAILURE_POLICY_FAIL_FAST, it will stop scheduling diff --git a/google/cloud/aiplatform/v1/saved_query.proto b/google/cloud/aiplatform/v1/saved_query.proto new file mode 100644 index 000000000..3018d51d6 --- /dev/null +++ b/google/cloud/aiplatform/v1/saved_query.proto @@ -0,0 +1,84 @@ +// Copyright 2022 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"; + +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 = "SavedQueryProto"; +option java_package = "com.google.cloud.aiplatform.v1"; +option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; +option ruby_package = "Google::Cloud::AIPlatform::V1"; + +// A SavedQuery is a view of the dataset. It references a subset of annotations +// by problem type and filters. +message SavedQuery { + option (google.api.resource) = { + type: "aiplatform.googleapis.com/SavedQuery" + pattern: "projects/{project}/locations/{location}/datasets/{dataset}/savedQueries/{saved_query}" + }; + + // Output only. Resource name of the SavedQuery. + string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. The user-defined name of the SavedQuery. + // The name can be up to 128 characters long and can consist of any UTF-8 + // characters. + string display_name = 2 [(google.api.field_behavior) = REQUIRED]; + + // Some additional information about the SavedQuery. + google.protobuf.Value metadata = 12; + + // Output only. Timestamp when this SavedQuery was created. + google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Timestamp when SavedQuery was last updated. + google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. Filters on the Annotations in the dataset. + string annotation_filter = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Required. Problem type of the SavedQuery. + // Allowed values: + // * IMAGE_CLASSIFICATION_SINGLE_LABEL + // * IMAGE_CLASSIFICATION_MULTI_LABEL + // * IMAGE_BOUNDING_POLY + // * IMAGE_BOUNDING_BOX + // * TEXT_CLASSIFICATION_SINGLE_LABEL + // * TEXT_CLASSIFICATION_MULTI_LABEL + // * TEXT_EXTRACTION + // * TEXT_SENTIMENT + // * VIDEO_CLASSIFICATION + // * VIDEO_OBJECT_TRACKING + string problem_type = 6 [(google.api.field_behavior) = REQUIRED]; + + // Output only. Number of AnnotationSpecs in the context of the SavedQuery. + int32 annotation_spec_count = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Used to perform a consistent read-modify-write update. If not set, a blind + // "overwrite" update happens. + string etag = 8; + + // Output only. If the Annotations belonging to the SavedQuery can be used for AutoML + // training. + bool support_automl_training = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; +} diff --git a/google/cloud/aiplatform/v1/training_pipeline.proto b/google/cloud/aiplatform/v1/training_pipeline.proto index 8d775b0ba..a0de8cf40 100644 --- a/google/cloud/aiplatform/v1/training_pipeline.proto +++ b/google/cloud/aiplatform/v1/training_pipeline.proto @@ -276,6 +276,20 @@ message InputDataConfig { // for training are filtered by both [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter] and // [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri]. string annotation_schema_uri = 9; + + // Only applicable to Datasets that have SavedQueries. + // + // The ID of a SavedQuery (annotation set) under the Dataset specified by + // [dataset_id][google.cloud.aiplatform.v1.InputDataConfig.dataset_id] used for filtering Annotations for training. + // + // Only Annotations that are associated with this SavedQuery are used in + // respectively training. When used in conjunction with + // [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter], the Annotations used for training are filtered by + // both [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] and [annotations_filter][google.cloud.aiplatform.v1.InputDataConfig.annotations_filter]. + // + // Only one of [saved_query_id][google.cloud.aiplatform.v1.InputDataConfig.saved_query_id] and [annotation_schema_uri][google.cloud.aiplatform.v1.InputDataConfig.annotation_schema_uri] should be + // specified as both of them represent the same thing: problem type. + string saved_query_id = 7; } // Assigns the input data to training, validation, and test sets as per the