Skip to content

Commit 1db12e6

Browse files
Google APIscopybara-github
authored andcommitted
feat: enable FeatureView Service Account in v1 API version
PiperOrigin-RevId: 719390405
1 parent a62d6f9 commit 1db12e6

2 files changed

Lines changed: 38 additions & 0 deletions

File tree

google/cloud/aiplatform/v1/aiplatform_v1.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ http:
196196
- post: '/ui/{resource=projects/*/locations/*/publishers/*/models/*}:getIamPolicy'
197197
- post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy'
198198
- post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy'
199+
- post: '/ui/{resource=projects/*/locations/*/featureGroups/*}:getIamPolicy'
199200
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
200201
post: '/v1/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy'
201202
body: '*'
@@ -224,6 +225,8 @@ http:
224225
body: '*'
225226
- post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy'
226227
body: '*'
228+
- post: '/ui/{resource=projects/*/locations/*/featureGroups/*}:setIamPolicy'
229+
body: '*'
227230
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
228231
post: '/v1/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions'
229232
additional_bindings:
@@ -239,6 +242,7 @@ http:
239242
- post: '/ui/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions'
240243
- post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions'
241244
- post: '/ui/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions'
245+
- post: '/ui/{resource=projects/*/locations/*/featureGroups/*}:testIamPermissions'
242246
- selector: google.longrunning.Operations.CancelOperation
243247
post: '/ui/{name=projects/*/locations/*/operations/*}:cancel'
244248
additional_bindings:
@@ -377,6 +381,7 @@ http:
377381
- delete: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}'
378382
- delete: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}'
379383
- delete: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}'
384+
- delete: '/ui/{name=projects/*/locations/*/featureGroups/*/featureMonitors/*/operations/*}'
380385
- delete: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
381386
- delete: '/v1/{name=projects/*/locations/*/operations/*}'
382387
- delete: '/v1/{name=projects/*/locations/*/datasets/*/operations/*}'
@@ -475,6 +480,7 @@ http:
475480
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
476481
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}'
477482
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}'
483+
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/featureMonitors/*/operations/*}'
478484
- get: '/v1/{name=projects/*/locations/*/operations/*}'
479485
- get: '/v1/{name=projects/*/locations/*/datasets/*/operations/*}'
480486
- get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}'
@@ -572,6 +578,7 @@ http:
572578
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}:wait'
573579
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait'
574580
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait'
581+
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/featureMonitors/*/operations/*}:wait'
575582
- get: '/v1/{name=projects/*/locations/*}/operations'
576583
- get: '/v1/{name=projects/*/locations/*/datasets/*}/operations'
577584
- get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*}/operations'
@@ -669,6 +676,7 @@ http:
669676
- post: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}:wait'
670677
- post: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait'
671678
- post: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait'
679+
- post: '/ui/{name=projects/*/locations/*/featureGroups/*/featureMonitors/*/operations/*}:wait'
672680
- post: '/v1/{name=projects/*/locations/*/operations/*}:wait'
673681
- post: '/v1/{name=projects/*/locations/*/datasets/*/operations/*}:wait'
674682
- post: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:wait'

google/cloud/aiplatform/v1/feature_view.proto

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,22 @@ message FeatureView {
180180
int64 rag_corpus_id = 2 [(google.api.field_behavior) = OPTIONAL];
181181
}
182182

183+
// Service agent type used during data sync.
184+
enum ServiceAgentType {
185+
// By default, the project-level Vertex AI Service Agent is enabled.
186+
SERVICE_AGENT_TYPE_UNSPECIFIED = 0;
187+
188+
// Indicates the project-level Vertex AI Service Agent
189+
// (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
190+
// will be used during sync jobs.
191+
SERVICE_AGENT_TYPE_PROJECT = 1;
192+
193+
// Enable a FeatureView service account to be created by Vertex AI and
194+
// output in the field `service_account_email`. This service account will
195+
// be used to read from the source BigQuery table during sync.
196+
SERVICE_AGENT_TYPE_FEATURE_VIEW = 2;
197+
}
198+
183199
oneof source {
184200
// Optional. Configures how data is supposed to be extracted from a BigQuery
185201
// source to be loaded onto the FeatureOnlineStore.
@@ -236,6 +252,20 @@ message FeatureView {
236252
// performed during online serving.
237253
IndexConfig index_config = 15 [(google.api.field_behavior) = OPTIONAL];
238254

255+
// Optional. Service agent type used during data sync. By default, the Vertex
256+
// AI Service Agent is used. When using an IAM Policy to isolate this
257+
// FeatureView within a project, a separate service account should be
258+
// provisioned by setting this field to `SERVICE_AGENT_TYPE_FEATURE_VIEW`.
259+
// This will generate a separate service account to access the BigQuery source
260+
// table.
261+
ServiceAgentType service_agent_type = 14
262+
[(google.api.field_behavior) = OPTIONAL];
263+
264+
// Output only. A Service Account unique to this FeatureView. The role
265+
// bigquery.dataViewer should be granted to this service account to allow
266+
// Vertex AI Feature Store to sync data to the online store.
267+
string service_account_email = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
268+
239269
// Output only. Reserved for future use.
240270
bool satisfies_pzs = 19 [(google.api.field_behavior) = OUTPUT_ONLY];
241271

0 commit comments

Comments
 (0)