diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto
index fd4d146e5fe..1175fa090e5 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/custom_job.proto
@@ -366,10 +366,10 @@ message Scheduling {
     // Strategy will default to STANDARD.
     STRATEGY_UNSPECIFIED = 0;
 
-    // Regular on-demand provisioning strategy.
+    // Deprecated. Regular on-demand provisioning strategy.
     ON_DEMAND = 1 [deprecated = true];
 
-    // Low cost by making potential use of spot resources.
+    // Deprecated. Low cost by making potential use of spot resources.
     LOW_COST = 2 [deprecated = true];
 
     // Standard provisioning strategy uses regular on-demand resources.
@@ -377,6 +377,9 @@ message Scheduling {
 
     // Spot provisioning strategy uses spot resources.
     SPOT = 4;
+
+    // Flex Start strategy uses DWS to queue for resources.
+    FLEX_START = 6;
   }
 
   // The maximum job running time. The default is 7 days.
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_group.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_group.proto
index 696aa10c15e..9fda12178f7 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_group.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_group.proto
@@ -60,12 +60,28 @@ message FeatureGroup {
     repeated string entity_id_columns = 2
         [(google.api.field_behavior) = OPTIONAL];
 
+    // Optional. Set if the data source is not a time-series.
+    bool static_data_source = 3 [(google.api.field_behavior) = OPTIONAL];
+
     // Optional. If the source is a time-series source, this can be set to
     // control how downstream sources (ex:
     // [FeatureView][google.cloud.aiplatform.v1.FeatureView] ) will treat
     // time-series sources. If not set, will treat the source as a time-series
     // source with `feature_timestamp` as timestamp column and no scan boundary.
     TimeSeries time_series = 4 [(google.api.field_behavior) = OPTIONAL];
+
+    // Optional. If set, all feature values will be fetched
+    // from a single row per unique entityId including nulls.
+    // If not set, will collapse all rows for each unique entityId into a singe
+    // row with any non-null values if present, if no non-null values are
+    // present will sync null.
+    // ex: If source has schema
+    // `(entity_id, feature_timestamp, f0, f1)` and the following rows:
+    // `(e1, 2020-01-01T10:00:00.123Z, 10, 15)`
+    // `(e1, 2020-02-01T10:00:00.123Z, 20, null)`
+    // If dense is set, `(e1, 20, null)` is synced to online stores. If dense is
+    // not set, `(e1, 20, 15)` is synced to online stores.
+    bool dense = 5 [(google.api.field_behavior) = OPTIONAL];
   }
 
   oneof source {
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto
index 4a738ee5994..bda6943518c 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_online_store_admin_service.proto
@@ -543,7 +543,7 @@ message SyncFeatureViewRequest {
   ];
 }
 
-// Respose message for
+// Response message for
 // [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView].
 message SyncFeatureViewResponse {
   // Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view.proto
index 20423657f02..2e77ecdefe2 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view.proto
@@ -157,6 +157,25 @@ message FeatureView {
     optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL];
   }
 
+  // A Vertex Rag source for features that need to be synced to Online
+  // Store.
+  message VertexRagSource {
+    // Required. The BigQuery view/table URI that will be materialized on each
+    // manual sync trigger. The table/view is expected to have the following
+    // columns and types at least:
+    //  - `corpus_id` (STRING, NULLABLE/REQUIRED)
+    //  - `file_id` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_id` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_data_type` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_data` (STRING, NULLABLE/REQUIRED)
+    //  - `embeddings` (FLOAT, REPEATED)
+    //  - `file_original_uri` (STRING, NULLABLE/REQUIRED)
+    string uri = 1 [(google.api.field_behavior) = REQUIRED];
+
+    // Optional. The RAG corpus id corresponding to this FeatureView.
+    int64 rag_corpus_id = 2 [(google.api.field_behavior) = OPTIONAL];
+  }
+
   oneof source {
     // Optional. Configures how data is supposed to be extracted from a BigQuery
     // source to be loaded onto the FeatureOnlineStore.
@@ -167,6 +186,10 @@ message FeatureView {
     // need to be loaded onto the FeatureOnlineStore.
     FeatureRegistrySource feature_registry_source = 9
         [(google.api.field_behavior) = OPTIONAL];
+
+    // Optional. The Vertex RAG Source that the FeatureView is linked to.
+    VertexRagSource vertex_rag_source = 18
+        [(google.api.field_behavior) = OPTIONAL];
   }
 
   // Identifier. Name of the FeatureView. Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view_sync.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view_sync.proto
index cf54825480e..cc5199d47e1 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view_sync.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1/feature_view_sync.proto
@@ -46,6 +46,10 @@ message FeatureViewSync {
 
     // Output only. BigQuery slot milliseconds consumed for the sync job.
     int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Lower bound of the system time watermark for the sync job. This is only
+    // set for continuously syncing feature views.
+    google.protobuf.Timestamp system_watermark_time = 5;
   }
 
   // Identifier. Name of the FeatureViewSync. Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/cached_content.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/cached_content.proto
index 922799d7ea9..36c4fae0f68 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/cached_content.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/cached_content.proto
@@ -41,6 +41,24 @@ message CachedContent {
     singular: "cachedContent"
   };
 
+  // Metadata on the usage of the cached content.
+  message UsageMetadata {
+    // Total number of tokens that the cached content consumes.
+    int32 total_token_count = 1;
+
+    // Number of text characters.
+    int32 text_count = 2;
+
+    // Number of images.
+    int32 image_count = 3;
+
+    // Duration of video in seconds.
+    int32 video_duration_seconds = 4;
+
+    // Duration of audio in seconds.
+    int32 audio_duration_seconds = 5;
+  }
+
   // Expiration time of the cached content.
   oneof expiration {
     // Timestamp of when this resource is considered expired.
@@ -112,4 +130,7 @@ message CachedContent {
   // Output only. When the cache entry was last updated in UTC time.
   google.protobuf.Timestamp update_time = 8
       [(google.api.field_behavior) = OUTPUT_ONLY];
+
+  // Output only. Metadata on the usage of the cached content.
+  UsageMetadata usage_metadata = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
 }
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/custom_job.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/custom_job.proto
index 5ad6c69f4bd..ac58e11302e 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/custom_job.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/custom_job.proto
@@ -366,10 +366,10 @@ message Scheduling {
     // Strategy will default to STANDARD.
     STRATEGY_UNSPECIFIED = 0;
 
-    // Regular on-demand provisioning strategy.
+    // Deprecated. Regular on-demand provisioning strategy.
     ON_DEMAND = 1 [deprecated = true];
 
-    // Low cost by making potential use of spot resources.
+    // Deprecated. Low cost by making potential use of spot resources.
     LOW_COST = 2 [deprecated = true];
 
     // Standard provisioning strategy uses regular on-demand resources.
@@ -377,6 +377,9 @@ message Scheduling {
 
     // Spot provisioning strategy uses spot resources.
     SPOT = 4;
+
+    // Flex Start strategy uses DWS to queue for resources.
+    FLEX_START = 6;
   }
 
   // The maximum job running time. The default is 7 days.
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_group.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_group.proto
index b6f2e8d0cc0..165d88f65e2 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_group.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_group.proto
@@ -60,12 +60,28 @@ message FeatureGroup {
     repeated string entity_id_columns = 2
         [(google.api.field_behavior) = OPTIONAL];
 
+    // Optional. Set if the data source is not a time-series.
+    bool static_data_source = 3 [(google.api.field_behavior) = OPTIONAL];
+
     // Optional. If the source is a time-series source, this can be set to
     // control how downstream sources (ex:
     // [FeatureView][google.cloud.aiplatform.v1beta1.FeatureView] ) will treat
     // time-series sources. If not set, will treat the source as a time-series
     // source with `feature_timestamp` as timestamp column and no scan boundary.
     TimeSeries time_series = 4 [(google.api.field_behavior) = OPTIONAL];
+
+    // Optional. If set, all feature values will be fetched
+    // from a single row per unique entityId including nulls.
+    // If not set, will collapse all rows for each unique entityId into a singe
+    // row with any non-null values if present, if no non-null values are
+    // present will sync null.
+    // ex: If source has schema
+    // `(entity_id, feature_timestamp, f0, f1)` and the following rows:
+    // `(e1, 2020-01-01T10:00:00.123Z, 10, 15)`
+    // `(e1, 2020-02-01T10:00:00.123Z, 20, null)`
+    // If dense is set, `(e1, 20, null)` is synced to online stores. If dense is
+    // not set, `(e1, 20, 15)` is synced to online stores.
+    bool dense = 5 [(google.api.field_behavior) = OPTIONAL];
   }
 
   oneof source {
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto
index a16a3b5e85a..0ec4ce9c0c7 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_online_store_admin_service.proto
@@ -543,7 +543,7 @@ message SyncFeatureViewRequest {
   ];
 }
 
-// Respose message for
+// Response message for
 // [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreAdminService.SyncFeatureView].
 message SyncFeatureViewResponse {
   // Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view.proto
index 29ebb0af5bd..bb1e974f56f 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view.proto
@@ -237,6 +237,25 @@ message FeatureView {
     optional int64 project_number = 2 [(google.api.field_behavior) = OPTIONAL];
   }
 
+  // A Vertex Rag source for features that need to be synced to Online
+  // Store.
+  message VertexRagSource {
+    // Required. The BigQuery view/table URI that will be materialized on each
+    // manual sync trigger. The table/view is expected to have the following
+    // columns and types at least:
+    //  - `corpus_id` (STRING, NULLABLE/REQUIRED)
+    //  - `file_id` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_id` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_data_type` (STRING, NULLABLE/REQUIRED)
+    //  - `chunk_data` (STRING, NULLABLE/REQUIRED)
+    //  - `embeddings` (FLOAT, REPEATED)
+    //  - `file_original_uri` (STRING, NULLABLE/REQUIRED)
+    string uri = 1 [(google.api.field_behavior) = REQUIRED];
+
+    // Optional. The RAG corpus id corresponding to this FeatureView.
+    int64 rag_corpus_id = 2 [(google.api.field_behavior) = OPTIONAL];
+  }
+
   // Service agent type used during data sync.
   enum ServiceAgentType {
     // By default, the project-level Vertex AI Service Agent is enabled.
@@ -263,6 +282,10 @@ message FeatureView {
     // need to be loaded onto the FeatureOnlineStore.
     FeatureRegistrySource feature_registry_source = 9
         [(google.api.field_behavior) = OPTIONAL];
+
+    // Optional. The Vertex RAG Source that the FeatureView is linked to.
+    VertexRagSource vertex_rag_source = 18
+        [(google.api.field_behavior) = OPTIONAL];
   }
 
   // Identifier. Name of the FeatureView. Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view_sync.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view_sync.proto
index f960b1d97d7..f823a2c4a18 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view_sync.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/feature_view_sync.proto
@@ -46,6 +46,10 @@ message FeatureViewSync {
 
     // Output only. BigQuery slot milliseconds consumed for the sync job.
     int64 total_slot = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
+
+    // Lower bound of the system time watermark for the sync job. This is only
+    // set for continuously syncing feature views.
+    google.protobuf.Timestamp system_watermark_time = 5;
   }
 
   // Identifier. Name of the FeatureViewSync. Format:
diff --git a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto
index 4a7aa74988c..3133b859463 100644
--- a/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto
+++ b/packages/google-cloud-aiplatform/protos/google/cloud/aiplatform/v1beta1/prediction_service.proto
@@ -826,6 +826,11 @@ message GenerateContentResponse {
     int32 candidates_token_count = 2;
 
     int32 total_token_count = 3;
+
+    // Output only. Number of tokens in the cached part in the input (the cached
+    // content).
+    int32 cached_content_token_count = 5
+        [(google.api.field_behavior) = OUTPUT_ONLY];
   }
 
   // Output only. Generated candidates.
diff --git a/packages/google-cloud-aiplatform/protos/protos.d.ts b/packages/google-cloud-aiplatform/protos/protos.d.ts
index 5663e5bb4ac..f6ea02fc421 100644
--- a/packages/google-cloud-aiplatform/protos/protos.d.ts
+++ b/packages/google-cloud-aiplatform/protos/protos.d.ts
@@ -13391,7 +13391,8 @@ export namespace google {
                         ON_DEMAND = 1,
                         LOW_COST = 2,
                         STANDARD = 3,
-                        SPOT = 4
+                        SPOT = 4,
+                        FLEX_START = 6
                     }
                 }
 
@@ -36358,8 +36359,14 @@ export namespace google {
                         /** BigQuery entityIdColumns */
                         entityIdColumns?: (string[]|null);
 
+                        /** BigQuery staticDataSource */
+                        staticDataSource?: (boolean|null);
+
                         /** BigQuery timeSeries */
                         timeSeries?: (google.cloud.aiplatform.v1.FeatureGroup.BigQuery.ITimeSeries|null);
+
+                        /** BigQuery dense */
+                        dense?: (boolean|null);
                     }
 
                     /** Represents a BigQuery. */
@@ -36377,9 +36384,15 @@ export namespace google {
                         /** BigQuery entityIdColumns. */
                         public entityIdColumns: string[];
 
+                        /** BigQuery staticDataSource. */
+                        public staticDataSource: boolean;
+
                         /** BigQuery timeSeries. */
                         public timeSeries?: (google.cloud.aiplatform.v1.FeatureGroup.BigQuery.ITimeSeries|null);
 
+                        /** BigQuery dense. */
+                        public dense: boolean;
+
                         /**
                          * Creates a new BigQuery instance using the specified properties.
                          * @param [properties] Properties to set
@@ -39625,6 +39638,9 @@ export namespace google {
                     /** FeatureView featureRegistrySource */
                     featureRegistrySource?: (google.cloud.aiplatform.v1.FeatureView.IFeatureRegistrySource|null);
 
+                    /** FeatureView vertexRagSource */
+                    vertexRagSource?: (google.cloud.aiplatform.v1.FeatureView.IVertexRagSource|null);
+
                     /** FeatureView name */
                     name?: (string|null);
 
@@ -39668,6 +39684,9 @@ export namespace google {
                     /** FeatureView featureRegistrySource. */
                     public featureRegistrySource?: (google.cloud.aiplatform.v1.FeatureView.IFeatureRegistrySource|null);
 
+                    /** FeatureView vertexRagSource. */
+                    public vertexRagSource?: (google.cloud.aiplatform.v1.FeatureView.IVertexRagSource|null);
+
                     /** FeatureView name. */
                     public name: string;
 
@@ -39696,7 +39715,7 @@ export namespace google {
                     public satisfiesPzi: boolean;
 
                     /** FeatureView source. */
-                    public source?: ("bigQuerySource"|"featureRegistrySource");
+                    public source?: ("bigQuerySource"|"featureRegistrySource"|"vertexRagSource");
 
                     /**
                      * Creates a new FeatureView instance using the specified properties.
@@ -40530,6 +40549,109 @@ export namespace google {
                             public static getTypeUrl(typeUrlPrefix?: string): string;
                         }
                     }
+
+                    /** Properties of a VertexRagSource. */
+                    interface IVertexRagSource {
+
+                        /** VertexRagSource uri */
+                        uri?: (string|null);
+
+                        /** VertexRagSource ragCorpusId */
+                        ragCorpusId?: (number|Long|string|null);
+                    }
+
+                    /** Represents a VertexRagSource. */
+                    class VertexRagSource implements IVertexRagSource {
+
+                        /**
+                         * Constructs a new VertexRagSource.
+                         * @param [properties] Properties to set
+                         */
+                        constructor(properties?: google.cloud.aiplatform.v1.FeatureView.IVertexRagSource);
+
+                        /** VertexRagSource uri. */
+                        public uri: string;
+
+                        /** VertexRagSource ragCorpusId. */
+                        public ragCorpusId: (number|Long|string);
+
+                        /**
+                         * Creates a new VertexRagSource instance using the specified properties.
+                         * @param [properties] Properties to set
+                         * @returns VertexRagSource instance
+                         */
+                        public static create(properties?: google.cloud.aiplatform.v1.FeatureView.IVertexRagSource): google.cloud.aiplatform.v1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Encodes the specified VertexRagSource message. Does not implicitly {@link google.cloud.aiplatform.v1.FeatureView.VertexRagSource.verify|verify} messages.
+                         * @param message VertexRagSource message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encode(message: google.cloud.aiplatform.v1.FeatureView.IVertexRagSource, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Encodes the specified VertexRagSource message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1.FeatureView.VertexRagSource.verify|verify} messages.
+                         * @param message VertexRagSource message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encodeDelimited(message: google.cloud.aiplatform.v1.FeatureView.IVertexRagSource, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Decodes a VertexRagSource message from the specified reader or buffer.
+                         * @param reader Reader or buffer to decode from
+                         * @param [length] Message length if known beforehand
+                         * @returns VertexRagSource
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.aiplatform.v1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Decodes a VertexRagSource message from the specified reader or buffer, length delimited.
+                         * @param reader Reader or buffer to decode from
+                         * @returns VertexRagSource
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.aiplatform.v1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Verifies a VertexRagSource message.
+                         * @param message Plain object to verify
+                         * @returns `null` if valid, otherwise the reason why it is not
+                         */
+                        public static verify(message: { [k: string]: any }): (string|null);
+
+                        /**
+                         * Creates a VertexRagSource message from a plain object. Also converts values to their respective internal types.
+                         * @param object Plain object
+                         * @returns VertexRagSource
+                         */
+                        public static fromObject(object: { [k: string]: any }): google.cloud.aiplatform.v1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Creates a plain object from a VertexRagSource message. Also converts values to other types if specified.
+                         * @param message VertexRagSource
+                         * @param [options] Conversion options
+                         * @returns Plain object
+                         */
+                        public static toObject(message: google.cloud.aiplatform.v1.FeatureView.VertexRagSource, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+                        /**
+                         * Converts this VertexRagSource to JSON.
+                         * @returns JSON object
+                         */
+                        public toJSON(): { [k: string]: any };
+
+                        /**
+                         * Gets the default type url for VertexRagSource
+                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                         * @returns The default type url
+                         */
+                        public static getTypeUrl(typeUrlPrefix?: string): string;
+                    }
                 }
 
                 /** Properties of a FeatureViewSync. */
@@ -40675,6 +40797,9 @@ export namespace google {
 
                         /** SyncSummary totalSlot */
                         totalSlot?: (number|Long|string|null);
+
+                        /** SyncSummary systemWatermarkTime */
+                        systemWatermarkTime?: (google.protobuf.ITimestamp|null);
                     }
 
                     /** Represents a SyncSummary. */
@@ -40692,6 +40817,9 @@ export namespace google {
                         /** SyncSummary totalSlot. */
                         public totalSlot: (number|Long|string);
 
+                        /** SyncSummary systemWatermarkTime. */
+                        public systemWatermarkTime?: (google.protobuf.ITimestamp|null);
+
                         /**
                          * Creates a new SyncSummary instance using the specified properties.
                          * @param [properties] Properties to set
@@ -131597,6 +131725,9 @@ export namespace google {
 
                     /** CachedContent updateTime */
                     updateTime?: (google.protobuf.ITimestamp|null);
+
+                    /** CachedContent usageMetadata */
+                    usageMetadata?: (google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata|null);
                 }
 
                 /** Represents a CachedContent. */
@@ -131641,6 +131772,9 @@ export namespace google {
                     /** CachedContent updateTime. */
                     public updateTime?: (google.protobuf.ITimestamp|null);
 
+                    /** CachedContent usageMetadata. */
+                    public usageMetadata?: (google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata|null);
+
                     /** CachedContent expiration. */
                     public expiration?: ("expireTime"|"ttl");
 
@@ -131722,6 +131856,130 @@ export namespace google {
                     public static getTypeUrl(typeUrlPrefix?: string): string;
                 }
 
+                namespace CachedContent {
+
+                    /** Properties of a UsageMetadata. */
+                    interface IUsageMetadata {
+
+                        /** UsageMetadata totalTokenCount */
+                        totalTokenCount?: (number|null);
+
+                        /** UsageMetadata textCount */
+                        textCount?: (number|null);
+
+                        /** UsageMetadata imageCount */
+                        imageCount?: (number|null);
+
+                        /** UsageMetadata videoDurationSeconds */
+                        videoDurationSeconds?: (number|null);
+
+                        /** UsageMetadata audioDurationSeconds */
+                        audioDurationSeconds?: (number|null);
+                    }
+
+                    /** Represents a UsageMetadata. */
+                    class UsageMetadata implements IUsageMetadata {
+
+                        /**
+                         * Constructs a new UsageMetadata.
+                         * @param [properties] Properties to set
+                         */
+                        constructor(properties?: google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata);
+
+                        /** UsageMetadata totalTokenCount. */
+                        public totalTokenCount: number;
+
+                        /** UsageMetadata textCount. */
+                        public textCount: number;
+
+                        /** UsageMetadata imageCount. */
+                        public imageCount: number;
+
+                        /** UsageMetadata videoDurationSeconds. */
+                        public videoDurationSeconds: number;
+
+                        /** UsageMetadata audioDurationSeconds. */
+                        public audioDurationSeconds: number;
+
+                        /**
+                         * Creates a new UsageMetadata instance using the specified properties.
+                         * @param [properties] Properties to set
+                         * @returns UsageMetadata instance
+                         */
+                        public static create(properties?: google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata): google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata;
+
+                        /**
+                         * Encodes the specified UsageMetadata message. Does not implicitly {@link google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.verify|verify} messages.
+                         * @param message UsageMetadata message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encode(message: google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Encodes the specified UsageMetadata message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.verify|verify} messages.
+                         * @param message UsageMetadata message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encodeDelimited(message: google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Decodes a UsageMetadata message from the specified reader or buffer.
+                         * @param reader Reader or buffer to decode from
+                         * @param [length] Message length if known beforehand
+                         * @returns UsageMetadata
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata;
+
+                        /**
+                         * Decodes a UsageMetadata message from the specified reader or buffer, length delimited.
+                         * @param reader Reader or buffer to decode from
+                         * @returns UsageMetadata
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata;
+
+                        /**
+                         * Verifies a UsageMetadata message.
+                         * @param message Plain object to verify
+                         * @returns `null` if valid, otherwise the reason why it is not
+                         */
+                        public static verify(message: { [k: string]: any }): (string|null);
+
+                        /**
+                         * Creates a UsageMetadata message from a plain object. Also converts values to their respective internal types.
+                         * @param object Plain object
+                         * @returns UsageMetadata
+                         */
+                        public static fromObject(object: { [k: string]: any }): google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata;
+
+                        /**
+                         * Creates a plain object from a UsageMetadata message. Also converts values to other types if specified.
+                         * @param message UsageMetadata
+                         * @param [options] Conversion options
+                         * @returns Plain object
+                         */
+                        public static toObject(message: google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+                        /**
+                         * Converts this UsageMetadata to JSON.
+                         * @returns JSON object
+                         */
+                        public toJSON(): { [k: string]: any };
+
+                        /**
+                         * Gets the default type url for UsageMetadata
+                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                         * @returns The default type url
+                         */
+                        public static getTypeUrl(typeUrlPrefix?: string): string;
+                    }
+                }
+
                 /** HarmCategory enum. */
                 enum HarmCategory {
                     HARM_CATEGORY_UNSPECIFIED = 0,
@@ -136866,7 +137124,8 @@ export namespace google {
                         ON_DEMAND = 1,
                         LOW_COST = 2,
                         STANDARD = 3,
-                        SPOT = 4
+                        SPOT = 4,
+                        FLEX_START = 6
                     }
                 }
 
@@ -162566,8 +162825,14 @@ export namespace google {
                         /** BigQuery entityIdColumns */
                         entityIdColumns?: (string[]|null);
 
+                        /** BigQuery staticDataSource */
+                        staticDataSource?: (boolean|null);
+
                         /** BigQuery timeSeries */
                         timeSeries?: (google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.ITimeSeries|null);
+
+                        /** BigQuery dense */
+                        dense?: (boolean|null);
                     }
 
                     /** Represents a BigQuery. */
@@ -162585,9 +162850,15 @@ export namespace google {
                         /** BigQuery entityIdColumns. */
                         public entityIdColumns: string[];
 
+                        /** BigQuery staticDataSource. */
+                        public staticDataSource: boolean;
+
                         /** BigQuery timeSeries. */
                         public timeSeries?: (google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.ITimeSeries|null);
 
+                        /** BigQuery dense. */
+                        public dense: boolean;
+
                         /**
                          * Creates a new BigQuery instance using the specified properties.
                          * @param [properties] Properties to set
@@ -165936,6 +166207,9 @@ export namespace google {
                     /** FeatureView featureRegistrySource */
                     featureRegistrySource?: (google.cloud.aiplatform.v1beta1.FeatureView.IFeatureRegistrySource|null);
 
+                    /** FeatureView vertexRagSource */
+                    vertexRagSource?: (google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource|null);
+
                     /** FeatureView name */
                     name?: (string|null);
 
@@ -165988,6 +166262,9 @@ export namespace google {
                     /** FeatureView featureRegistrySource. */
                     public featureRegistrySource?: (google.cloud.aiplatform.v1beta1.FeatureView.IFeatureRegistrySource|null);
 
+                    /** FeatureView vertexRagSource. */
+                    public vertexRagSource?: (google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource|null);
+
                     /** FeatureView name. */
                     public name: string;
 
@@ -166025,7 +166302,7 @@ export namespace google {
                     public satisfiesPzi: boolean;
 
                     /** FeatureView source. */
-                    public source?: ("bigQuerySource"|"featureRegistrySource");
+                    public source?: ("bigQuerySource"|"featureRegistrySource"|"vertexRagSource");
 
                     /**
                      * Creates a new FeatureView instance using the specified properties.
@@ -167201,6 +167478,109 @@ export namespace google {
                         }
                     }
 
+                    /** Properties of a VertexRagSource. */
+                    interface IVertexRagSource {
+
+                        /** VertexRagSource uri */
+                        uri?: (string|null);
+
+                        /** VertexRagSource ragCorpusId */
+                        ragCorpusId?: (number|Long|string|null);
+                    }
+
+                    /** Represents a VertexRagSource. */
+                    class VertexRagSource implements IVertexRagSource {
+
+                        /**
+                         * Constructs a new VertexRagSource.
+                         * @param [properties] Properties to set
+                         */
+                        constructor(properties?: google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource);
+
+                        /** VertexRagSource uri. */
+                        public uri: string;
+
+                        /** VertexRagSource ragCorpusId. */
+                        public ragCorpusId: (number|Long|string);
+
+                        /**
+                         * Creates a new VertexRagSource instance using the specified properties.
+                         * @param [properties] Properties to set
+                         * @returns VertexRagSource instance
+                         */
+                        public static create(properties?: google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource): google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Encodes the specified VertexRagSource message. Does not implicitly {@link google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.verify|verify} messages.
+                         * @param message VertexRagSource message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encode(message: google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Encodes the specified VertexRagSource message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.verify|verify} messages.
+                         * @param message VertexRagSource message or plain object to encode
+                         * @param [writer] Writer to encode to
+                         * @returns Writer
+                         */
+                        public static encodeDelimited(message: google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource, writer?: $protobuf.Writer): $protobuf.Writer;
+
+                        /**
+                         * Decodes a VertexRagSource message from the specified reader or buffer.
+                         * @param reader Reader or buffer to decode from
+                         * @param [length] Message length if known beforehand
+                         * @returns VertexRagSource
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Decodes a VertexRagSource message from the specified reader or buffer, length delimited.
+                         * @param reader Reader or buffer to decode from
+                         * @returns VertexRagSource
+                         * @throws {Error} If the payload is not a reader or valid buffer
+                         * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                         */
+                        public static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Verifies a VertexRagSource message.
+                         * @param message Plain object to verify
+                         * @returns `null` if valid, otherwise the reason why it is not
+                         */
+                        public static verify(message: { [k: string]: any }): (string|null);
+
+                        /**
+                         * Creates a VertexRagSource message from a plain object. Also converts values to their respective internal types.
+                         * @param object Plain object
+                         * @returns VertexRagSource
+                         */
+                        public static fromObject(object: { [k: string]: any }): google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource;
+
+                        /**
+                         * Creates a plain object from a VertexRagSource message. Also converts values to other types if specified.
+                         * @param message VertexRagSource
+                         * @param [options] Conversion options
+                         * @returns Plain object
+                         */
+                        public static toObject(message: google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource, options?: $protobuf.IConversionOptions): { [k: string]: any };
+
+                        /**
+                         * Converts this VertexRagSource to JSON.
+                         * @returns JSON object
+                         */
+                        public toJSON(): { [k: string]: any };
+
+                        /**
+                         * Gets the default type url for VertexRagSource
+                         * @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                         * @returns The default type url
+                         */
+                        public static getTypeUrl(typeUrlPrefix?: string): string;
+                    }
+
                     /** ServiceAgentType enum. */
                     enum ServiceAgentType {
                         SERVICE_AGENT_TYPE_UNSPECIFIED = 0,
@@ -167352,6 +167732,9 @@ export namespace google {
 
                         /** SyncSummary totalSlot */
                         totalSlot?: (number|Long|string|null);
+
+                        /** SyncSummary systemWatermarkTime */
+                        systemWatermarkTime?: (google.protobuf.ITimestamp|null);
                     }
 
                     /** Represents a SyncSummary. */
@@ -167369,6 +167752,9 @@ export namespace google {
                         /** SyncSummary totalSlot. */
                         public totalSlot: (number|Long|string);
 
+                        /** SyncSummary systemWatermarkTime. */
+                        public systemWatermarkTime?: (google.protobuf.ITimestamp|null);
+
                         /**
                          * Creates a new SyncSummary instance using the specified properties.
                          * @param [properties] Properties to set
@@ -234181,6 +234567,9 @@ export namespace google {
 
                         /** UsageMetadata totalTokenCount */
                         totalTokenCount?: (number|null);
+
+                        /** UsageMetadata cachedContentTokenCount */
+                        cachedContentTokenCount?: (number|null);
                     }
 
                     /** Represents a UsageMetadata. */
@@ -234201,6 +234590,9 @@ export namespace google {
                         /** UsageMetadata totalTokenCount. */
                         public totalTokenCount: number;
 
+                        /** UsageMetadata cachedContentTokenCount. */
+                        public cachedContentTokenCount: number;
+
                         /**
                          * Creates a new UsageMetadata instance using the specified properties.
                          * @param [properties] Properties to set
diff --git a/packages/google-cloud-aiplatform/protos/protos.js b/packages/google-cloud-aiplatform/protos/protos.js
index 87dd849ad44..09409ceb086 100644
--- a/packages/google-cloud-aiplatform/protos/protos.js
+++ b/packages/google-cloud-aiplatform/protos/protos.js
@@ -35266,6 +35266,7 @@
                                 case 2:
                                 case 3:
                                 case 4:
+                                case 6:
                                     break;
                                 }
                             if (message.disableRetries != null && message.hasOwnProperty("disableRetries"))
@@ -35325,6 +35326,10 @@
                             case 4:
                                 message.strategy = 4;
                                 break;
+                            case "FLEX_START":
+                            case 6:
+                                message.strategy = 6;
+                                break;
                             }
                             if (object.disableRetries != null)
                                 message.disableRetries = Boolean(object.disableRetries);
@@ -35404,6 +35409,7 @@
                          * @property {number} LOW_COST=2 LOW_COST value
                          * @property {number} STANDARD=3 STANDARD value
                          * @property {number} SPOT=4 SPOT value
+                         * @property {number} FLEX_START=6 FLEX_START value
                          */
                         Scheduling.Strategy = (function() {
                             var valuesById = {}, values = Object.create(valuesById);
@@ -35412,6 +35418,7 @@
                             values[valuesById[2] = "LOW_COST"] = 2;
                             values[valuesById[3] = "STANDARD"] = 3;
                             values[valuesById[4] = "SPOT"] = 4;
+                            values[valuesById[6] = "FLEX_START"] = 6;
                             return values;
                         })();
     
@@ -91685,7 +91692,9 @@
                              * @interface IBigQuery
                              * @property {google.cloud.aiplatform.v1.IBigQuerySource|null} [bigQuerySource] BigQuery bigQuerySource
                              * @property {Array.<string>|null} [entityIdColumns] BigQuery entityIdColumns
+                             * @property {boolean|null} [staticDataSource] BigQuery staticDataSource
                              * @property {google.cloud.aiplatform.v1.FeatureGroup.BigQuery.ITimeSeries|null} [timeSeries] BigQuery timeSeries
+                             * @property {boolean|null} [dense] BigQuery dense
                              */
     
                             /**
@@ -91720,6 +91729,14 @@
                              */
                             BigQuery.prototype.entityIdColumns = $util.emptyArray;
     
+                            /**
+                             * BigQuery staticDataSource.
+                             * @member {boolean} staticDataSource
+                             * @memberof google.cloud.aiplatform.v1.FeatureGroup.BigQuery
+                             * @instance
+                             */
+                            BigQuery.prototype.staticDataSource = false;
+    
                             /**
                              * BigQuery timeSeries.
                              * @member {google.cloud.aiplatform.v1.FeatureGroup.BigQuery.ITimeSeries|null|undefined} timeSeries
@@ -91728,6 +91745,14 @@
                              */
                             BigQuery.prototype.timeSeries = null;
     
+                            /**
+                             * BigQuery dense.
+                             * @member {boolean} dense
+                             * @memberof google.cloud.aiplatform.v1.FeatureGroup.BigQuery
+                             * @instance
+                             */
+                            BigQuery.prototype.dense = false;
+    
                             /**
                              * Creates a new BigQuery instance using the specified properties.
                              * @function create
@@ -91757,8 +91782,12 @@
                                 if (message.entityIdColumns != null && message.entityIdColumns.length)
                                     for (var i = 0; i < message.entityIdColumns.length; ++i)
                                         writer.uint32(/* id 2, wireType 2 =*/18).string(message.entityIdColumns[i]);
+                                if (message.staticDataSource != null && Object.hasOwnProperty.call(message, "staticDataSource"))
+                                    writer.uint32(/* id 3, wireType 0 =*/24).bool(message.staticDataSource);
                                 if (message.timeSeries != null && Object.hasOwnProperty.call(message, "timeSeries"))
                                     $root.google.cloud.aiplatform.v1.FeatureGroup.BigQuery.TimeSeries.encode(message.timeSeries, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+                                if (message.dense != null && Object.hasOwnProperty.call(message, "dense"))
+                                    writer.uint32(/* id 5, wireType 0 =*/40).bool(message.dense);
                                 return writer;
                             };
     
@@ -91803,10 +91832,18 @@
                                             message.entityIdColumns.push(reader.string());
                                             break;
                                         }
+                                    case 3: {
+                                            message.staticDataSource = reader.bool();
+                                            break;
+                                        }
                                     case 4: {
                                             message.timeSeries = $root.google.cloud.aiplatform.v1.FeatureGroup.BigQuery.TimeSeries.decode(reader, reader.uint32());
                                             break;
                                         }
+                                    case 5: {
+                                            message.dense = reader.bool();
+                                            break;
+                                        }
                                     default:
                                         reader.skipType(tag & 7);
                                         break;
@@ -91854,11 +91891,17 @@
                                         if (!$util.isString(message.entityIdColumns[i]))
                                             return "entityIdColumns: string[] expected";
                                 }
+                                if (message.staticDataSource != null && message.hasOwnProperty("staticDataSource"))
+                                    if (typeof message.staticDataSource !== "boolean")
+                                        return "staticDataSource: boolean expected";
                                 if (message.timeSeries != null && message.hasOwnProperty("timeSeries")) {
                                     var error = $root.google.cloud.aiplatform.v1.FeatureGroup.BigQuery.TimeSeries.verify(message.timeSeries);
                                     if (error)
                                         return "timeSeries." + error;
                                 }
+                                if (message.dense != null && message.hasOwnProperty("dense"))
+                                    if (typeof message.dense !== "boolean")
+                                        return "dense: boolean expected";
                                 return null;
                             };
     
@@ -91886,11 +91929,15 @@
                                     for (var i = 0; i < object.entityIdColumns.length; ++i)
                                         message.entityIdColumns[i] = String(object.entityIdColumns[i]);
                                 }
+                                if (object.staticDataSource != null)
+                                    message.staticDataSource = Boolean(object.staticDataSource);
                                 if (object.timeSeries != null) {
                                     if (typeof object.timeSeries !== "object")
                                         throw TypeError(".google.cloud.aiplatform.v1.FeatureGroup.BigQuery.timeSeries: object expected");
                                     message.timeSeries = $root.google.cloud.aiplatform.v1.FeatureGroup.BigQuery.TimeSeries.fromObject(object.timeSeries);
                                 }
+                                if (object.dense != null)
+                                    message.dense = Boolean(object.dense);
                                 return message;
                             };
     
@@ -91911,7 +91958,9 @@
                                     object.entityIdColumns = [];
                                 if (options.defaults) {
                                     object.bigQuerySource = null;
+                                    object.staticDataSource = false;
                                     object.timeSeries = null;
+                                    object.dense = false;
                                 }
                                 if (message.bigQuerySource != null && message.hasOwnProperty("bigQuerySource"))
                                     object.bigQuerySource = $root.google.cloud.aiplatform.v1.BigQuerySource.toObject(message.bigQuerySource, options);
@@ -91920,8 +91969,12 @@
                                     for (var j = 0; j < message.entityIdColumns.length; ++j)
                                         object.entityIdColumns[j] = message.entityIdColumns[j];
                                 }
+                                if (message.staticDataSource != null && message.hasOwnProperty("staticDataSource"))
+                                    object.staticDataSource = message.staticDataSource;
                                 if (message.timeSeries != null && message.hasOwnProperty("timeSeries"))
                                     object.timeSeries = $root.google.cloud.aiplatform.v1.FeatureGroup.BigQuery.TimeSeries.toObject(message.timeSeries, options);
+                                if (message.dense != null && message.hasOwnProperty("dense"))
+                                    object.dense = message.dense;
                                 return object;
                             };
     
@@ -99026,6 +99079,7 @@
                          * @interface IFeatureView
                          * @property {google.cloud.aiplatform.v1.FeatureView.IBigQuerySource|null} [bigQuerySource] FeatureView bigQuerySource
                          * @property {google.cloud.aiplatform.v1.FeatureView.IFeatureRegistrySource|null} [featureRegistrySource] FeatureView featureRegistrySource
+                         * @property {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource|null} [vertexRagSource] FeatureView vertexRagSource
                          * @property {string|null} [name] FeatureView name
                          * @property {google.protobuf.ITimestamp|null} [createTime] FeatureView createTime
                          * @property {google.protobuf.ITimestamp|null} [updateTime] FeatureView updateTime
@@ -99069,6 +99123,14 @@
                          */
                         FeatureView.prototype.featureRegistrySource = null;
     
+                        /**
+                         * FeatureView vertexRagSource.
+                         * @member {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource|null|undefined} vertexRagSource
+                         * @memberof google.cloud.aiplatform.v1.FeatureView
+                         * @instance
+                         */
+                        FeatureView.prototype.vertexRagSource = null;
+    
                         /**
                          * FeatureView name.
                          * @member {string} name
@@ -99146,12 +99208,12 @@
     
                         /**
                          * FeatureView source.
-                         * @member {"bigQuerySource"|"featureRegistrySource"|undefined} source
+                         * @member {"bigQuerySource"|"featureRegistrySource"|"vertexRagSource"|undefined} source
                          * @memberof google.cloud.aiplatform.v1.FeatureView
                          * @instance
                          */
                         Object.defineProperty(FeatureView.prototype, "source", {
-                            get: $util.oneOfGetter($oneOfFields = ["bigQuerySource", "featureRegistrySource"]),
+                            get: $util.oneOfGetter($oneOfFields = ["bigQuerySource", "featureRegistrySource", "vertexRagSource"]),
                             set: $util.oneOfSetter($oneOfFields)
                         });
     
@@ -99198,6 +99260,8 @@
                                 $root.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.encode(message.featureRegistrySource, writer.uint32(/* id 9, wireType 2 =*/74).fork()).ldelim();
                             if (message.indexConfig != null && Object.hasOwnProperty.call(message, "indexConfig"))
                                 $root.google.cloud.aiplatform.v1.FeatureView.IndexConfig.encode(message.indexConfig, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim();
+                            if (message.vertexRagSource != null && Object.hasOwnProperty.call(message, "vertexRagSource"))
+                                $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource.encode(message.vertexRagSource, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();
                             if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs"))
                                 writer.uint32(/* id 19, wireType 0 =*/152).bool(message.satisfiesPzs);
                             if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi"))
@@ -99244,6 +99308,10 @@
                                         message.featureRegistrySource = $root.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.decode(reader, reader.uint32());
                                         break;
                                     }
+                                case 18: {
+                                        message.vertexRagSource = $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource.decode(reader, reader.uint32());
+                                        break;
+                                    }
                                 case 1: {
                                         message.name = reader.string();
                                         break;
@@ -99353,6 +99421,16 @@
                                         return "featureRegistrySource." + error;
                                 }
                             }
+                            if (message.vertexRagSource != null && message.hasOwnProperty("vertexRagSource")) {
+                                if (properties.source === 1)
+                                    return "source: multiple values";
+                                properties.source = 1;
+                                {
+                                    var error = $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource.verify(message.vertexRagSource);
+                                    if (error)
+                                        return "vertexRagSource." + error;
+                                }
+                            }
                             if (message.name != null && message.hasOwnProperty("name"))
                                 if (!$util.isString(message.name))
                                     return "name: string expected";
@@ -99418,6 +99496,11 @@
                                     throw TypeError(".google.cloud.aiplatform.v1.FeatureView.featureRegistrySource: object expected");
                                 message.featureRegistrySource = $root.google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.fromObject(object.featureRegistrySource);
                             }
+                            if (object.vertexRagSource != null) {
+                                if (typeof object.vertexRagSource !== "object")
+                                    throw TypeError(".google.cloud.aiplatform.v1.FeatureView.vertexRagSource: object expected");
+                                message.vertexRagSource = $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource.fromObject(object.vertexRagSource);
+                            }
                             if (object.name != null)
                                 message.name = String(object.name);
                             if (object.createTime != null) {
@@ -99509,6 +99592,11 @@
                             }
                             if (message.indexConfig != null && message.hasOwnProperty("indexConfig"))
                                 object.indexConfig = $root.google.cloud.aiplatform.v1.FeatureView.IndexConfig.toObject(message.indexConfig, options);
+                            if (message.vertexRagSource != null && message.hasOwnProperty("vertexRagSource")) {
+                                object.vertexRagSource = $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource.toObject(message.vertexRagSource, options);
+                                if (options.oneofs)
+                                    object.source = "vertexRagSource";
+                            }
                             if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs"))
                                 object.satisfiesPzs = message.satisfiesPzs;
                             if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi"))
@@ -101371,6 +101459,247 @@
                             return FeatureRegistrySource;
                         })();
     
+                        FeatureView.VertexRagSource = (function() {
+    
+                            /**
+                             * Properties of a VertexRagSource.
+                             * @memberof google.cloud.aiplatform.v1.FeatureView
+                             * @interface IVertexRagSource
+                             * @property {string|null} [uri] VertexRagSource uri
+                             * @property {number|Long|null} [ragCorpusId] VertexRagSource ragCorpusId
+                             */
+    
+                            /**
+                             * Constructs a new VertexRagSource.
+                             * @memberof google.cloud.aiplatform.v1.FeatureView
+                             * @classdesc Represents a VertexRagSource.
+                             * @implements IVertexRagSource
+                             * @constructor
+                             * @param {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource=} [properties] Properties to set
+                             */
+                            function VertexRagSource(properties) {
+                                if (properties)
+                                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+                                        if (properties[keys[i]] != null)
+                                            this[keys[i]] = properties[keys[i]];
+                            }
+    
+                            /**
+                             * VertexRagSource uri.
+                             * @member {string} uri
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @instance
+                             */
+                            VertexRagSource.prototype.uri = "";
+    
+                            /**
+                             * VertexRagSource ragCorpusId.
+                             * @member {number|Long} ragCorpusId
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @instance
+                             */
+                            VertexRagSource.prototype.ragCorpusId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+    
+                            /**
+                             * Creates a new VertexRagSource instance using the specified properties.
+                             * @function create
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource=} [properties] Properties to set
+                             * @returns {google.cloud.aiplatform.v1.FeatureView.VertexRagSource} VertexRagSource instance
+                             */
+                            VertexRagSource.create = function create(properties) {
+                                return new VertexRagSource(properties);
+                            };
+    
+                            /**
+                             * Encodes the specified VertexRagSource message. Does not implicitly {@link google.cloud.aiplatform.v1.FeatureView.VertexRagSource.verify|verify} messages.
+                             * @function encode
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource} message VertexRagSource message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            VertexRagSource.encode = function encode(message, writer) {
+                                if (!writer)
+                                    writer = $Writer.create();
+                                if (message.uri != null && Object.hasOwnProperty.call(message, "uri"))
+                                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri);
+                                if (message.ragCorpusId != null && Object.hasOwnProperty.call(message, "ragCorpusId"))
+                                    writer.uint32(/* id 2, wireType 0 =*/16).int64(message.ragCorpusId);
+                                return writer;
+                            };
+    
+                            /**
+                             * Encodes the specified VertexRagSource message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1.FeatureView.VertexRagSource.verify|verify} messages.
+                             * @function encodeDelimited
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1.FeatureView.IVertexRagSource} message VertexRagSource message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            VertexRagSource.encodeDelimited = function encodeDelimited(message, writer) {
+                                return this.encode(message, writer).ldelim();
+                            };
+    
+                            /**
+                             * Decodes a VertexRagSource message from the specified reader or buffer.
+                             * @function decode
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @param {number} [length] Message length if known beforehand
+                             * @returns {google.cloud.aiplatform.v1.FeatureView.VertexRagSource} VertexRagSource
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            VertexRagSource.decode = function decode(reader, length) {
+                                if (!(reader instanceof $Reader))
+                                    reader = $Reader.create(reader);
+                                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource();
+                                while (reader.pos < end) {
+                                    var tag = reader.uint32();
+                                    switch (tag >>> 3) {
+                                    case 1: {
+                                            message.uri = reader.string();
+                                            break;
+                                        }
+                                    case 2: {
+                                            message.ragCorpusId = reader.int64();
+                                            break;
+                                        }
+                                    default:
+                                        reader.skipType(tag & 7);
+                                        break;
+                                    }
+                                }
+                                return message;
+                            };
+    
+                            /**
+                             * Decodes a VertexRagSource message from the specified reader or buffer, length delimited.
+                             * @function decodeDelimited
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @returns {google.cloud.aiplatform.v1.FeatureView.VertexRagSource} VertexRagSource
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            VertexRagSource.decodeDelimited = function decodeDelimited(reader) {
+                                if (!(reader instanceof $Reader))
+                                    reader = new $Reader(reader);
+                                return this.decode(reader, reader.uint32());
+                            };
+    
+                            /**
+                             * Verifies a VertexRagSource message.
+                             * @function verify
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {Object.<string,*>} message Plain object to verify
+                             * @returns {string|null} `null` if valid, otherwise the reason why it is not
+                             */
+                            VertexRagSource.verify = function verify(message) {
+                                if (typeof message !== "object" || message === null)
+                                    return "object expected";
+                                if (message.uri != null && message.hasOwnProperty("uri"))
+                                    if (!$util.isString(message.uri))
+                                        return "uri: string expected";
+                                if (message.ragCorpusId != null && message.hasOwnProperty("ragCorpusId"))
+                                    if (!$util.isInteger(message.ragCorpusId) && !(message.ragCorpusId && $util.isInteger(message.ragCorpusId.low) && $util.isInteger(message.ragCorpusId.high)))
+                                        return "ragCorpusId: integer|Long expected";
+                                return null;
+                            };
+    
+                            /**
+                             * Creates a VertexRagSource message from a plain object. Also converts values to their respective internal types.
+                             * @function fromObject
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {Object.<string,*>} object Plain object
+                             * @returns {google.cloud.aiplatform.v1.FeatureView.VertexRagSource} VertexRagSource
+                             */
+                            VertexRagSource.fromObject = function fromObject(object) {
+                                if (object instanceof $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource)
+                                    return object;
+                                var message = new $root.google.cloud.aiplatform.v1.FeatureView.VertexRagSource();
+                                if (object.uri != null)
+                                    message.uri = String(object.uri);
+                                if (object.ragCorpusId != null)
+                                    if ($util.Long)
+                                        (message.ragCorpusId = $util.Long.fromValue(object.ragCorpusId)).unsigned = false;
+                                    else if (typeof object.ragCorpusId === "string")
+                                        message.ragCorpusId = parseInt(object.ragCorpusId, 10);
+                                    else if (typeof object.ragCorpusId === "number")
+                                        message.ragCorpusId = object.ragCorpusId;
+                                    else if (typeof object.ragCorpusId === "object")
+                                        message.ragCorpusId = new $util.LongBits(object.ragCorpusId.low >>> 0, object.ragCorpusId.high >>> 0).toNumber();
+                                return message;
+                            };
+    
+                            /**
+                             * Creates a plain object from a VertexRagSource message. Also converts values to other types if specified.
+                             * @function toObject
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1.FeatureView.VertexRagSource} message VertexRagSource
+                             * @param {$protobuf.IConversionOptions} [options] Conversion options
+                             * @returns {Object.<string,*>} Plain object
+                             */
+                            VertexRagSource.toObject = function toObject(message, options) {
+                                if (!options)
+                                    options = {};
+                                var object = {};
+                                if (options.defaults) {
+                                    object.uri = "";
+                                    if ($util.Long) {
+                                        var long = new $util.Long(0, 0, false);
+                                        object.ragCorpusId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+                                    } else
+                                        object.ragCorpusId = options.longs === String ? "0" : 0;
+                                }
+                                if (message.uri != null && message.hasOwnProperty("uri"))
+                                    object.uri = message.uri;
+                                if (message.ragCorpusId != null && message.hasOwnProperty("ragCorpusId"))
+                                    if (typeof message.ragCorpusId === "number")
+                                        object.ragCorpusId = options.longs === String ? String(message.ragCorpusId) : message.ragCorpusId;
+                                    else
+                                        object.ragCorpusId = options.longs === String ? $util.Long.prototype.toString.call(message.ragCorpusId) : options.longs === Number ? new $util.LongBits(message.ragCorpusId.low >>> 0, message.ragCorpusId.high >>> 0).toNumber() : message.ragCorpusId;
+                                return object;
+                            };
+    
+                            /**
+                             * Converts this VertexRagSource to JSON.
+                             * @function toJSON
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @instance
+                             * @returns {Object.<string,*>} JSON object
+                             */
+                            VertexRagSource.prototype.toJSON = function toJSON() {
+                                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+                            };
+    
+                            /**
+                             * Gets the default type url for VertexRagSource
+                             * @function getTypeUrl
+                             * @memberof google.cloud.aiplatform.v1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                             * @returns {string} The default type url
+                             */
+                            VertexRagSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+                                if (typeUrlPrefix === undefined) {
+                                    typeUrlPrefix = "type.googleapis.com";
+                                }
+                                return typeUrlPrefix + "/google.cloud.aiplatform.v1.FeatureView.VertexRagSource";
+                            };
+    
+                            return VertexRagSource;
+                        })();
+    
                         return FeatureView;
                     })();
     
