Public interface definitions of Google APIs. Topics (grpc依赖)
 
 

1225 lines
50 KiB

// 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.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/entity_type.proto";
import "google/cloud/aiplatform/v1beta1/feature.proto";
import "google/cloud/aiplatform/v1beta1/feature_selector.proto";
import "google/cloud/aiplatform/v1beta1/featurestore.proto";
import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeaturestoreServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1";
option ruby_package = "Google::Cloud::AIPlatform::V1beta1";
// The service that handles CRUD and List for resources for Featurestore.
service FeaturestoreService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Creates a new Featurestore in a given project and location.
rpc CreateFeaturestore(CreateFeaturestoreRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/featurestores"
body: "featurestore"
};
option (google.api.method_signature) = "parent,featurestore";
option (google.api.method_signature) = "parent,featurestore,featurestore_id";
option (google.longrunning.operation_info) = {
response_type: "Featurestore"
metadata_type: "CreateFeaturestoreOperationMetadata"
};
}
// Gets details of a single Featurestore.
rpc GetFeaturestore(GetFeaturestoreRequest) returns (Featurestore) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/featurestores/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Featurestores in a given project and location.
rpc ListFeaturestores(ListFeaturestoresRequest) returns (ListFeaturestoresResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/featurestores"
};
option (google.api.method_signature) = "parent";
}
// Updates the parameters of a single Featurestore.
rpc UpdateFeaturestore(UpdateFeaturestoreRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{featurestore.name=projects/*/locations/*/featurestores/*}"
body: "featurestore"
};
option (google.api.method_signature) = "featurestore,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Featurestore"
metadata_type: "UpdateFeaturestoreOperationMetadata"
};
}
// Deletes a single Featurestore. The Featurestore must not contain any
// EntityTypes or `force` must be set to true for the request to succeed.
rpc DeleteFeaturestore(DeleteFeaturestoreRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*}"
};
option (google.api.method_signature) = "name";
option (google.api.method_signature) = "name,force";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Creates a new EntityType in a given Featurestore.
rpc CreateEntityType(CreateEntityTypeRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes"
body: "entity_type"
};
option (google.api.method_signature) = "parent,entity_type";
option (google.api.method_signature) = "parent,entity_type,entity_type_id";
option (google.longrunning.operation_info) = {
response_type: "EntityType"
metadata_type: "CreateEntityTypeOperationMetadata"
};
}
// Gets details of a single EntityType.
rpc GetEntityType(GetEntityTypeRequest) returns (EntityType) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}"
};
option (google.api.method_signature) = "name";
}
// Lists EntityTypes in a given Featurestore.
rpc ListEntityTypes(ListEntityTypesRequest) returns (ListEntityTypesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes"
};
option (google.api.method_signature) = "parent";
}
// Updates the parameters of a single EntityType.
rpc UpdateEntityType(UpdateEntityTypeRequest) returns (EntityType) {
option (google.api.http) = {
patch: "/v1beta1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}"
body: "entity_type"
};
option (google.api.method_signature) = "entity_type,update_mask";
}
// Deletes a single EntityType. The EntityType must not have any Features
// or `force` must be set to true for the request to succeed.
rpc DeleteEntityType(DeleteEntityTypeRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}"
};
option (google.api.method_signature) = "name";
option (google.api.method_signature) = "name,force";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Creates a new Feature in a given EntityType.
rpc CreateFeature(CreateFeatureRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features"
body: "feature"
};
option (google.api.method_signature) = "parent,feature";
option (google.api.method_signature) = "parent,feature,feature_id";
option (google.longrunning.operation_info) = {
response_type: "Feature"
metadata_type: "CreateFeatureOperationMetadata"
};
}
// Creates a batch of Features in a given EntityType.
rpc BatchCreateFeatures(BatchCreateFeaturesRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate"
body: "*"
};
option (google.api.method_signature) = "parent,requests";
option (google.longrunning.operation_info) = {
response_type: "BatchCreateFeaturesResponse"
metadata_type: "BatchCreateFeaturesOperationMetadata"
};
}
// Gets details of a single Feature.
rpc GetFeature(GetFeatureRequest) returns (Feature) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Features in a given EntityType.
rpc ListFeatures(ListFeaturesRequest) returns (ListFeaturesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features"
};
option (google.api.method_signature) = "parent";
}
// Updates the parameters of a single Feature.
rpc UpdateFeature(UpdateFeatureRequest) returns (Feature) {
option (google.api.http) = {
patch: "/v1beta1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
body: "feature"
};
option (google.api.method_signature) = "feature,update_mask";
}
// Deletes a single Feature.
rpc DeleteFeature(DeleteFeatureRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Imports Feature values into the Featurestore from a source storage.
//
// The progress of the import is tracked by the returned operation. The
// imported features are guaranteed to be visible to subsequent read
// operations after the operation is marked as successfully done.
//
// If an import operation fails, the Feature values returned from
// reads and exports may be inconsistent. If consistency is
// required, the caller must retry the same import request again and wait till
// the new operation returned is marked as successfully done.
//
// There are also scenarios where the caller can cause inconsistency.
//
// - Source data for import contains multiple distinct Feature values for
// the same entity ID and timestamp.
// - Source is modified during an import. This includes adding, updating, or
// removing source data and/or metadata. Examples of updating metadata
// include but are not limited to changing storage location, storage class,
// or retention policy.
// - Online serving cluster is under-provisioned.
rpc ImportFeatureValues(ImportFeatureValuesRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues"
body: "*"
};
option (google.api.method_signature) = "entity_type";
option (google.longrunning.operation_info) = {
response_type: "ImportFeatureValuesResponse"
metadata_type: "ImportFeatureValuesOperationMetadata"
};
}
// Batch reads Feature values from a Featurestore.
//
// This API enables batch reading Feature values, where each read
// instance in the batch may read Feature values of entities from one or
// more EntityTypes. Point-in-time correctness is guaranteed for Feature
// values of each read instance as of each instance's read timestamp.
rpc BatchReadFeatureValues(BatchReadFeatureValuesRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues"
body: "*"
};
option (google.api.method_signature) = "featurestore";
option (google.longrunning.operation_info) = {
response_type: "BatchReadFeatureValuesResponse"
metadata_type: "BatchReadFeatureValuesOperationMetadata"
};
}
// Exports Feature values from all the entities of a target EntityType.
rpc ExportFeatureValues(ExportFeatureValuesRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues"
body: "*"
};
option (google.api.method_signature) = "entity_type";
option (google.longrunning.operation_info) = {
response_type: "ExportFeatureValuesResponse"
metadata_type: "ExportFeatureValuesOperationMetadata"
};
}
// Searches Features matching a query in a given project.
rpc SearchFeatures(SearchFeaturesRequest) returns (SearchFeaturesResponse) {
option (google.api.http) = {
get: "/v1beta1/{location=projects/*/locations/*}/featurestores:searchFeatures"
};
option (google.api.method_signature) = "location";
option (google.api.method_signature) = "location,query";
}
}
// Request message for [FeaturestoreService.CreateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore].
message CreateFeaturestoreRequest {
// Required. The resource name of the Location to create Featurestores.
// Format:
// `projects/{project}/locations/{location}'`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Featurestore"
}
];
// Required. The Featurestore to create.
Featurestore featurestore = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for this Featurestore, which will become the final component
// of the Featurestore's resource name.
//
// This value may be up to 60 characters, and valid characters are
// `[a-z0-9_]`. The first character cannot be a number.
//
// The value must be unique within the project and location.
string featurestore_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [FeaturestoreService.GetFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore].
message GetFeaturestoreRequest {
// Required. The name of the Featurestore resource.
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Featurestore"
}
];
}
// Request message for [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores].
message ListFeaturestoresRequest {
// Required. The resource name of the Location to list Featurestores.
// Format:
// `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Featurestore"
}
];
// Lists the featurestores that match the filter expression. The following
// fields are supported:
//
// * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons.
// Values must be
// in RFC 3339 format.
// * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons.
// Values must be
// in RFC 3339 format.
// * `online_serving_config.fixed_node_count`: Supports `=`, `!=`, `<`, `>`,
// `<=`, and `>=` comparisons.
// * `labels`: Supports key-value equality and key presence.
//
// Examples:
//
// * `create_time > "2020-01-01" OR update_time > "2020-01-01"`
// Featurestores created or updated after 2020-01-01.
// * `labels.env = "prod"`
// Featurestores with label "env" set to "prod".
string filter = 2;
// The maximum number of Featurestores to return. The service may return fewer
// than this value. If unspecified, at most 100 Featurestores will be
// returned. The maximum value is 100; any value greater than 100 will be
// coerced to 100.
int32 page_size = 3;
// A page token, received from a previous
// [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] must
// match the call that provided the page token.
string page_token = 4;
// A comma-separated list of fields to order by, sorted in ascending order.
// Use "desc" after a field name for descending.
// Supported Fields:
//
// * `create_time`
// * `update_time`
// * `online_serving_config.fixed_node_count`
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores].
message ListFeaturestoresResponse {
// The Featurestores matching the request.
repeated Featurestore featurestores = 1;
// A token, which can be sent as [ListFeaturestoresRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest.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 [FeaturestoreService.UpdateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore].
message UpdateFeaturestoreRequest {
// Required. The Featurestore's `name` field is used to identify the Featurestore to be
// updated.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
Featurestore featurestore = 1 [(google.api.field_behavior) = REQUIRED];
// Field mask is used to specify the fields to be overwritten in the
// Featurestore 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 only the non-empty fields present in the
// request will be overwritten. Set the update_mask to `*` to override all
// fields.
//
// Updatable fields:
//
// * `labels`
// * `online_serving_config.fixed_node_count`
google.protobuf.FieldMask update_mask = 2;
}
// Request message for [FeaturestoreService.DeleteFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore].
message DeleteFeaturestoreRequest {
// Required. The name of the Featurestore to be deleted.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Featurestore"
}
];
// If set to true, any EntityTypes and Features for this Featurestore will
// also be deleted. (Otherwise, the request will only work if the Featurestore
// has no EntityTypes.)
bool force = 2;
}
// Request message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues].
message ImportFeatureValuesRequest {
// Defines the Feature value(s) to import.
message FeatureSpec {
// Required. ID of the Feature to import values of. This Feature must exist in the
// target EntityType, or the request will fail.
string id = 1 [(google.api.field_behavior) = REQUIRED];
// Source column to get the Feature values from. If not set, uses the column
// with the same name as the Feature ID.
string source_field = 2;
}
// Details about the source data, including the location of the storage and
// the format.
oneof source {
AvroSource avro_source = 2;
BigQuerySource bigquery_source = 3;
CsvSource csv_source = 4;
}
// Source of Feature timestamp for all Feature values of each entity.
// Timestamps must be millisecond-aligned.
oneof feature_time_source {
// Source column that holds the Feature timestamp for all Feature
// values in each entity.
string feature_time_field = 6;
// Single Feature timestamp for all entities being imported. The
// timestamp must not have higher than millisecond precision.
google.protobuf.Timestamp feature_time = 7;
}
// Required. The resource name of the EntityType grouping the Features for which values
// are being imported. Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`
string entity_type = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Source column that holds entity IDs. If not provided, entity IDs are
// extracted from the column named `entity_id`.
string entity_id_field = 5;
// Required. Specifications defining which Feature values to import from the entity. The
// request fails if no feature_specs are provided, and having multiple
// feature_specs for one Feature is not allowed.
repeated FeatureSpec feature_specs = 8 [(google.api.field_behavior) = REQUIRED];
// If set, data will not be imported for online serving. This
// is typically used for backfilling, where Feature generation timestamps are
// not in the timestamp range needed for online serving.
bool disable_online_serving = 9;
// Specifies the number of workers that are used to write data to the
// Featurestore. Consider the online serving capacity that you require to
// achieve the desired import throughput without interfering with online
// serving. The value must be positive, and less than or equal to 100.
// If not set, defaults to using 1 worker. The low count ensures minimal
// impact on online serving performance.
int32 worker_count = 11;
// If true, API doesn't start ingestion analysis pipeline.
bool disable_ingestion_analysis = 12;
}
// Response message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues].
message ImportFeatureValuesResponse {
// Number of entities that have been imported by the operation.
int64 imported_entity_count = 1;
// Number of Feature values that have been imported by the operation.
int64 imported_feature_value_count = 2;
// The number of rows in input source that weren't imported due to either
// * Not having any featureValues.
// * Having a null entityId.
// * Having a null timestamp.
// * Not being parsable (applicable for CSV sources).
int64 invalid_row_count = 6;
}
// Request message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues].
message BatchReadFeatureValuesRequest {
// Describe pass-through fields in read_instance source.
message PassThroughField {
// Required. The name of the field in the CSV header or the name of the column in
// BigQuery table. The naming restriction is the same as [Feature.name][google.cloud.aiplatform.v1beta1.Feature.name].
string field_name = 1 [(google.api.field_behavior) = REQUIRED];
}
// Selects Features of an EntityType to read values of and specifies read
// settings.
message EntityTypeSpec {
// Required. ID of the EntityType to select Features. The EntityType id is the
// [entity_type_id][google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest.entity_type_id] specified
// during EntityType creation.
string entity_type_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Selectors choosing which Feature values to read from the EntityType.
FeatureSelector feature_selector = 2 [(google.api.field_behavior) = REQUIRED];
// Per-Feature settings for the batch read.
repeated DestinationFeatureSetting settings = 3;
}
oneof read_option {
// Each read instance consists of exactly one read timestamp and one or more
// entity IDs identifying entities of the corresponding EntityTypes whose
// Features are requested.
//
// Each output instance contains Feature values of requested entities
// concatenated together as of the read time.
//
// An example read instance may be `foo_entity_id, bar_entity_id,
// 2020-01-01T10:00:00.123Z`.
//
// An example output instance may be `foo_entity_id, bar_entity_id,
// 2020-01-01T10:00:00.123Z, foo_entity_feature1_value,
// bar_entity_feature2_value`.
//
// Timestamp in each read instance must be millisecond-aligned.
//
// `csv_read_instances` are read instances stored in a plain-text CSV file.
// The header should be:
// [ENTITY_TYPE_ID1], [ENTITY_TYPE_ID2], ..., timestamp
//
// The columns can be in any order.
//
// Values in the timestamp column must use the RFC 3339 format, e.g.
// `2012-07-30T10:43:17.123Z`.
CsvSource csv_read_instances = 3;
// Similar to csv_read_instances, but from BigQuery source.
BigQuerySource bigquery_read_instances = 5;
}
// Required. The resource name of the Featurestore from which to query Feature values.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
string featurestore = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Featurestore"
}
];
// Required. Specifies output location and format.
FeatureValueDestination destination = 4 [(google.api.field_behavior) = REQUIRED];
// When not empty, the specified fields in the *_read_instances source will be
// joined as-is in the output, in addition to those fields from the
// Featurestore Entity.
//
// For BigQuery source, the type of the pass-through values will be
// automatically inferred. For CSV source, the pass-through values will be
// passed as opaque bytes.
repeated PassThroughField pass_through_fields = 8;
// Required. Specifies EntityType grouping Features to read values of and settings.
// Each EntityType referenced in
// [BatchReadFeatureValuesRequest.entity_type_specs] must have a column
// specifying entity IDs in the EntityType in
// [BatchReadFeatureValuesRequest.request][] .
repeated EntityTypeSpec entity_type_specs = 7 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues].
message ExportFeatureValuesRequest {
// Describes exporting the latest Feature values of all entities of the
// EntityType between [start_time, snapshot_time].
message SnapshotExport {
// Exports Feature values as of this timestamp. If not set,
// retrieve values as of now. Timestamp, if present, must not have higher
// than millisecond precision.
google.protobuf.Timestamp snapshot_time = 1;
// Excludes Feature values with feature generation timestamp before this
// timestamp. If not set, retrieve oldest values kept in Feature Store.
// Timestamp, if present, must not have higher than millisecond precision.
google.protobuf.Timestamp start_time = 2;
}
// Describes exporting all historical Feature values of all entities of the
// EntityType between [start_time, end_time].
message FullExport {
// Excludes Feature values with feature generation timestamp before this
// timestamp. If not set, retrieve oldest values kept in Feature Store.
// Timestamp, if present, must not have higher than millisecond precision.
google.protobuf.Timestamp start_time = 2;
// Exports Feature values as of this timestamp. If not set,
// retrieve values as of now. Timestamp, if present, must not have higher
// than millisecond precision.
google.protobuf.Timestamp end_time = 1;
}
// Required. The mode in which Feature values are exported.
oneof mode {
// Exports the latest Feature values of all entities of the EntityType
// within a time range.
SnapshotExport snapshot_export = 3;
// Exports all historical values of all entities of the EntityType within a
// time range
FullExport full_export = 7;
}
// Required. The resource name of the EntityType from which to export Feature values.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string entity_type = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Required. Specifies destination location and format.
FeatureValueDestination destination = 4 [(google.api.field_behavior) = REQUIRED];
// Required. Selects Features to export values of.
FeatureSelector feature_selector = 5 [(google.api.field_behavior) = REQUIRED];
// Per-Feature export settings.
repeated DestinationFeatureSetting settings = 6;
}
message DestinationFeatureSetting {
// Required. The ID of the Feature to apply the setting to.
string feature_id = 1 [(google.api.field_behavior) = REQUIRED];
// Specify the field name in the export destination. If not specified,
// Feature ID is used.
string destination_field = 2;
}
// A destination location for Feature values and format.
message FeatureValueDestination {
oneof destination {
// Output in BigQuery format.
// [BigQueryDestination.output_uri][google.cloud.aiplatform.v1beta1.BigQueryDestination.output_uri] in
// [FeatureValueDestination.bigquery_destination][google.cloud.aiplatform.v1beta1.FeatureValueDestination.bigquery_destination] must refer to a table.
BigQueryDestination bigquery_destination = 1;
// Output in TFRecord format.
//
// Below are the mapping from Feature value type
// in Featurestore to Feature value type in TFRecord:
//
// Value type in Featurestore | Value type in TFRecord
// DOUBLE, DOUBLE_ARRAY | FLOAT_LIST
// INT64, INT64_ARRAY | INT64_LIST
// STRING, STRING_ARRAY, BYTES | BYTES_LIST
// true -> byte_string("true"), false -> byte_string("false")
// BOOL, BOOL_ARRAY (true, false) | BYTES_LIST
TFRecordDestination tfrecord_destination = 2;
// Output in CSV format. Array Feature value types are not allowed in CSV
// format.
CsvDestination csv_destination = 3;
}
}
// Response message for [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues].
message ExportFeatureValuesResponse {
}
// Response message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues].
message BatchReadFeatureValuesResponse {
}
// Request message for [FeaturestoreService.CreateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType].
message CreateEntityTypeRequest {
// Required. The resource name of the Featurestore to create EntityTypes.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Featurestore"
}
];
// The EntityType to create.
EntityType entity_type = 2;
// Required. The ID to use for the EntityType, which will become the final component of
// the EntityType's resource name.
//
// This value may be up to 60 characters, and valid characters are
// `[a-z0-9_]`. The first character cannot be a number.
//
// The value must be unique within a featurestore.
string entity_type_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [FeaturestoreService.GetEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType].
message GetEntityTypeRequest {
// Required. The name of the EntityType resource.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
}
// Request message for [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes].
message ListEntityTypesRequest {
// Required. The resource name of the Featurestore to list EntityTypes.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/EntityType"
}
];
// Lists the EntityTypes that match the filter expression. The following
// filters are supported:
//
// * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons.
// Values must be in RFC 3339 format.
// * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons.
// Values must be in RFC 3339 format.
// * `labels`: Supports key-value equality as well as key presence.
//
// Examples:
//
// * `create_time > \"2020-01-31T15:30:00.000000Z\" OR
// update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created
// or updated after 2020-01-31T15:30:00.000000Z.
// * `labels.active = yes AND labels.env = prod` --> EntityTypes having both
// (active: yes) and (env: prod) labels.
// * `labels.env: *` --> Any EntityType which has a label with 'env' as the
// key.
string filter = 2;
// The maximum number of EntityTypes to return. The service may return fewer
// than this value. If unspecified, at most 1000 EntityTypes will be returned.
// The maximum value is 1000; any value greater than 1000 will be coerced to
// 1000.
int32 page_size = 3;
// A page token, received from a previous
// [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] must
// match the call that provided the page token.
string page_token = 4;
// A comma-separated list of fields to order by, sorted in ascending order.
// Use "desc" after a field name for descending.
//
// Supported fields:
//
// * `entity_type_id`
// * `create_time`
// * `update_time`
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes].
message ListEntityTypesResponse {
// The EntityTypes matching the request.
repeated EntityType entity_types = 1;
// A token, which can be sent as [ListEntityTypesRequest.page_token][google.cloud.aiplatform.v1beta1.ListEntityTypesRequest.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 [FeaturestoreService.UpdateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType].
message UpdateEntityTypeRequest {
// Required. The EntityType's `name` field is used to identify the EntityType to be
// updated.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
EntityType entity_type = 1 [(google.api.field_behavior) = REQUIRED];
// Field mask is used to specify the fields to be overwritten in the
// EntityType 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 only the non-empty fields present in the
// request will be overwritten. Set the update_mask to `*` to override all
// fields.
//
// Updatable fields:
//
// * `description`
// * `labels`
// * `monitoring_config.snapshot_analysis.disabled`
// * `monitoring_config.snapshot_analysis.monitoring_interval_days`
// * `monitoring_config.snapshot_analysis.staleness_days`
// * `monitoring_config.import_features_analysis.state`
// * `monitoring_config.import_features_analysis.anomaly_detection_baseline`
// * `monitoring_config.numerical_threshold_config.value`
// * `monitoring_config.categorical_threshold_config.value`
google.protobuf.FieldMask update_mask = 2;
}
// Request message for [FeaturestoreService.DeleteEntityTypes][].
message DeleteEntityTypeRequest {
// Required. The name of the EntityType to be deleted.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// If set to true, any Features for this EntityType will also be deleted.
// (Otherwise, the request will only work if the EntityType has no Features.)
bool force = 2;
}
// Request message for [FeaturestoreService.CreateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature].
message CreateFeatureRequest {
// Required. The resource name of the EntityType to create a Feature.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Required. The Feature to create.
Feature feature = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the Feature, which will become the final component of
// the Feature's resource name.
//
// This value may be up to 60 characters, and valid characters are
// `[a-z0-9_]`. The first character cannot be a number.
//
// The value must be unique within an EntityType.
string feature_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures].
message BatchCreateFeaturesRequest {
// Required. The resource name of the EntityType to create the batch of Features under.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Required. The request message specifying the Features to create. All Features must be
// created under the same parent EntityType. The `parent` field in each child
// request message can be omitted. If `parent` is set in a child request, then
// the value must match the `parent` value in this request message.
repeated CreateFeatureRequest requests = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures].
message BatchCreateFeaturesResponse {
// The Features created.
repeated Feature features = 1;
}
// Request message for [FeaturestoreService.GetFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature].
message GetFeatureRequest {
// Required. The name of the Feature resource.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Feature"
}
];
}
// Request message for [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures].
message ListFeaturesRequest {
// Required. The resource name of the Location to list Features.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Feature"
}
];
// Lists the Features that match the filter expression. The following
// filters are supported:
//
// * `value_type`: 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.
// * `labels`: Supports key-value equality as well as key presence.
//
// Examples:
//
// * `value_type = DOUBLE` --> Features whose type is DOUBLE.
// * `create_time > \"2020-01-31T15:30:00.000000Z\" OR
// update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created
// or updated after 2020-01-31T15:30:00.000000Z.
// * `labels.active = yes AND labels.env = prod` --> Features having both
// (active: yes) and (env: prod) labels.
// * `labels.env: *` --> Any Feature which has a label with 'env' as the
// key.
string filter = 2;
// The maximum number of Features to return. The service may return fewer
// than this value. If unspecified, at most 1000 Features will be returned.
// The maximum value is 1000; any value greater than 1000 will be coerced to
// 1000.
int32 page_size = 3;
// A page token, received from a previous
// [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] must
// match the call that provided the page token.
string page_token = 4;
// A comma-separated list of fields to order by, sorted in ascending order.
// Use "desc" after a field name for descending.
// Supported fields:
//
// * `feature_id`
// * `value_type`
// * `create_time`
// * `update_time`
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
// If set, return the most recent [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count]
// of stats for each Feature in response. Valid value is [0, 10]. If number of
// stats exists < [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count], return all
// existing stats.
int32 latest_stats_count = 7;
}
// Response message for [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures].
message ListFeaturesResponse {
// The Features matching the request.
repeated Feature features = 1;
// A token, which can be sent as [ListFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.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 [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures].
message SearchFeaturesRequest {
// Required. The resource name of the Location to search Features.
// Format:
// `projects/{project}/locations/{location}`
string location = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Query string that is a conjunction of field-restricted queries and/or
// field-restricted filters. Field-restricted queries and filters can be
// combined using `AND` to form a conjunction.
//
// A field query is in the form FIELD:QUERY. This implicitly checks if QUERY
// exists as a substring within Feature's FIELD. The QUERY
// and the FIELD are converted to a sequence of words (i.e. tokens) for
// comparison. This is done by:
//
// * Removing leading/trailing whitespace and tokenizing the search value.
// Characters that are not one of alphanumeric `[a-zA-Z0-9]`, underscore
// `_`, or asterisk `*` are treated as delimiters for tokens. `*` is treated
// as a wildcard that matches characters within a token.
// * Ignoring case.
// * Prepending an asterisk to the first and appending an asterisk to the
// last token in QUERY.
//
// A QUERY must be either a singular token or a phrase. A phrase is one or
// multiple words enclosed in double quotation marks ("). With phrases, the
// order of the words is important. Words in the phrase must be matching in
// order and consecutively.
//
// Supported FIELDs for field-restricted queries:
//
// * `feature_id`
// * `description`
// * `entity_type_id`
//
// Examples:
//
// * `feature_id: foo` --> Matches a Feature with ID containing the substring
// `foo` (eg. `foo`, `foofeature`, `barfoo`).
// * `feature_id: foo*feature` --> Matches a Feature with ID containing the
// substring `foo*feature` (eg. `foobarfeature`).
// * `feature_id: foo AND description: bar` --> Matches a Feature with ID
// containing the substring `foo` and description containing the substring
// `bar`.
//
//
// Besides field queries, the following exact-match filters are
// supported. The exact-match filters do not support wildcards. Unlike
// field-restricted queries, exact-match filters are case-sensitive.
//
// * `feature_id`: Supports = comparisons.
// * `description`: Supports = comparisons. Multi-token filters should be
// enclosed in quotes.
// * `entity_type_id`: Supports = comparisons.
// * `value_type`: Supports = and != comparisons.
// * `labels`: Supports key-value equality as well as key presence.
// * `featurestore_id`: Supports = comparisons.
//
// Examples:
// * `description = "foo bar"` --> Any Feature with description exactly equal
// to `foo bar`
// * `value_type = DOUBLE` --> Features whose type is DOUBLE.
// * `labels.active = yes AND labels.env = prod` --> Features having both
// (active: yes) and (env: prod) labels.
// * `labels.env: *` --> Any Feature which has a label with `env` as the
// key.
string query = 3;
// The maximum number of Features to return. The service may return fewer
// than this value. If unspecified, at most 100 Features will be returned.
// The maximum value is 100; any value greater than 100 will be coerced to
// 100.
int32 page_size = 4;
// A page token, received from a previous
// [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures], except `page_size`, must
// match the call that provided the page token.
string page_token = 5;
}
// Response message for [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures].
message SearchFeaturesResponse {
// The Features matching the request.
//
// Fields returned:
//
// * `name`
// * `description`
// * `labels`
// * `create_time`
// * `update_time`
repeated Feature features = 1;
// A token, which can be sent as [SearchFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.SearchFeaturesRequest.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 [FeaturestoreService.UpdateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature].
message UpdateFeatureRequest {
// Required. The Feature's `name` field is used to identify the Feature to be
// updated.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}`
Feature feature = 1 [(google.api.field_behavior) = REQUIRED];
// Field mask is used to specify the fields to be overwritten in the
// Features 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 only the non-empty fields present in the
// request will be overwritten. Set the update_mask to `*` to override all
// fields.
//
// Updatable fields:
//
// * `description`
// * `labels`
// * `disable_monitoring`
google.protobuf.FieldMask update_mask = 2;
}
// Request message for [FeaturestoreService.DeleteFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature].
message DeleteFeatureRequest {
// Required. The name of the Features to be deleted.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Feature"
}
];
}
// Details of operations that perform create Featurestore.
message CreateFeaturestoreOperationMetadata {
// Operation metadata for Featurestore.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform update Featurestore.
message UpdateFeaturestoreOperationMetadata {
// Operation metadata for Featurestore.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform import Feature values.
message ImportFeatureValuesOperationMetadata {
// Operation metadata for Featurestore import Feature values.
GenericOperationMetadata generic_metadata = 1;
// Number of entities that have been imported by the operation.
int64 imported_entity_count = 2;
// Number of Feature values that have been imported by the operation.
int64 imported_feature_value_count = 3;
// The number of rows in input source that weren't imported due to either
// * Not having any featureValues.
// * Having a null entityId.
// * Having a null timestamp.
// * Not being parsable (applicable for CSV sources).
int64 invalid_row_count = 6;
}
// Details of operations that exports Features values.
message ExportFeatureValuesOperationMetadata {
// Operation metadata for Featurestore export Feature values.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that batch reads Feature values.
message BatchReadFeatureValuesOperationMetadata {
// Operation metadata for Featurestore batch read Features values.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform create EntityType.
message CreateEntityTypeOperationMetadata {
// Operation metadata for EntityType.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform create Feature.
message CreateFeatureOperationMetadata {
// Operation metadata for Feature.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform batch create Features.
message BatchCreateFeaturesOperationMetadata {
// Operation metadata for Feature.
GenericOperationMetadata generic_metadata = 1;
}