• 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.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