@@ -101741,6 +102070,7 @@
                              * @interface ISyncSummary
                              * @property {number|Long|null} [rowSynced] SyncSummary rowSynced
                              * @property {number|Long|null} [totalSlot] SyncSummary totalSlot
+                             * @property {google.protobuf.ITimestamp|null} [systemWatermarkTime] SyncSummary systemWatermarkTime
                              */
     
                             /**
@@ -101774,6 +102104,14 @@
                              */
                             SyncSummary.prototype.totalSlot = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
     
+                            /**
+                             * SyncSummary systemWatermarkTime.
+                             * @member {google.protobuf.ITimestamp|null|undefined} systemWatermarkTime
+                             * @memberof google.cloud.aiplatform.v1.FeatureViewSync.SyncSummary
+                             * @instance
+                             */
+                            SyncSummary.prototype.systemWatermarkTime = null;
+    
                             /**
                              * Creates a new SyncSummary instance using the specified properties.
                              * @function create
@@ -101802,6 +102140,8 @@
                                     writer.uint32(/* id 1, wireType 0 =*/8).int64(message.rowSynced);
                                 if (message.totalSlot != null && Object.hasOwnProperty.call(message, "totalSlot"))
                                     writer.uint32(/* id 2, wireType 0 =*/16).int64(message.totalSlot);
