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.v1; 18 19import "google/api/field_behavior.proto"; 20import "google/api/resource.proto"; 21import "google/protobuf/timestamp.proto"; 22 23option csharp_namespace = "Google.Cloud.AIPlatform.V1"; 24option go_package = "cloud.google.com/go/aiplatform/apiv1/aiplatformpb;aiplatformpb"; 25option java_multiple_files = true; 26option java_outer_classname = "FeatureOnlineStoreProto"; 27option java_package = "com.google.cloud.aiplatform.v1"; 28option php_namespace = "Google\\Cloud\\AIPlatform\\V1"; 29option ruby_package = "Google::Cloud::AIPlatform::V1"; 30 31// Vertex AI Feature Online Store provides a centralized repository for serving 32// ML features and embedding indexes at low latency. The Feature Online Store is 33// a top-level container. 34message FeatureOnlineStore { 35 option (google.api.resource) = { 36 type: "aiplatform.googleapis.com/FeatureOnlineStore" 37 pattern: "projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}" 38 }; 39 40 message Bigtable { 41 message AutoScaling { 42 // Required. The minimum number of nodes to scale down to. Must be greater 43 // than or equal to 1. 44 int32 min_node_count = 1 [(google.api.field_behavior) = REQUIRED]; 45 46 // Required. The maximum number of nodes to scale up to. Must be greater 47 // than or equal to min_node_count, and less than or equal to 10 times of 48 // 'min_node_count'. 49 int32 max_node_count = 2 [(google.api.field_behavior) = REQUIRED]; 50 51 // Optional. A percentage of the cluster's CPU capacity. Can be from 10% 52 // to 80%. When a cluster's CPU utilization exceeds the target that you 53 // have set, Bigtable immediately adds nodes to the cluster. When CPU 54 // utilization is substantially lower than the target, Bigtable removes 55 // nodes. If not set will default to 50%. 56 int32 cpu_utilization_target = 3 [(google.api.field_behavior) = OPTIONAL]; 57 } 58 59 // Required. Autoscaling config applied to Bigtable Instance. 60 AutoScaling auto_scaling = 1 [(google.api.field_behavior) = REQUIRED]; 61 } 62 63 // Optimized storage type 64 message Optimized {} 65 66 // The dedicated serving endpoint for this FeatureOnlineStore. Only need to 67 // set when you choose Optimized storage type. Public endpoint is provisioned 68 // by default. 69 message DedicatedServingEndpoint { 70 // Output only. This field will be populated with the domain name to use for 71 // this FeatureOnlineStore 72 string public_endpoint_domain_name = 2 73 [(google.api.field_behavior) = OUTPUT_ONLY]; 74 } 75 76 // Possible states a featureOnlineStore can have. 77 enum State { 78 // Default value. This value is unused. 79 STATE_UNSPECIFIED = 0; 80 81 // State when the featureOnlineStore configuration is not being updated and 82 // the fields reflect the current configuration of the featureOnlineStore. 83 // The featureOnlineStore is usable in this state. 84 STABLE = 1; 85 86 // The state of the featureOnlineStore configuration when it is being 87 // updated. During an update, the fields reflect either the original 88 // configuration or the updated configuration of the featureOnlineStore. The 89 // featureOnlineStore is still usable in this state. 90 UPDATING = 2; 91 } 92 93 oneof storage_type { 94 // Contains settings for the Cloud Bigtable instance that will be created 95 // to serve featureValues for all FeatureViews under this 96 // FeatureOnlineStore. 97 Bigtable bigtable = 8; 98 99 // Contains settings for the Optimized store that will be created 100 // to serve featureValues for all FeatureViews under this 101 // FeatureOnlineStore. When choose Optimized storage type, need to set 102 // [PrivateServiceConnectConfig.enable_private_service_connect][google.cloud.aiplatform.v1.PrivateServiceConnectConfig.enable_private_service_connect] 103 // to use private endpoint. Otherwise will use public endpoint by default. 104 Optimized optimized = 12; 105 } 106 107 // Identifier. Name of the FeatureOnlineStore. Format: 108 // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}` 109 string name = 1 [(google.api.field_behavior) = IDENTIFIER]; 110 111 // Output only. Timestamp when this FeatureOnlineStore was created. 112 google.protobuf.Timestamp create_time = 3 113 [(google.api.field_behavior) = OUTPUT_ONLY]; 114 115 // Output only. Timestamp when this FeatureOnlineStore was last updated. 116 google.protobuf.Timestamp update_time = 4 117 [(google.api.field_behavior) = OUTPUT_ONLY]; 118 119 // Optional. Used to perform consistent read-modify-write updates. If not set, 120 // a blind "overwrite" update happens. 121 string etag = 5 [(google.api.field_behavior) = OPTIONAL]; 122 123 // Optional. The labels with user-defined metadata to organize your 124 // FeatureOnlineStore. 125 // 126 // Label keys and values can be no longer than 64 characters 127 // (Unicode codepoints), can only contain lowercase letters, numeric 128 // characters, underscores and dashes. International characters are allowed. 129 // 130 // See https://goo.gl/xmQnxf for more information on and examples of labels. 131 // No more than 64 user labels can be associated with one 132 // FeatureOnlineStore(System labels are excluded)." System reserved label keys 133 // are prefixed with "aiplatform.googleapis.com/" and are immutable. 134 map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL]; 135 136 // Output only. State of the featureOnlineStore. 137 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 138 139 // Optional. The dedicated serving endpoint for this FeatureOnlineStore, which 140 // is different from common Vertex service endpoint. 141 DedicatedServingEndpoint dedicated_serving_endpoint = 10 142 [(google.api.field_behavior) = OPTIONAL]; 143} 144