1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.aiplatform.v1beta1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/cloud/aiplatform/v1beta1/service_networking.proto"; 22import "google/protobuf/timestamp.proto"; 23 24option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1"; 25option go_package = "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb;aiplatformpb"; 26option java_multiple_files = true; 27option java_outer_classname = "FeatureOnlineStoreProto"; 28option java_package = "com.google.cloud.aiplatform.v1beta1"; 29option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1"; 30option ruby_package = "Google::Cloud::AIPlatform::V1beta1"; 31 32// Vertex AI Feature Online Store provides a centralized repository for serving 33// ML features and embedding indexes at low latency. The Feature Online Store is 34// a top-level container. 35message FeatureOnlineStore { 36 option (google.api.resource) = { 37 type: "aiplatform.googleapis.com/FeatureOnlineStore" 38 pattern: "projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}" 39 }; 40 41 message Bigtable { 42 message AutoScaling { 43 // Required. The minimum number of nodes to scale down to. Must be greater 44 // than or equal to 1. 45 int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; 46 47 // Required. The maximum number of nodes to scale up to. Must be greater 48 // than or equal to min_node_count, and less than or equal to 10 times of 49 // 'min_node_count'. 50 int32 max_node_count = 2 [(google.api.field_behavior) = REQUIRED]; 51 52 // Optional. A percentage of the cluster's CPU capacity. Can be from 10% 53 // to 80%. When a cluster's CPU utilization exceeds the target that you 54 // have set, Bigtable immediately adds nodes to the cluster. When CPU 55 // utilization is substantially lower than the target, Bigtable removes 56 // nodes. If not set will default to 50%. 57 int32 cpu_utilization_target = 3 [(google.api.field_behavior) = OPTIONAL]; 58 } 59 60 // Required. Autoscaling config applied to Bigtable Instance. 61 AutoScaling auto_scaling = 1 [(google.api.field_behavior) = REQUIRED]; 62 } 63 64 // Optimized storage type 65 message Optimized {} 66 67 // The dedicated serving endpoint for this FeatureOnlineStore. Only need to 68 // set when you choose Optimized storage type. Public endpoint is provisioned 69 // by default. 70 message DedicatedServingEndpoint { 71 // Output only. This field will be populated with the domain name to use for 72 // this FeatureOnlineStore 73 string public_endpoint_domain_name = 2 74 [(google.api.field_behavior) = OUTPUT_ONLY]; 75 76 // Optional. Private service connect config. The private service connection 77 // is available only for Optimized storage type, not for embedding 78 // management now. If 79 // [PrivateServiceConnectConfig.enable_private_service_connect][google.cloud.aiplatform.v1beta1.PrivateServiceConnectConfig.enable_private_service_connect] 80 // set to true, customers will use private service connection to send 81 // request. Otherwise, the connection will set to public endpoint. 82 PrivateServiceConnectConfig private_service_connect_config = 3 83 [(google.api.field_behavior) = OPTIONAL]; 84 85 // Output only. The name of the service attachment resource. Populated if 86 // private service connect is enabled and after FeatureViewSync is created. 87 string service_attachment = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 88 } 89 90 // Deprecated: This sub message is no longer needed anymore and embedding 91 // management is automatically enabled when specifying Optimized storage type. 92 // Contains settings for embedding management. 93 message EmbeddingManagement { 94 option deprecated = true; 95 96 // Optional. Immutable. Whether to enable embedding management in this 97 // FeatureOnlineStore. It's immutable after creation to ensure the 98 // FeatureOnlineStore availability. 99 bool enabled = 1 [ 100 (google.api.field_behavior) = OPTIONAL, 101 (google.api.field_behavior) = IMMUTABLE 102 ]; 103 } 104 105 // Possible states a featureOnlineStore can have. 106 enum State { 107 // Default value. This value is unused. 108 STATE_UNSPECIFIED = 0; 109 110 // State when the featureOnlineStore configuration is not being updated and 111 // the fields reflect the current configuration of the featureOnlineStore. 112 // The featureOnlineStore is usable in this state. 113 STABLE = 1; 114 115 // The state of the featureOnlineStore configuration when it is being 116 // updated. During an update, the fields reflect either the original 117 // configuration or the updated configuration of the featureOnlineStore. The 118 // featureOnlineStore is still usable in this state. 119 UPDATING = 2; 120 } 121 122 oneof storage_type { 123 // Contains settings for the Cloud Bigtable instance that will be created 124 // to serve featureValues for all FeatureViews under this 125 // FeatureOnlineStore. 126 Bigtable bigtable = 8; 127 128 // Contains settings for the Optimized store that will be created 129 // to serve featureValues for all FeatureViews under this 130 // FeatureOnlineStore. When choose Optimized storage type, need to set 131 // [PrivateServiceConnectConfig.enable_private_service_connect][google.cloud.aiplatform.v1beta1.PrivateServiceConnectConfig.enable_private_service_connect] 132 // to use private endpoint. Otherwise will use public endpoint by default. 133 Optimized optimized = 12; 134 } 135 136 // Identifier. Name of the FeatureOnlineStore. Format: 137 // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}` 138 string name = 1 [(google.api.field_behavior) = IDENTIFIER]; 139 140 // Output only. Timestamp when this FeatureOnlineStore was created. 141 google.protobuf.Timestamp create_time = 3 142 [(google.api.field_behavior) = OUTPUT_ONLY]; 143 144 // Output only. Timestamp when this FeatureOnlineStore was last updated. 145 google.protobuf.Timestamp update_time = 4 146 [(google.api.field_behavior) = OUTPUT_ONLY]; 147 148 // Optional. Used to perform consistent read-modify-write updates. If not set, 149 // a blind "overwrite" update happens. 150 string etag = 5 [(google.api.field_behavior) = OPTIONAL]; 151 152 // Optional. The labels with user-defined metadata to organize your 153 // FeatureOnlineStore. 154 // 155 // Label keys and values can be no longer than 64 characters 156 // (Unicode codepoints), can only contain lowercase letters, numeric 157 // characters, underscores and dashes. International characters are allowed. 158 // 159 // See https://goo.gl/xmQnxf for more information on and examples of labels. 160 // No more than 64 user labels can be associated with one 161 // FeatureOnlineStore(System labels are excluded)." System reserved label keys 162 // are prefixed with "aiplatform.googleapis.com/" and are immutable. 163 map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; 164 165 // Output only. State of the featureOnlineStore. 166 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 167 168 // Optional. The dedicated serving endpoint for this FeatureOnlineStore, which 169 // is different from common Vertex service endpoint. 170 DedicatedServingEndpoint dedicated_serving_endpoint = 10 171 [(google.api.field_behavior) = OPTIONAL]; 172 173 // Optional. Deprecated: This field is no longer needed anymore and embedding 174 // management is automatically enabled when specifying Optimized storage type. 175 EmbeddingManagement embedding_management = 11 176 [deprecated = true, (google.api.field_behavior) = OPTIONAL]; 177} 178