+                                if (message.systemWatermarkTime != null && Object.hasOwnProperty.call(message, "systemWatermarkTime"))
+                                    $root.google.protobuf.Timestamp.encode(message.systemWatermarkTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
                                 return writer;
                             };
     
@@ -101844,6 +102184,10 @@
                                             message.totalSlot = reader.int64();
                                             break;
                                         }
+                                    case 5: {
+                                            message.systemWatermarkTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+                                            break;
+                                        }
                                     default:
                                         reader.skipType(tag & 7);
                                         break;
@@ -101885,6 +102229,11 @@
                                 if (message.totalSlot != null && message.hasOwnProperty("totalSlot"))
                                     if (!$util.isInteger(message.totalSlot) && !(message.totalSlot && $util.isInteger(message.totalSlot.low) && $util.isInteger(message.totalSlot.high)))
                                         return "totalSlot: integer|Long expected";
+                                if (message.systemWatermarkTime != null && message.hasOwnProperty("systemWatermarkTime")) {
+                                    var error = $root.google.protobuf.Timestamp.verify(message.systemWatermarkTime);
+                                    if (error)
+                                        return "systemWatermarkTime." + error;
+                                }
                                 return null;
                             };
     
@@ -101918,6 +102267,11 @@
                                         message.totalSlot = object.totalSlot;
                                     else if (typeof object.totalSlot === "object")
                                         message.totalSlot = new $util.LongBits(object.totalSlot.low >>> 0, object.totalSlot.high >>> 0).toNumber();
