// 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/cloud/aiplatform/v1/encryption_spec.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 = "FeaturestoreProto"; option java_package = "com.google.cloud.aiplatform.v1"; option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; option ruby_package = "Google::Cloud::AIPlatform::V1"; // Vertex AI Feature Store provides a centralized repository for organizing, // storing, and serving ML features. The Featurestore is a top-level container // for your features and their values. message Featurestore { option (google.api.resource) = { type: "aiplatform.googleapis.com/Featurestore" pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}" }; // OnlineServingConfig specifies the details for provisioning online serving // resources. message OnlineServingConfig { // Online serving scaling configuration. If min_node_count and // max_node_count are set to the same value, the cluster will be configured // with the fixed number of node (no auto-scaling). message Scaling { // Required. The minimum number of nodes to scale down to. Must be greater than or // equal to 1. int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; // The maximum number of nodes to scale up to. Must be greater than // min_node_count, and less than or equal to 10 times of 'min_node_count'. int32 max_node_count = 2; } // The number of nodes for the online store. The number of nodes doesn't // scale automatically, but you can manually update the number of // nodes. If set to 0, the featurestore will not have an // online store and cannot be used for online serving. int32 fixed_node_count = 2; // Online serving scaling configuration. // Only one of `fixed_node_count` and `scaling` can be set. Setting one will // reset the other. Scaling scaling = 4; } // Possible states a featurestore can have. enum State { // Default value. This value is unused. STATE_UNSPECIFIED = 0; // State when the featurestore configuration is not being updated and the // fields reflect the current configuration of the featurestore. The // featurestore is usable in this state. STABLE = 1; // The state of the featurestore configuration when it is being updated. // During an update, the fields reflect either the original configuration // or the updated configuration of the featurestore. For example, // `online_serving_config.fixed_node_count` can take minutes to update. // While the update is in progress, the featurestore is in the UPDATING // state, and the value of `fixed_node_count` can be the original value or // the updated value, depending on the progress of the operation. Until the // update completes, the actual number of nodes can still be the original // value of `fixed_node_count`. The featurestore is still usable in this // state. UPDATING = 2; } // Output only. Name of the Featurestore. Format: // `projects/{project}/locations/{location}/featurestores/{featurestore}` string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp when this Featurestore was created. google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; // Output only. Timestamp when this Featurestore 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]; // Optional. The labels with user-defined metadata to organize your Featurestore. // // 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 on and examples of labels. // No more than 64 user labels can be associated with one Featurestore(System // labels are excluded)." // System reserved label keys are prefixed with "aiplatform.googleapis.com/" // and are immutable. map labels = 6 [(google.api.field_behavior) = OPTIONAL]; // Optional. Config for online storage resources. If unset, the featurestore will // not have an online store and cannot be used for online serving. OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = OPTIONAL]; // Output only. State of the featurestore. State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; // Optional. Customer-managed encryption key spec for data storage. If set, both of the // online and offline data storage will be secured by this key. EncryptionSpec encryption_spec = 10 [(google.api.field_behavior) = OPTIONAL]; }