• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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