+                                if (object.systemWatermarkTime != null) {
+                                    if (typeof object.systemWatermarkTime !== "object")
+                                        throw TypeError(".google.cloud.aiplatform.v1.FeatureViewSync.SyncSummary.systemWatermarkTime: object expected");
+                                    message.systemWatermarkTime = $root.google.protobuf.Timestamp.fromObject(object.systemWatermarkTime);
+                                }
                                 return message;
                             };
     
@@ -101945,6 +102299,7 @@
                                         object.totalSlot = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                                     } else
                                         object.totalSlot = options.longs === String ? "0" : 0;
+                                    object.systemWatermarkTime = null;
                                 }
                                 if (message.rowSynced != null && message.hasOwnProperty("rowSynced"))
                                     if (typeof message.rowSynced === "number")
@@ -101956,6 +102311,8 @@
                                         object.totalSlot = options.longs === String ? String(message.totalSlot) : message.totalSlot;
                                     else
                                         object.totalSlot = options.longs === String ? $util.Long.prototype.toString.call(message.totalSlot) : options.longs === Number ? new $util.LongBits(message.totalSlot.low >>> 0, message.totalSlot.high >>> 0).toNumber() : message.totalSlot;
+                                if (message.systemWatermarkTime != null && message.hasOwnProperty("systemWatermarkTime"))
+                                    object.systemWatermarkTime = $root.google.protobuf.Timestamp.toObject(message.systemWatermarkTime, options);
                                 return object;
                             };
     
@@ -321180,6 +321537,7 @@
                          * @property {google.cloud.aiplatform.v1beta1.IToolConfig|null} [toolConfig] CachedContent toolConfig
                          * @property {google.protobuf.ITimestamp|null} [createTime] CachedContent createTime
                          * @property {google.protobuf.ITimestamp|null} [updateTime] CachedContent updateTime
+                         * @property {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata|null} [usageMetadata] CachedContent usageMetadata
                          */
     
                         /**
@@ -321287,6 +321645,14 @@
                          */
                         CachedContent.prototype.updateTime = null;
     
+                        /**
+                         * CachedContent usageMetadata.
+                         * @member {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata|null|undefined} usageMetadata
+                         * @memberof google.cloud.aiplatform.v1beta1.CachedContent
+                         * @instance
+                         */
+                        CachedContent.prototype.usageMetadata = null;
+    
                         // OneOf field names bound to virtual getters and setters
                         var $oneOfFields;
     
@@ -321349,6 +321715,8 @@
                                 $root.google.protobuf.Duration.encode(message.ttl, writer.uint32(/* id 10, wireType 2 =*/82).fork()).ldelim();
                             if (message.displayName != null && Object.hasOwnProperty.call(message, "displayName"))
                                 writer.uint32(/* id 11, wireType 2 =*/90).string(message.displayName);
+                            if (message.usageMetadata != null && Object.hasOwnProperty.call(message, "usageMetadata"))
+                                $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.encode(message.usageMetadata, writer.uint32(/* id 12, wireType 2 =*/98).fork()).ldelim();
                             return writer;
                         };
     
@@ -321431,6 +321799,10 @@
                                         message.updateTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
                                         break;
                                     }
+                                case 12: {
+                                        message.usageMetadata = $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.decode(reader, reader.uint32());
+                                        break;
+                                    }
                                 default:
                                     reader.skipType(tag & 7);
                                     break;
@@ -321532,6 +321904,11 @@
                                 if (error)
                                     return "updateTime." + error;
                             }
+                            if (message.usageMetadata != null && message.hasOwnProperty("usageMetadata")) {
+                                var error = $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.verify(message.usageMetadata);
+                                if (error)
+                                    return "usageMetadata." + error;
+                            }
                             return null;
                         };
     
@@ -321603,6 +321980,11 @@
                                     throw TypeError(".google.cloud.aiplatform.v1beta1.CachedContent.updateTime: object expected");
                                 message.updateTime = $root.google.protobuf.Timestamp.fromObject(object.updateTime);
                             }
+                            if (object.usageMetadata != null) {
+                                if (typeof object.usageMetadata !== "object")
+                                    throw TypeError(".google.cloud.aiplatform.v1beta1.CachedContent.usageMetadata: object expected");
+                                message.usageMetadata = $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.fromObject(object.usageMetadata);
+                            }
                             return message;
                         };
     
@@ -321631,6 +322013,7 @@
                                 object.createTime = null;
                                 object.updateTime = null;
                                 object.displayName = "";
+                                object.usageMetadata = null;
                             }
                             if (message.name != null && message.hasOwnProperty("name"))
                                 object.name = message.name;
@@ -321666,6 +322049,8 @@
                             }
                             if (message.displayName != null && message.hasOwnProperty("displayName"))
                                 object.displayName = message.displayName;
+                            if (message.usageMetadata != null && message.hasOwnProperty("usageMetadata"))
+                                object.usageMetadata = $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.toObject(message.usageMetadata, options);
                             return object;
                         };
     
@@ -321695,6 +322080,302 @@
                             return typeUrlPrefix + "/google.cloud.aiplatform.v1beta1.CachedContent";
                         };
     
+                        CachedContent.UsageMetadata = (function() {
+    
+                            /**
+                             * Properties of a UsageMetadata.
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent
+                             * @interface IUsageMetadata
+                             * @property {number|null} [totalTokenCount] UsageMetadata totalTokenCount
+                             * @property {number|null} [textCount] UsageMetadata textCount
+                             * @property {number|null} [imageCount] UsageMetadata imageCount
+                             * @property {number|null} [videoDurationSeconds] UsageMetadata videoDurationSeconds
+                             * @property {number|null} [audioDurationSeconds] UsageMetadata audioDurationSeconds
+                             */
+    
+                            /**
+                             * Constructs a new UsageMetadata.
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent
+                             * @classdesc Represents a UsageMetadata.
+                             * @implements IUsageMetadata
+                             * @constructor
+                             * @param {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata=} [properties] Properties to set
+                             */
+                            function UsageMetadata(properties) {
+                                if (properties)
+                                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+                                        if (properties[keys[i]] != null)
+                                            this[keys[i]] = properties[keys[i]];
+                            }
+    
+                            /**
+                             * UsageMetadata totalTokenCount.
+                             * @member {number} totalTokenCount
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.totalTokenCount = 0;
+    
+                            /**
+                             * UsageMetadata textCount.
+                             * @member {number} textCount
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.textCount = 0;
+    
+                            /**
+                             * UsageMetadata imageCount.
+                             * @member {number} imageCount
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.imageCount = 0;
+    
+                            /**
+                             * UsageMetadata videoDurationSeconds.
+                             * @member {number} videoDurationSeconds
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.videoDurationSeconds = 0;
+    
+                            /**
+                             * UsageMetadata audioDurationSeconds.
+                             * @member {number} audioDurationSeconds
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.audioDurationSeconds = 0;
+    
+                            /**
+                             * Creates a new UsageMetadata instance using the specified properties.
+                             * @function create
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata=} [properties] Properties to set
+                             * @returns {google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata} UsageMetadata instance
+                             */
+                            UsageMetadata.create = function create(properties) {
+                                return new UsageMetadata(properties);
+                            };
+    
+                            /**
+                             * Encodes the specified UsageMetadata message. Does not implicitly {@link google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.verify|verify} messages.
+                             * @function encode
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata} message UsageMetadata message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            UsageMetadata.encode = function encode(message, writer) {
+                                if (!writer)
+                                    writer = $Writer.create();
+                                if (message.totalTokenCount != null && Object.hasOwnProperty.call(message, "totalTokenCount"))
+                                    writer.uint32(/* id 1, wireType 0 =*/8).int32(message.totalTokenCount);
+                                if (message.textCount != null && Object.hasOwnProperty.call(message, "textCount"))
+                                    writer.uint32(/* id 2, wireType 0 =*/16).int32(message.textCount);
+                                if (message.imageCount != null && Object.hasOwnProperty.call(message, "imageCount"))
+                                    writer.uint32(/* id 3, wireType 0 =*/24).int32(message.imageCount);
+                                if (message.videoDurationSeconds != null && Object.hasOwnProperty.call(message, "videoDurationSeconds"))
+                                    writer.uint32(/* id 4, wireType 0 =*/32).int32(message.videoDurationSeconds);
+                                if (message.audioDurationSeconds != null && Object.hasOwnProperty.call(message, "audioDurationSeconds"))
+                                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.audioDurationSeconds);
+                                return writer;
+                            };
+    
+                            /**
+                             * Encodes the specified UsageMetadata message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata.verify|verify} messages.
+                             * @function encodeDelimited
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.CachedContent.IUsageMetadata} message UsageMetadata message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            UsageMetadata.encodeDelimited = function encodeDelimited(message, writer) {
+                                return this.encode(message, writer).ldelim();
+                            };
+    
+                            /**
+                             * Decodes a UsageMetadata message from the specified reader or buffer.
+                             * @function decode
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @param {number} [length] Message length if known beforehand
+                             * @returns {google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata} UsageMetadata
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            UsageMetadata.decode = function decode(reader, length) {
+                                if (!(reader instanceof $Reader))
+                                    reader = $Reader.create(reader);
+                                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata();
+                                while (reader.pos < end) {
+                                    var tag = reader.uint32();
+                                    switch (tag >>> 3) {
+                                    case 1: {
+                                            message.totalTokenCount = reader.int32();
+                                            break;
+                                        }
+                                    case 2: {
+                                            message.textCount = reader.int32();
+                                            break;
+                                        }
+                                    case 3: {
+                                            message.imageCount = reader.int32();
+                                            break;
+                                        }
+                                    case 4: {
+                                            message.videoDurationSeconds = reader.int32();
+                                            break;
+                                        }
+                                    case 5: {
+                                            message.audioDurationSeconds = reader.int32();
+                                            break;
+                                        }
+                                    default:
+                                        reader.skipType(tag & 7);
+                                        break;
+                                    }
+                                }
+                                return message;
+                            };
+    
+                            /**
+                             * Decodes a UsageMetadata message from the specified reader or buffer, length delimited.
+                             * @function decodeDelimited
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @returns {google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata} UsageMetadata
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            UsageMetadata.decodeDelimited = function decodeDelimited(reader) {
+                                if (!(reader instanceof $Reader))
+                                    reader = new $Reader(reader);
+                                return this.decode(reader, reader.uint32());
+                            };
+    
+                            /**
+                             * Verifies a UsageMetadata message.
+                             * @function verify
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {Object.<string,*>} message Plain object to verify
+                             * @returns {string|null} `null` if valid, otherwise the reason why it is not
+                             */
+                            UsageMetadata.verify = function verify(message) {
+                                if (typeof message !== "object" || message === null)
+                                    return "object expected";
+                                if (message.totalTokenCount != null && message.hasOwnProperty("totalTokenCount"))
+                                    if (!$util.isInteger(message.totalTokenCount))
+                                        return "totalTokenCount: integer expected";
+                                if (message.textCount != null && message.hasOwnProperty("textCount"))
+                                    if (!$util.isInteger(message.textCount))
+                                        return "textCount: integer expected";
+                                if (message.imageCount != null && message.hasOwnProperty("imageCount"))
+                                    if (!$util.isInteger(message.imageCount))
+                                        return "imageCount: integer expected";
+                                if (message.videoDurationSeconds != null && message.hasOwnProperty("videoDurationSeconds"))
+                                    if (!$util.isInteger(message.videoDurationSeconds))
+                                        return "videoDurationSeconds: integer expected";
+                                if (message.audioDurationSeconds != null && message.hasOwnProperty("audioDurationSeconds"))
+                                    if (!$util.isInteger(message.audioDurationSeconds))
+                                        return "audioDurationSeconds: integer expected";
+                                return null;
+                            };
+    
+                            /**
+                             * Creates a UsageMetadata message from a plain object. Also converts values to their respective internal types.
+                             * @function fromObject
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {Object.<string,*>} object Plain object
+                             * @returns {google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata} UsageMetadata
+                             */
+                            UsageMetadata.fromObject = function fromObject(object) {
+                                if (object instanceof $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata)
+                                    return object;
+                                var message = new $root.google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata();
+                                if (object.totalTokenCount != null)
+                                    message.totalTokenCount = object.totalTokenCount | 0;
+                                if (object.textCount != null)
+                                    message.textCount = object.textCount | 0;
+                                if (object.imageCount != null)
+                                    message.imageCount = object.imageCount | 0;
+                                if (object.videoDurationSeconds != null)
+                                    message.videoDurationSeconds = object.videoDurationSeconds | 0;
+                                if (object.audioDurationSeconds != null)
+                                    message.audioDurationSeconds = object.audioDurationSeconds | 0;
+                                return message;
+                            };
+    
+                            /**
+                             * Creates a plain object from a UsageMetadata message. Also converts values to other types if specified.
+                             * @function toObject
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata} message UsageMetadata
+                             * @param {$protobuf.IConversionOptions} [options] Conversion options
+                             * @returns {Object.<string,*>} Plain object
+                             */
+                            UsageMetadata.toObject = function toObject(message, options) {
+                                if (!options)
+                                    options = {};
+                                var object = {};
+                                if (options.defaults) {
+                                    object.totalTokenCount = 0;
+                                    object.textCount = 0;
+                                    object.imageCount = 0;
+                                    object.videoDurationSeconds = 0;
+                                    object.audioDurationSeconds = 0;
+                                }
+                                if (message.totalTokenCount != null && message.hasOwnProperty("totalTokenCount"))
+                                    object.totalTokenCount = message.totalTokenCount;
+                                if (message.textCount != null && message.hasOwnProperty("textCount"))
+                                    object.textCount = message.textCount;
+                                if (message.imageCount != null && message.hasOwnProperty("imageCount"))
+                                    object.imageCount = message.imageCount;
+                                if (message.videoDurationSeconds != null && message.hasOwnProperty("videoDurationSeconds"))
+                                    object.videoDurationSeconds = message.videoDurationSeconds;
+                                if (message.audioDurationSeconds != null && message.hasOwnProperty("audioDurationSeconds"))
+                                    object.audioDurationSeconds = message.audioDurationSeconds;
+                                return object;
+                            };
+    
+                            /**
+                             * Converts this UsageMetadata to JSON.
+                             * @function toJSON
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @instance
+                             * @returns {Object.<string,*>} JSON object
+                             */
+                            UsageMetadata.prototype.toJSON = function toJSON() {
+                                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+                            };
+    
+                            /**
+                             * Gets the default type url for UsageMetadata
+                             * @function getTypeUrl
+                             * @memberof google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata
+                             * @static
+                             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                             * @returns {string} The default type url
+                             */
+                            UsageMetadata.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+                                if (typeUrlPrefix === undefined) {
+                                    typeUrlPrefix = "type.googleapis.com";
+                                }
+                                return typeUrlPrefix + "/google.cloud.aiplatform.v1beta1.CachedContent.UsageMetadata";
+                            };
+    
+                            return UsageMetadata;
+                        })();
+    
                         return CachedContent;
                     })();
     
@@ -335674,6 +336355,7 @@
                                 case 2:
                                 case 3:
                                 case 4:
+                                case 6:
                                     break;
                                 }
                             if (message.disableRetries != null && message.hasOwnProperty("disableRetries"))
@@ -335733,6 +336415,10 @@
                             case 4:
                                 message.strategy = 4;
                                 break;
+                            case "FLEX_START":
+                            case 6:
+                                message.strategy = 6;
+                                break;
                             }
                             if (object.disableRetries != null)
                                 message.disableRetries = Boolean(object.disableRetries);
@@ -335812,6 +336498,7 @@
                          * @property {number} LOW_COST=2 LOW_COST value
                          * @property {number} STANDARD=3 STANDARD value
                          * @property {number} SPOT=4 SPOT value
+                         * @property {number} FLEX_START=6 FLEX_START value
                          */
                         Scheduling.Strategy = (function() {
                             var valuesById = {}, values = Object.create(valuesById);
@@ -335820,6 +336507,7 @@
                             values[valuesById[2] = "LOW_COST"] = 2;
                             values[valuesById[3] = "STANDARD"] = 3;
                             values[valuesById[4] = "SPOT"] = 4;
+                            values[valuesById[6] = "FLEX_START"] = 6;
                             return values;
                         })();
     
@@ -398407,7 +399095,9 @@
                              * @interface IBigQuery
                              * @property {google.cloud.aiplatform.v1beta1.IBigQuerySource|null} [bigQuerySource] BigQuery bigQuerySource
                              * @property {Array.<string>|null} [entityIdColumns] BigQuery entityIdColumns
+                             * @property {boolean|null} [staticDataSource] BigQuery staticDataSource
                              * @property {google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.ITimeSeries|null} [timeSeries] BigQuery timeSeries
+                             * @property {boolean|null} [dense] BigQuery dense
                              */
     
                             /**
@@ -398442,6 +399132,14 @@
                              */
                             BigQuery.prototype.entityIdColumns = $util.emptyArray;
     
+                            /**
+                             * BigQuery staticDataSource.
+                             * @member {boolean} staticDataSource
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery
+                             * @instance
+                             */
+                            BigQuery.prototype.staticDataSource = false;
+    
                             /**
                              * BigQuery timeSeries.
                              * @member {google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.ITimeSeries|null|undefined} timeSeries
@@ -398450,6 +399148,14 @@
                              */
                             BigQuery.prototype.timeSeries = null;
     
+                            /**
+                             * BigQuery dense.
+                             * @member {boolean} dense
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery
+                             * @instance
+                             */
+                            BigQuery.prototype.dense = false;
+    
                             /**
                              * Creates a new BigQuery instance using the specified properties.
                              * @function create
@@ -398479,8 +399185,12 @@
                                 if (message.entityIdColumns != null && message.entityIdColumns.length)
                                     for (var i = 0; i < message.entityIdColumns.length; ++i)
                                         writer.uint32(/* id 2, wireType 2 =*/18).string(message.entityIdColumns[i]);
+                                if (message.staticDataSource != null && Object.hasOwnProperty.call(message, "staticDataSource"))
+                                    writer.uint32(/* id 3, wireType 0 =*/24).bool(message.staticDataSource);
                                 if (message.timeSeries != null && Object.hasOwnProperty.call(message, "timeSeries"))
                                     $root.google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.TimeSeries.encode(message.timeSeries, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();
+                                if (message.dense != null && Object.hasOwnProperty.call(message, "dense"))
+                                    writer.uint32(/* id 5, wireType 0 =*/40).bool(message.dense);
                                 return writer;
                             };
     
@@ -398525,10 +399235,18 @@
                                             message.entityIdColumns.push(reader.string());
                                             break;
                                         }
+                                    case 3: {
+                                            message.staticDataSource = reader.bool();
+                                            break;
+                                        }
                                     case 4: {
                                             message.timeSeries = $root.google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.TimeSeries.decode(reader, reader.uint32());
                                             break;
                                         }
+                                    case 5: {
+                                            message.dense = reader.bool();
+                                            break;
+                                        }
                                     default:
                                         reader.skipType(tag & 7);
                                         break;
@@ -398576,11 +399294,17 @@
                                         if (!$util.isString(message.entityIdColumns[i]))
                                             return "entityIdColumns: string[] expected";
                                 }
+                                if (message.staticDataSource != null && message.hasOwnProperty("staticDataSource"))
+                                    if (typeof message.staticDataSource !== "boolean")
+                                        return "staticDataSource: boolean expected";
                                 if (message.timeSeries != null && message.hasOwnProperty("timeSeries")) {
                                     var error = $root.google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.TimeSeries.verify(message.timeSeries);
                                     if (error)
                                         return "timeSeries." + error;
                                 }
+                                if (message.dense != null && message.hasOwnProperty("dense"))
+                                    if (typeof message.dense !== "boolean")
+                                        return "dense: boolean expected";
                                 return null;
                             };
     
@@ -398608,11 +399332,15 @@
                                     for (var i = 0; i < object.entityIdColumns.length; ++i)
                                         message.entityIdColumns[i] = String(object.entityIdColumns[i]);
                                 }
+                                if (object.staticDataSource != null)
+                                    message.staticDataSource = Boolean(object.staticDataSource);
                                 if (object.timeSeries != null) {
                                     if (typeof object.timeSeries !== "object")
                                         throw TypeError(".google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.timeSeries: object expected");
                                     message.timeSeries = $root.google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.TimeSeries.fromObject(object.timeSeries);
                                 }
+                                if (object.dense != null)
+                                    message.dense = Boolean(object.dense);
                                 return message;
                             };
     
@@ -398633,7 +399361,9 @@
                                     object.entityIdColumns = [];
                                 if (options.defaults) {
                                     object.bigQuerySource = null;
+                                    object.staticDataSource = false;
                                     object.timeSeries = null;
+                                    object.dense = false;
                                 }
                                 if (message.bigQuerySource != null && message.hasOwnProperty("bigQuerySource"))
                                     object.bigQuerySource = $root.google.cloud.aiplatform.v1beta1.BigQuerySource.toObject(message.bigQuerySource, options);
@@ -398642,8 +399372,12 @@
                                     for (var j = 0; j < message.entityIdColumns.length; ++j)
                                         object.entityIdColumns[j] = message.entityIdColumns[j];
                                 }
+                                if (message.staticDataSource != null && message.hasOwnProperty("staticDataSource"))
+                                    object.staticDataSource = message.staticDataSource;
                                 if (message.timeSeries != null && message.hasOwnProperty("timeSeries"))
                                     object.timeSeries = $root.google.cloud.aiplatform.v1beta1.FeatureGroup.BigQuery.TimeSeries.toObject(message.timeSeries, options);
+                                if (message.dense != null && message.hasOwnProperty("dense"))
+                                    object.dense = message.dense;
                                 return object;
                             };
     
@@ -405979,6 +406713,7 @@
                          * @interface IFeatureView
                          * @property {google.cloud.aiplatform.v1beta1.FeatureView.IBigQuerySource|null} [bigQuerySource] FeatureView bigQuerySource
                          * @property {google.cloud.aiplatform.v1beta1.FeatureView.IFeatureRegistrySource|null} [featureRegistrySource] FeatureView featureRegistrySource
+                         * @property {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource|null} [vertexRagSource] FeatureView vertexRagSource
                          * @property {string|null} [name] FeatureView name
                          * @property {google.protobuf.ITimestamp|null} [createTime] FeatureView createTime
                          * @property {google.protobuf.ITimestamp|null} [updateTime] FeatureView updateTime
@@ -406025,6 +406760,14 @@
                          */
                         FeatureView.prototype.featureRegistrySource = null;
     
+                        /**
+                         * FeatureView vertexRagSource.
+                         * @member {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource|null|undefined} vertexRagSource
+                         * @memberof google.cloud.aiplatform.v1beta1.FeatureView
+                         * @instance
+                         */
+                        FeatureView.prototype.vertexRagSource = null;
+    
                         /**
                          * FeatureView name.
                          * @member {string} name
@@ -406126,12 +406869,12 @@
     
                         /**
                          * FeatureView source.
-                         * @member {"bigQuerySource"|"featureRegistrySource"|undefined} source
+                         * @member {"bigQuerySource"|"featureRegistrySource"|"vertexRagSource"|undefined} source
                          * @memberof google.cloud.aiplatform.v1beta1.FeatureView
                          * @instance
                          */
                         Object.defineProperty(FeatureView.prototype, "source", {
-                            get: $util.oneOfGetter($oneOfFields = ["bigQuerySource", "featureRegistrySource"]),
+                            get: $util.oneOfGetter($oneOfFields = ["bigQuerySource", "featureRegistrySource", "vertexRagSource"]),
                             set: $util.oneOfSetter($oneOfFields)
                         });
     
@@ -406184,6 +406927,8 @@
                                 writer.uint32(/* id 14, wireType 0 =*/112).int32(message.serviceAgentType);
                             if (message.indexConfig != null && Object.hasOwnProperty.call(message, "indexConfig"))
                                 $root.google.cloud.aiplatform.v1beta1.FeatureView.IndexConfig.encode(message.indexConfig, writer.uint32(/* id 15, wireType 2 =*/122).fork()).ldelim();
+                            if (message.vertexRagSource != null && Object.hasOwnProperty.call(message, "vertexRagSource"))
+                                $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.encode(message.vertexRagSource, writer.uint32(/* id 18, wireType 2 =*/146).fork()).ldelim();
                             if (message.satisfiesPzs != null && Object.hasOwnProperty.call(message, "satisfiesPzs"))
                                 writer.uint32(/* id 19, wireType 0 =*/152).bool(message.satisfiesPzs);
                             if (message.satisfiesPzi != null && Object.hasOwnProperty.call(message, "satisfiesPzi"))
@@ -406230,6 +406975,10 @@
                                         message.featureRegistrySource = $root.google.cloud.aiplatform.v1beta1.FeatureView.FeatureRegistrySource.decode(reader, reader.uint32());
                                         break;
                                     }
+                                case 18: {
+                                        message.vertexRagSource = $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.decode(reader, reader.uint32());
+                                        break;
+                                    }
                                 case 1: {
                                         message.name = reader.string();
                                         break;
@@ -406351,6 +407100,16 @@
                                         return "featureRegistrySource." + error;
                                 }
                             }
+                            if (message.vertexRagSource != null && message.hasOwnProperty("vertexRagSource")) {
+                                if (properties.source === 1)
+                                    return "source: multiple values";
+                                properties.source = 1;
+                                {
+                                    var error = $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.verify(message.vertexRagSource);
+                                    if (error)
+                                        return "vertexRagSource." + error;
+                                }
+                            }
                             if (message.name != null && message.hasOwnProperty("name"))
                                 if (!$util.isString(message.name))
                                     return "name: string expected";
@@ -406433,6 +407192,11 @@
                                     throw TypeError(".google.cloud.aiplatform.v1beta1.FeatureView.featureRegistrySource: object expected");
                                 message.featureRegistrySource = $root.google.cloud.aiplatform.v1beta1.FeatureView.FeatureRegistrySource.fromObject(object.featureRegistrySource);
                             }
+                            if (object.vertexRagSource != null) {
+                                if (typeof object.vertexRagSource !== "object")
+                                    throw TypeError(".google.cloud.aiplatform.v1beta1.FeatureView.vertexRagSource: object expected");
+                                message.vertexRagSource = $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.fromObject(object.vertexRagSource);
+                            }
                             if (object.name != null)
                                 message.name = String(object.name);
                             if (object.createTime != null) {
@@ -406560,6 +407324,11 @@
                                 object.serviceAgentType = options.enums === String ? $root.google.cloud.aiplatform.v1beta1.FeatureView.ServiceAgentType[message.serviceAgentType] === undefined ? message.serviceAgentType : $root.google.cloud.aiplatform.v1beta1.FeatureView.ServiceAgentType[message.serviceAgentType] : message.serviceAgentType;
                             if (message.indexConfig != null && message.hasOwnProperty("indexConfig"))
                                 object.indexConfig = $root.google.cloud.aiplatform.v1beta1.FeatureView.IndexConfig.toObject(message.indexConfig, options);
+                            if (message.vertexRagSource != null && message.hasOwnProperty("vertexRagSource")) {
+                                object.vertexRagSource = $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.toObject(message.vertexRagSource, options);
+                                if (options.oneofs)
+                                    object.source = "vertexRagSource";
+                            }
                             if (message.satisfiesPzs != null && message.hasOwnProperty("satisfiesPzs"))
                                 object.satisfiesPzs = message.satisfiesPzs;
                             if (message.satisfiesPzi != null && message.hasOwnProperty("satisfiesPzi"))
@@ -409286,6 +410055,247 @@
                             return FeatureRegistrySource;
                         })();
     
+                        FeatureView.VertexRagSource = (function() {
+    
+                            /**
+                             * Properties of a VertexRagSource.
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView
+                             * @interface IVertexRagSource
+                             * @property {string|null} [uri] VertexRagSource uri
+                             * @property {number|Long|null} [ragCorpusId] VertexRagSource ragCorpusId
+                             */
+    
+                            /**
+                             * Constructs a new VertexRagSource.
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView
+                             * @classdesc Represents a VertexRagSource.
+                             * @implements IVertexRagSource
+                             * @constructor
+                             * @param {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource=} [properties] Properties to set
+                             */
+                            function VertexRagSource(properties) {
+                                if (properties)
+                                    for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)
+                                        if (properties[keys[i]] != null)
+                                            this[keys[i]] = properties[keys[i]];
+                            }
+    
+                            /**
+                             * VertexRagSource uri.
+                             * @member {string} uri
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @instance
+                             */
+                            VertexRagSource.prototype.uri = "";
+    
+                            /**
+                             * VertexRagSource ragCorpusId.
+                             * @member {number|Long} ragCorpusId
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @instance
+                             */
+                            VertexRagSource.prototype.ragCorpusId = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
+    
+                            /**
+                             * Creates a new VertexRagSource instance using the specified properties.
+                             * @function create
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource=} [properties] Properties to set
+                             * @returns {google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource} VertexRagSource instance
+                             */
+                            VertexRagSource.create = function create(properties) {
+                                return new VertexRagSource(properties);
+                            };
+    
+                            /**
+                             * Encodes the specified VertexRagSource message. Does not implicitly {@link google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.verify|verify} messages.
+                             * @function encode
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource} message VertexRagSource message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            VertexRagSource.encode = function encode(message, writer) {
+                                if (!writer)
+                                    writer = $Writer.create();
+                                if (message.uri != null && Object.hasOwnProperty.call(message, "uri"))
+                                    writer.uint32(/* id 1, wireType 2 =*/10).string(message.uri);
+                                if (message.ragCorpusId != null && Object.hasOwnProperty.call(message, "ragCorpusId"))
+                                    writer.uint32(/* id 2, wireType 0 =*/16).int64(message.ragCorpusId);
+                                return writer;
+                            };
+    
+                            /**
+                             * Encodes the specified VertexRagSource message, length delimited. Does not implicitly {@link google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource.verify|verify} messages.
+                             * @function encodeDelimited
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.FeatureView.IVertexRagSource} message VertexRagSource message or plain object to encode
+                             * @param {$protobuf.Writer} [writer] Writer to encode to
+                             * @returns {$protobuf.Writer} Writer
+                             */
+                            VertexRagSource.encodeDelimited = function encodeDelimited(message, writer) {
+                                return this.encode(message, writer).ldelim();
+                            };
+    
+                            /**
+                             * Decodes a VertexRagSource message from the specified reader or buffer.
+                             * @function decode
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @param {number} [length] Message length if known beforehand
+                             * @returns {google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource} VertexRagSource
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            VertexRagSource.decode = function decode(reader, length) {
+                                if (!(reader instanceof $Reader))
+                                    reader = $Reader.create(reader);
+                                var end = length === undefined ? reader.len : reader.pos + length, message = new $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource();
+                                while (reader.pos < end) {
+                                    var tag = reader.uint32();
+                                    switch (tag >>> 3) {
+                                    case 1: {
+                                            message.uri = reader.string();
+                                            break;
+                                        }
+                                    case 2: {
+                                            message.ragCorpusId = reader.int64();
+                                            break;
+                                        }
+                                    default:
+                                        reader.skipType(tag & 7);
+                                        break;
+                                    }
+                                }
+                                return message;
+                            };
+    
+                            /**
+                             * Decodes a VertexRagSource message from the specified reader or buffer, length delimited.
+                             * @function decodeDelimited
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from
+                             * @returns {google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource} VertexRagSource
+                             * @throws {Error} If the payload is not a reader or valid buffer
+                             * @throws {$protobuf.util.ProtocolError} If required fields are missing
+                             */
+                            VertexRagSource.decodeDelimited = function decodeDelimited(reader) {
+                                if (!(reader instanceof $Reader))
+                                    reader = new $Reader(reader);
+                                return this.decode(reader, reader.uint32());
+                            };
+    
+                            /**
+                             * Verifies a VertexRagSource message.
+                             * @function verify
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {Object.<string,*>} message Plain object to verify
+                             * @returns {string|null} `null` if valid, otherwise the reason why it is not
+                             */
+                            VertexRagSource.verify = function verify(message) {
+                                if (typeof message !== "object" || message === null)
+                                    return "object expected";
+                                if (message.uri != null && message.hasOwnProperty("uri"))
+                                    if (!$util.isString(message.uri))
+                                        return "uri: string expected";
+                                if (message.ragCorpusId != null && message.hasOwnProperty("ragCorpusId"))
+                                    if (!$util.isInteger(message.ragCorpusId) && !(message.ragCorpusId && $util.isInteger(message.ragCorpusId.low) && $util.isInteger(message.ragCorpusId.high)))
+                                        return "ragCorpusId: integer|Long expected";
+                                return null;
+                            };
+    
+                            /**
+                             * Creates a VertexRagSource message from a plain object. Also converts values to their respective internal types.
+                             * @function fromObject
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {Object.<string,*>} object Plain object
+                             * @returns {google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource} VertexRagSource
+                             */
+                            VertexRagSource.fromObject = function fromObject(object) {
+                                if (object instanceof $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource)
+                                    return object;
+                                var message = new $root.google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource();
+                                if (object.uri != null)
+                                    message.uri = String(object.uri);
+                                if (object.ragCorpusId != null)
+                                    if ($util.Long)
+                                        (message.ragCorpusId = $util.Long.fromValue(object.ragCorpusId)).unsigned = false;
+                                    else if (typeof object.ragCorpusId === "string")
+                                        message.ragCorpusId = parseInt(object.ragCorpusId, 10);
+                                    else if (typeof object.ragCorpusId === "number")
+                                        message.ragCorpusId = object.ragCorpusId;
+                                    else if (typeof object.ragCorpusId === "object")
+                                        message.ragCorpusId = new $util.LongBits(object.ragCorpusId.low >>> 0, object.ragCorpusId.high >>> 0).toNumber();
+                                return message;
+                            };
+    
+                            /**
+                             * Creates a plain object from a VertexRagSource message. Also converts values to other types if specified.
+                             * @function toObject
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource} message VertexRagSource
+                             * @param {$protobuf.IConversionOptions} [options] Conversion options
+                             * @returns {Object.<string,*>} Plain object
+                             */
+                            VertexRagSource.toObject = function toObject(message, options) {
+                                if (!options)
+                                    options = {};
+                                var object = {};
+                                if (options.defaults) {
+                                    object.uri = "";
+                                    if ($util.Long) {
+                                        var long = new $util.Long(0, 0, false);
+                                        object.ragCorpusId = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
+                                    } else
+                                        object.ragCorpusId = options.longs === String ? "0" : 0;
+                                }
+                                if (message.uri != null && message.hasOwnProperty("uri"))
+                                    object.uri = message.uri;
+                                if (message.ragCorpusId != null && message.hasOwnProperty("ragCorpusId"))
+                                    if (typeof message.ragCorpusId === "number")
+                                        object.ragCorpusId = options.longs === String ? String(message.ragCorpusId) : message.ragCorpusId;
+                                    else
+                                        object.ragCorpusId = options.longs === String ? $util.Long.prototype.toString.call(message.ragCorpusId) : options.longs === Number ? new $util.LongBits(message.ragCorpusId.low >>> 0, message.ragCorpusId.high >>> 0).toNumber() : message.ragCorpusId;
+                                return object;
+                            };
+    
+                            /**
+                             * Converts this VertexRagSource to JSON.
+                             * @function toJSON
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @instance
+                             * @returns {Object.<string,*>} JSON object
+                             */
+                            VertexRagSource.prototype.toJSON = function toJSON() {
+                                return this.constructor.toObject(this, $protobuf.util.toJSONOptions);
+                            };
+    
+                            /**
+                             * Gets the default type url for VertexRagSource
+                             * @function getTypeUrl
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource
+                             * @static
+                             * @param {string} [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
+                             * @returns {string} The default type url
+                             */
+                            VertexRagSource.getTypeUrl = function getTypeUrl(typeUrlPrefix) {
+                                if (typeUrlPrefix === undefined) {
+                                    typeUrlPrefix = "type.googleapis.com";
+                                }
+                                return typeUrlPrefix + "/google.cloud.aiplatform.v1beta1.FeatureView.VertexRagSource";
+                            };
+    
+                            return VertexRagSource;
+                        })();
+    
                         /**
                          * ServiceAgentType enum.
                          * @name google.cloud.aiplatform.v1beta1.FeatureView.ServiceAgentType
@@ -409672,6 +410682,7 @@
                              * @interface ISyncSummary
                              * @property {number|Long|null} [rowSynced] SyncSummary rowSynced
                              * @property {number|Long|null} [totalSlot] SyncSummary totalSlot
+                             * @property {google.protobuf.ITimestamp|null} [systemWatermarkTime] SyncSummary systemWatermarkTime
                              */
     
                             /**
@@ -409705,6 +410716,14 @@
                              */
                             SyncSummary.prototype.totalSlot = $util.Long ? $util.Long.fromBits(0,0,false) : 0;
     
+                            /**
+                             * SyncSummary systemWatermarkTime.
+                             * @member {google.protobuf.ITimestamp|null|undefined} systemWatermarkTime
+                             * @memberof google.cloud.aiplatform.v1beta1.FeatureViewSync.SyncSummary
+                             * @instance
+                             */
+                            SyncSummary.prototype.systemWatermarkTime = null;
+    
                             /**
                              * Creates a new SyncSummary instance using the specified properties.
                              * @function create
@@ -409733,6 +410752,8 @@
                                     writer.uint32(/* id 1, wireType 0 =*/8).int64(message.rowSynced);
                                 if (message.totalSlot != null && Object.hasOwnProperty.call(message, "totalSlot"))
                                     writer.uint32(/* id 2, wireType 0 =*/16).int64(message.totalSlot);
+                                if (message.systemWatermarkTime != null && Object.hasOwnProperty.call(message, "systemWatermarkTime"))
+                                    $root.google.protobuf.Timestamp.encode(message.systemWatermarkTime, writer.uint32(/* id 5, wireType 2 =*/42).fork()).ldelim();
                                 return writer;
                             };
     
@@ -409775,6 +410796,10 @@
                                             message.totalSlot = reader.int64();
                                             break;
                                         }
+                                    case 5: {
+                                            message.systemWatermarkTime = $root.google.protobuf.Timestamp.decode(reader, reader.uint32());
+                                            break;
+                                        }
                                     default:
                                         reader.skipType(tag & 7);
                                         break;
@@ -409816,6 +410841,11 @@
                                 if (message.totalSlot != null && message.hasOwnProperty("totalSlot"))
                                     if (!$util.isInteger(message.totalSlot) && !(message.totalSlot && $util.isInteger(message.totalSlot.low) && $util.isInteger(message.totalSlot.high)))
                                         return "totalSlot: integer|Long expected";
+                                if (message.systemWatermarkTime != null && message.hasOwnProperty("systemWatermarkTime")) {
+                                    var error = $root.google.protobuf.Timestamp.verify(message.systemWatermarkTime);
+                                    if (error)
+                                        return "systemWatermarkTime." + error;
+                                }
                                 return null;
                             };
     
@@ -409849,6 +410879,11 @@
                                         message.totalSlot = object.totalSlot;
                                     else if (typeof object.totalSlot === "object")
                                         message.totalSlot = new $util.LongBits(object.totalSlot.low >>> 0, object.totalSlot.high >>> 0).toNumber();
+                                if (object.systemWatermarkTime != null) {
+                                    if (typeof object.systemWatermarkTime !== "object")
+                                        throw TypeError(".google.cloud.aiplatform.v1beta1.FeatureViewSync.SyncSummary.systemWatermarkTime: object expected");
+                                    message.systemWatermarkTime = $root.google.protobuf.Timestamp.fromObject(object.systemWatermarkTime);
+                                }
                                 return message;
                             };
     
@@ -409876,6 +410911,7 @@
                                         object.totalSlot = options.longs === String ? long.toString() : options.longs === Number ? long.toNumber() : long;
                                     } else
                                         object.totalSlot = options.longs === String ? "0" : 0;
+                                    object.systemWatermarkTime = null;
                                 }
                                 if (message.rowSynced != null && message.hasOwnProperty("rowSynced"))
                                     if (typeof message.rowSynced === "number")
@@ -409887,6 +410923,8 @@
                                         object.totalSlot = options.longs === String ? String(message.totalSlot) : message.totalSlot;
                                     else
                                         object.totalSlot = options.longs === String ? $util.Long.prototype.toString.call(message.totalSlot) : options.longs === Number ? new $util.LongBits(message.totalSlot.low >>> 0, message.totalSlot.high >>> 0).toNumber() : message.totalSlot;
+                                if (message.systemWatermarkTime != null && message.hasOwnProperty("systemWatermarkTime"))
+                                    object.systemWatermarkTime = $root.google.protobuf.Timestamp.toObject(message.systemWatermarkTime, options);
                                 return object;
                             };
     
@@ -570503,6 +571541,7 @@
                              * @property {number|null} [promptTokenCount] UsageMetadata promptTokenCount
                              * @property {number|null} [candidatesTokenCount] UsageMetadata candidatesTokenCount
                              * @property {number|null} [totalTokenCount] UsageMetadata totalTokenCount
+                             * @property {number|null} [cachedContentTokenCount] UsageMetadata cachedContentTokenCount
                              */
     
                             /**
@@ -570544,6 +571583,14 @@
                              */
                             UsageMetadata.prototype.totalTokenCount = 0;
     
+                            /**
+                             * UsageMetadata cachedContentTokenCount.
+                             * @member {number} cachedContentTokenCount
+                             * @memberof google.cloud.aiplatform.v1beta1.GenerateContentResponse.UsageMetadata
+                             * @instance
+                             */
+                            UsageMetadata.prototype.cachedContentTokenCount = 0;
+    
                             /**
                              * Creates a new UsageMetadata instance using the specified properties.
                              * @function create
@@ -570574,6 +571621,8 @@
                                     writer.uint32(/* id 2, wireType 0 =*/16).int32(message.candidatesTokenCount);
                                 if (message.totalTokenCount != null && Object.hasOwnProperty.call(message, "totalTokenCount"))
                                     writer.uint32(/* id 3, wireType 0 =*/24).int32(message.totalTokenCount);
+                                if (message.cachedContentTokenCount != null && Object.hasOwnProperty.call(message, "cachedContentTokenCount"))
+                                    writer.uint32(/* id 5, wireType 0 =*/40).int32(message.cachedContentTokenCount);
                                 return writer;
                             };
     
@@ -570620,6 +571669,10 @@
                                             message.totalTokenCount = reader.int32();
                                             break;
                                         }
+                                    case 5: {
+                                            message.cachedContentTokenCount = reader.int32();
+                                            break;
+                                        }
                                     default:
                                         reader.skipType(tag & 7);
                                         break;
@@ -570664,6 +571717,9 @@
                                 if (message.totalTokenCount != null && message.hasOwnProperty("totalTokenCount"))
                                     if (!$util.isInteger(message.totalTokenCount))
                                         return "totalTokenCount: integer expected";
+                                if (message.cachedContentTokenCount != null && message.hasOwnProperty("cachedContentTokenCount"))
+                                    if (!$util.isInteger(message.cachedContentTokenCount))
+                                        return "cachedContentTokenCount: integer expected";
                                 return null;
                             };
     
@@ -570685,6 +571741,8 @@
                                     message.candidatesTokenCount = object.candidatesTokenCount | 0;
                                 if (object.totalTokenCount != null)
                                     message.totalTokenCount = object.totalTokenCount | 0;
+                                if (object.cachedContentTokenCount != null)
+                                    message.cachedContentTokenCount = object.cachedContentTokenCount | 0;
                                 return message;
                             };
     
@@ -570705,6 +571763,7 @@
                                     object.promptTokenCount = 0;
                                     object.candidatesTokenCount = 0;
                                     object.totalTokenCount = 0;
+                                    object.cachedContentTokenCount = 0;
                                 }
                                 if (message.promptTokenCount != null && message.hasOwnProperty("promptTokenCount"))
                                     object.promptTokenCount = message.promptTokenCount;
@@ -570712,6 +571771,8 @@
                                     object.candidatesTokenCount = message.candidatesTokenCount;
                                 if (message.totalTokenCount != null && message.hasOwnProperty("totalTokenCount"))
                                     object.totalTokenCount = message.totalTokenCount;
+                                if (message.cachedContentTokenCount != null && message.hasOwnProperty("cachedContentTokenCount"))
+                                    object.cachedContentTokenCount = message.cachedContentTokenCount;
                                 return object;
                             };
     
diff --git a/packages/google-cloud-aiplatform/protos/protos.json b/packages/google-cloud-aiplatform/protos/protos.json
index 5b0dcb08ebb..4f5f0629d79 100644
--- a/packages/google-cloud-aiplatform/protos/protos.json
+++ b/packages/google-cloud-aiplatform/protos/protos.json
@@ -3767,7 +3767,8 @@
                             "ON_DEMAND": 1,
                             "LOW_COST": 2,
                             "STANDARD": 3,
-                            "SPOT": 4
+                            "SPOT": 4,
+                            "FLEX_START": 6
                           }
                         }
                       }
@@ -10076,12 +10077,26 @@
                                 "(google.api.field_behavior)": "OPTIONAL"
                               }
                             },
+                            "staticDataSource": {
+                              "type": "bool",
+                              "id": 3,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
+                            },
                             "timeSeries": {
                               "type": "TimeSeries",
                               "id": 4,
                               "options": {
                                 "(google.api.field_behavior)": "OPTIONAL"
                               }
+                            },
+                            "dense": {
+                              "type": "bool",
+                              "id": 5,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
                             }
                           },
                           "nested": {
@@ -10907,7 +10922,8 @@
                         "source": {
                           "oneof": [
                             "bigQuerySource",
-                            "featureRegistrySource"
+                            "featureRegistrySource",
+                            "vertexRagSource"
                           ]
                         }
                       },
@@ -10926,6 +10942,13 @@
                             "(google.api.field_behavior)": "OPTIONAL"
                           }
                         },
+                        "vertexRagSource": {
+                          "type": "VertexRagSource",
+                          "id": 18,
+                          "options": {
+                            "(google.api.field_behavior)": "OPTIONAL"
+                          }
+                        },
                         "name": {
                           "type": "string",
                           "id": 1,
@@ -11163,6 +11186,24 @@
                               }
                             }
                           }
+                        },
+                        "VertexRagSource": {
+                          "fields": {
+                            "uri": {
+                              "type": "string",
+                              "id": 1,
+                              "options": {
+                                "(google.api.field_behavior)": "REQUIRED"
+                              }
+                            },
+                            "ragCorpusId": {
+                              "type": "int64",
+                              "id": 2,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
+                            }
+                          }
                         }
                       }
                     },
@@ -11238,6 +11279,10 @@
                               "options": {
                                 "(google.api.field_behavior)": "OUTPUT_ONLY"
                               }
+                            },
+                            "systemWatermarkTime": {
+                              "type": "google.protobuf.Timestamp",
+                              "id": 5
                             }
                           }
                         }
@@ -34881,6 +34926,39 @@
                           "options": {
                             "(google.api.field_behavior)": "OUTPUT_ONLY"
                           }
+                        },
+                        "usageMetadata": {
+                          "type": "UsageMetadata",
+                          "id": 12,
+                          "options": {
+                            "(google.api.field_behavior)": "OUTPUT_ONLY"
+                          }
+                        }
+                      },
+                      "nested": {
+                        "UsageMetadata": {
+                          "fields": {
+                            "totalTokenCount": {
+                              "type": "int32",
+                              "id": 1
+                            },
+                            "textCount": {
+                              "type": "int32",
+                              "id": 2
+                            },
+                            "imageCount": {
+                              "type": "int32",
+                              "id": 3
+                            },
+                            "videoDurationSeconds": {
+                              "type": "int32",
+                              "id": 4
+                            },
+                            "audioDurationSeconds": {
+                              "type": "int32",
+                              "id": 5
+                            }
+                          }
                         }
                       }
                     },
@@ -36604,7 +36682,8 @@
                             "ON_DEMAND": 1,
                             "LOW_COST": 2,
                             "STANDARD": 3,
-                            "SPOT": 4
+                            "SPOT": 4,
+                            "FLEX_START": 6
                           }
                         }
                       }
@@ -43606,12 +43685,26 @@
                                 "(google.api.field_behavior)": "OPTIONAL"
                               }
                             },
+                            "staticDataSource": {
+                              "type": "bool",
+                              "id": 3,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
+                            },
                             "timeSeries": {
                               "type": "TimeSeries",
                               "id": 4,
                               "options": {
                                 "(google.api.field_behavior)": "OPTIONAL"
                               }
+                            },
+                            "dense": {
+                              "type": "bool",
+                              "id": 5,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
                             }
                           },
                           "nested": {
@@ -44459,7 +44552,8 @@
                         "source": {
                           "oneof": [
                             "bigQuerySource",
-                            "featureRegistrySource"
+                            "featureRegistrySource",
+                            "vertexRagSource"
                           ]
                         }
                       },
@@ -44478,6 +44572,13 @@
                             "(google.api.field_behavior)": "OPTIONAL"
                           }
                         },
+                        "vertexRagSource": {
+                          "type": "VertexRagSource",
+                          "id": 18,
+                          "options": {
+                            "(google.api.field_behavior)": "OPTIONAL"
+                          }
+                        },
                         "name": {
                           "type": "string",
                           "id": 1,
@@ -44841,6 +44942,24 @@
                             }
                           }
                         },
+                        "VertexRagSource": {
+                          "fields": {
+                            "uri": {
+                              "type": "string",
+                              "id": 1,
+                              "options": {
+                                "(google.api.field_behavior)": "REQUIRED"
+                              }
+                            },
+                            "ragCorpusId": {
+                              "type": "int64",
+                              "id": 2,
+                              "options": {
+                                "(google.api.field_behavior)": "OPTIONAL"
+                              }
+                            }
+                          }
+                        },
                         "ServiceAgentType": {
                           "values": {
                             "SERVICE_AGENT_TYPE_UNSPECIFIED": 0,
@@ -44922,6 +45041,10 @@
                               "options": {
                                 "(google.api.field_behavior)": "OUTPUT_ONLY"
                               }
+                            },
+                            "systemWatermarkTime": {
+                              "type": "google.protobuf.Timestamp",
+                              "id": 5
                             }
                           }
                         }
@@ -62980,6 +63103,13 @@
                             "totalTokenCount": {
                               "type": "int32",
                               "id": 3
+                            },
+                            "cachedContentTokenCount": {
+                              "type": "int32",
+                              "id": 5,
+                              "options": {
+                                "(google.api.field_behavior)": "OUTPUT_ONLY"
+                              }
                             }
                           }
                         }
diff --git a/packages/google-cloud-aiplatform/src/v1/dataset_service_client.ts b/packages/google-cloud-aiplatform/src/v1/dataset_service_client.ts
index c632d35a4ad..5aea5891281 100644
--- a/packages/google-cloud-aiplatform/src/v1/dataset_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/dataset_service_client.ts
@@ -443,6 +443,12 @@ export class DatasetServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -486,6 +492,14 @@ export class DatasetServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -529,6 +543,12 @@ export class DatasetServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/deployment_resource_pool_service_client.ts b/packages/google-cloud-aiplatform/src/v1/deployment_resource_pool_service_client.ts
index 7a5350f8493..e203a4aae82 100644
--- a/packages/google-cloud-aiplatform/src/v1/deployment_resource_pool_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/deployment_resource_pool_service_client.ts
@@ -427,6 +427,12 @@ export class DeploymentResourcePoolServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -470,6 +476,14 @@ export class DeploymentResourcePoolServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -513,6 +527,12 @@ export class DeploymentResourcePoolServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/endpoint_service_client.ts b/packages/google-cloud-aiplatform/src/v1/endpoint_service_client.ts
index d27d26fc3be..fcbb39512d8 100644
--- a/packages/google-cloud-aiplatform/src/v1/endpoint_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/endpoint_service_client.ts
@@ -418,6 +418,12 @@ export class EndpointServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -461,6 +467,14 @@ export class EndpointServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -504,6 +518,12 @@ export class EndpointServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/feature_online_store_admin_service_client.ts b/packages/google-cloud-aiplatform/src/v1/feature_online_store_admin_service_client.ts
index 8708f043f8d..e2752aee971 100644
--- a/packages/google-cloud-aiplatform/src/v1/feature_online_store_admin_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/feature_online_store_admin_service_client.ts
@@ -433,6 +433,12 @@ export class FeatureOnlineStoreAdminServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -476,6 +482,14 @@ export class FeatureOnlineStoreAdminServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -519,6 +533,12 @@ export class FeatureOnlineStoreAdminServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/feature_registry_service_client.ts b/packages/google-cloud-aiplatform/src/v1/feature_registry_service_client.ts
index c625276b289..37f7140f773 100644
--- a/packages/google-cloud-aiplatform/src/v1/feature_registry_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/feature_registry_service_client.ts
@@ -428,6 +428,12 @@ export class FeatureRegistryServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -471,6 +477,14 @@ export class FeatureRegistryServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -514,6 +528,12 @@ export class FeatureRegistryServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/featurestore_service_client.ts b/packages/google-cloud-aiplatform/src/v1/featurestore_service_client.ts
index c30391e1520..a9a1a691e06 100644
--- a/packages/google-cloud-aiplatform/src/v1/featurestore_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/featurestore_service_client.ts
@@ -436,6 +436,12 @@ export class FeaturestoreServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -479,6 +485,14 @@ export class FeaturestoreServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -522,6 +536,12 @@ export class FeaturestoreServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/index_endpoint_service_client.ts b/packages/google-cloud-aiplatform/src/v1/index_endpoint_service_client.ts
index 49e33429a5e..8698c91afce 100644
--- a/packages/google-cloud-aiplatform/src/v1/index_endpoint_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/index_endpoint_service_client.ts
@@ -418,6 +418,12 @@ export class IndexEndpointServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -461,6 +467,14 @@ export class IndexEndpointServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -504,6 +518,12 @@ export class IndexEndpointServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/index_service_client.ts b/packages/google-cloud-aiplatform/src/v1/index_service_client.ts
index 99833d24569..eaa8e4513f1 100644
--- a/packages/google-cloud-aiplatform/src/v1/index_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/index_service_client.ts
@@ -418,6 +418,12 @@ export class IndexServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -461,6 +467,14 @@ export class IndexServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -504,6 +518,12 @@ export class IndexServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/job_service_client.ts b/packages/google-cloud-aiplatform/src/v1/job_service_client.ts
index 6fc4b6bc509..057432c5eeb 100644
--- a/packages/google-cloud-aiplatform/src/v1/job_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/job_service_client.ts
@@ -454,6 +454,12 @@ export class JobServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -497,6 +503,14 @@ export class JobServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -540,6 +554,12 @@ export class JobServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/metadata_service_client.ts b/packages/google-cloud-aiplatform/src/v1/metadata_service_client.ts
index 933f9e251b2..1f395ddf0b4 100644
--- a/packages/google-cloud-aiplatform/src/v1/metadata_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/metadata_service_client.ts
@@ -441,6 +441,12 @@ export class MetadataServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -484,6 +490,14 @@ export class MetadataServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -527,6 +541,12 @@ export class MetadataServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/migration_service_client.ts b/packages/google-cloud-aiplatform/src/v1/migration_service_client.ts
index 14fee15d4ff..9124ae6b75b 100644
--- a/packages/google-cloud-aiplatform/src/v1/migration_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/migration_service_client.ts
@@ -419,6 +419,12 @@ export class MigrationServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -462,6 +468,14 @@ export class MigrationServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -505,6 +519,12 @@ export class MigrationServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/model_service_client.ts b/packages/google-cloud-aiplatform/src/v1/model_service_client.ts
index 75a4bd80e47..8b1efe56a0b 100644
--- a/packages/google-cloud-aiplatform/src/v1/model_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/model_service_client.ts
@@ -433,6 +433,12 @@ export class ModelServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -476,6 +482,14 @@ export class ModelServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -519,6 +533,12 @@ export class ModelServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/notebook_service_client.ts b/packages/google-cloud-aiplatform/src/v1/notebook_service_client.ts
index c37228bad2a..a1aebc2fc38 100644
--- a/packages/google-cloud-aiplatform/src/v1/notebook_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/notebook_service_client.ts
@@ -428,6 +428,12 @@ export class NotebookServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -471,6 +477,14 @@ export class NotebookServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -514,6 +528,12 @@ export class NotebookServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/persistent_resource_service_client.ts b/packages/google-cloud-aiplatform/src/v1/persistent_resource_service_client.ts
index 36f47d687d0..fe5c5bd2782 100644
--- a/packages/google-cloud-aiplatform/src/v1/persistent_resource_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/persistent_resource_service_client.ts
@@ -419,6 +419,12 @@ export class PersistentResourceServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -462,6 +468,14 @@ export class PersistentResourceServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -505,6 +519,12 @@ export class PersistentResourceServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/pipeline_service_client.ts b/packages/google-cloud-aiplatform/src/v1/pipeline_service_client.ts
index 6deba8d12a4..d7364871d31 100644
--- a/packages/google-cloud-aiplatform/src/v1/pipeline_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/pipeline_service_client.ts
@@ -428,6 +428,12 @@ export class PipelineServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -471,6 +477,14 @@ export class PipelineServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -514,6 +528,12 @@ export class PipelineServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/schedule_service_client.ts b/packages/google-cloud-aiplatform/src/v1/schedule_service_client.ts
index d1b32ae72f0..599e1c8c4b9 100644
--- a/packages/google-cloud-aiplatform/src/v1/schedule_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/schedule_service_client.ts
@@ -419,6 +419,12 @@ export class ScheduleServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -462,6 +468,14 @@ export class ScheduleServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -505,6 +519,12 @@ export class ScheduleServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/specialist_pool_service_client.ts b/packages/google-cloud-aiplatform/src/v1/specialist_pool_service_client.ts
index 0afbefaf0ad..b31d1d5e6de 100644
--- a/packages/google-cloud-aiplatform/src/v1/specialist_pool_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/specialist_pool_service_client.ts
@@ -424,6 +424,12 @@ export class SpecialistPoolServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -467,6 +473,14 @@ export class SpecialistPoolServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -510,6 +524,12 @@ export class SpecialistPoolServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/tensorboard_service_client.ts b/packages/google-cloud-aiplatform/src/v1/tensorboard_service_client.ts
index 1c2b10a399e..49d4abc765d 100644
--- a/packages/google-cloud-aiplatform/src/v1/tensorboard_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/tensorboard_service_client.ts
@@ -451,6 +451,12 @@ export class TensorboardServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -494,6 +500,14 @@ export class TensorboardServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -537,6 +551,12 @@ export class TensorboardServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },
diff --git a/packages/google-cloud-aiplatform/src/v1/vizier_service_client.ts b/packages/google-cloud-aiplatform/src/v1/vizier_service_client.ts
index d09119c92b8..27f017ad982 100644
--- a/packages/google-cloud-aiplatform/src/v1/vizier_service_client.ts
+++ b/packages/google-cloud-aiplatform/src/v1/vizier_service_client.ts
@@ -427,6 +427,12 @@ export class VizierServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:getIamPolicy',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:getIamPolicy',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:getIamPolicy',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:getIamPolicy',
             },
@@ -470,6 +476,14 @@ export class VizierServiceClient {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:setIamPolicy',
               body: '*',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:setIamPolicy',
+              body: '*',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:setIamPolicy',
+              body: '*',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:setIamPolicy',
               body: '*',
@@ -513,6 +527,12 @@ export class VizierServiceClient {
             {
               post: '/v1/{resource=projects/*/locations/*/notebookRuntimeTemplates/*}:testIamPermissions',
             },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*}:testIamPermissions',
+            },
+            {
+              post: '/v1/{resource=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:testIamPermissions',
+            },
             {
               post: '/ui/{resource=projects/*/locations/*/featurestores/*}:testIamPermissions',
             },