Class: Google::Cloud::AIPlatform::V1::FeatureView

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/aiplatform/v1/feature_view.rb

Overview

FeatureView is representation of values that the FeatureOnlineStore will serve based on its syncConfig.

Defined Under Namespace

Modules: ServiceAgentType Classes: BigQuerySource, BigtableMetadata, FeatureRegistrySource, IndexConfig, LabelsEntry, OptimizedConfig, SyncConfig, VertexRagSource

Instance Attribute Summary collapse

Instance Attribute Details

#big_query_source::Google::Cloud::AIPlatform::V1::FeatureView::BigQuerySource

Returns Optional. Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore.

Note: The following fields are mutually exclusive: big_query_source, feature_registry_source, vertex_rag_source. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Cloud::AIPlatform::V1::FeatureView::BigQuerySource)

    Optional. Configures how data is supposed to be extracted from a BigQuery source to be loaded onto the FeatureOnlineStore.

    Note: The following fields are mutually exclusive: big_query_source, feature_registry_source, vertex_rag_source. If a field in that set is populated, all other fields in the set will automatically be cleared.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#bigtable_metadata::Google::Cloud::AIPlatform::V1::FeatureView::BigtableMetadata (readonly)

Returns Metadata containing information about the Cloud Bigtable.

Returns:



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#create_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. Timestamp when this FeatureView was created.

Returns:



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#etag::String

Returns Optional. Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.

Returns:

  • (::String)

    Optional. Used to perform consistent read-modify-write updates. If not set, a blind "overwrite" update happens.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#feature_registry_source::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource

Returns Optional. Configures the features from a Feature Registry source that need to be loaded onto the FeatureOnlineStore.

Note: The following fields are mutually exclusive: feature_registry_source, big_query_source, vertex_rag_source. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource)

    Optional. Configures the features from a Feature Registry source that need to be loaded onto the FeatureOnlineStore.

    Note: The following fields are mutually exclusive: feature_registry_source, big_query_source, vertex_rag_source. If a field in that set is populated, all other fields in the set will automatically be cleared.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#index_config::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig

Returns Optional. Configuration for index preparation for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.

Returns:

  • (::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig)

    Optional. Configuration for index preparation for vector search. It contains the required configurations to create an index from source data, so that approximate nearest neighbor (a.k.a ANN) algorithms search can be performed during online serving.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#labels::Google::Protobuf::Map{::String => ::String}

Returns Optional. The labels with user-defined metadata to organize your FeatureViews.

Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.

See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded)." System reserved label keys are prefixed with "aiplatform.googleapis.com/" and are immutable.

Returns:

  • (::Google::Protobuf::Map{::String => ::String})

    Optional. The labels with user-defined metadata to organize your FeatureViews.

    Label keys and values can be no longer than 64 characters (Unicode codepoints), can only contain lowercase letters, numeric characters, underscores and dashes. International characters are allowed.

    See https://goo.gl/xmQnxf for more information on and examples of labels. No more than 64 user labels can be associated with one FeatureOnlineStore(System labels are excluded)." System reserved label keys are prefixed with "aiplatform.googleapis.com/" and are immutable.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#name::String

Returns Identifier. Name of the FeatureView. Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}.

Returns:

  • (::String)

    Identifier. Name of the FeatureView. Format: projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#optimized_config::Google::Cloud::AIPlatform::V1::FeatureView::OptimizedConfig

Returns Optional. Configuration for FeatureView created under Optimized FeatureOnlineStore.

Returns:



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#satisfies_pzi::Boolean (readonly)

Returns Output only. Reserved for future use.

Returns:

  • (::Boolean)

    Output only. Reserved for future use.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#satisfies_pzs::Boolean (readonly)

Returns Output only. Reserved for future use.

Returns:

  • (::Boolean)

    Output only. Reserved for future use.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#service_account_email::String (readonly)

Returns Output only. A Service Account unique to this FeatureView. The role bigquery.dataViewer should be granted to this service account to allow Vertex AI Feature Store to sync data to the online store.

Returns:

  • (::String)

    Output only. A Service Account unique to this FeatureView. The role bigquery.dataViewer should be granted to this service account to allow Vertex AI Feature Store to sync data to the online store.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#service_agent_type::Google::Cloud::AIPlatform::V1::FeatureView::ServiceAgentType

Returns Optional. Service agent type used during data sync. By default, the Vertex AI Service Agent is used. When using an IAM Policy to isolate this FeatureView within a project, a separate service account should be provisioned by setting this field to SERVICE_AGENT_TYPE_FEATURE_VIEW. This will generate a separate service account to access the BigQuery source table.

Returns:

  • (::Google::Cloud::AIPlatform::V1::FeatureView::ServiceAgentType)

    Optional. Service agent type used during data sync. By default, the Vertex AI Service Agent is used. When using an IAM Policy to isolate this FeatureView within a project, a separate service account should be provisioned by setting this field to SERVICE_AGENT_TYPE_FEATURE_VIEW. This will generate a separate service account to access the BigQuery source table.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#sync_config::Google::Cloud::AIPlatform::V1::FeatureView::SyncConfig

Returns Configures when data is to be synced/updated for this FeatureView. At the end of the sync the latest featureValues for each entityId of this FeatureView are made ready for online serving.

Returns:



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#update_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. Timestamp when this FeatureView was last updated.

Returns:



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end

#vertex_rag_source::Google::Cloud::AIPlatform::V1::FeatureView::VertexRagSource

Returns Optional. The Vertex RAG Source that the FeatureView is linked to.

Note: The following fields are mutually exclusive: vertex_rag_source, big_query_source, feature_registry_source. If a field in that set is populated, all other fields in the set will automatically be cleared.

Returns:

  • (::Google::Cloud::AIPlatform::V1::FeatureView::VertexRagSource)

    Optional. The Vertex RAG Source that the FeatureView is linked to.

    Note: The following fields are mutually exclusive: vertex_rag_source, big_query_source, feature_registry_source. If a field in that set is populated, all other fields in the set will automatically be cleared.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
# File 'proto_docs/google/cloud/aiplatform/v1/feature_view.rb', line 107

class FeatureView
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # @!attribute [rw] uri
  #   @return [::String]
  #     Required. The BigQuery view URI that will be materialized on each sync
  #     trigger based on FeatureView.SyncConfig.
  # @!attribute [rw] entity_id_columns
  #   @return [::Array<::String>]
  #     Required. Columns to construct entity_id / row keys.
  class BigQuerySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for Sync. Only one option is set.
  # @!attribute [rw] cron
  #   @return [::String]
  #     Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled
  #     runs. To explicitly set a timezone to the cron tab, apply a prefix in
  #     the cron tab: "CRON_TZ=$\\{IANA_TIME_ZONE}" or "TZ=$\\{IANA_TIME_ZONE}".
  #     The $\\{IANA_TIME_ZONE} may only be a valid string from IANA time zone
  #     database. For example, "CRON_TZ=America/New_York 1 * * * *", or
  #     "TZ=America/New_York 1 * * * *".
  # @!attribute [rw] continuous
  #   @return [::Boolean]
  #     Optional. If true, syncs the FeatureView in a continuous manner to Online
  #     Store.
  class SyncConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for vector indexing.
  # @!attribute [rw] tree_ah_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::TreeAHConfig]
  #     Optional. Configuration options for the tree-AH algorithm (Shallow tree
  #     + Asymmetric Hashing). Please refer to this paper for more details:
  #     https://arxiv.org/abs/1908.10396
  #
  #     Note: The following fields are mutually exclusive: `tree_ah_config`, `brute_force_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] brute_force_config
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::BruteForceConfig]
  #     Optional. Configuration options for using brute force search, which
  #     simply implements the standard linear search in the database for each
  #     query. It is primarily meant for benchmarking and to generate the
  #     ground truth for approximate search.
  #
  #     Note: The following fields are mutually exclusive: `brute_force_config`, `tree_ah_config`. If a field in that set is populated, all other fields in the set will automatically be cleared.
  # @!attribute [rw] embedding_column
  #   @return [::String]
  #     Optional. Column of embedding. This column contains the source data to
  #     create index for vector search. embedding_column must be set when using
  #     vector search.
  # @!attribute [rw] filter_columns
  #   @return [::Array<::String>]
  #     Optional. Columns of features that're used to filter vector search
  #     results.
  # @!attribute [rw] crowding_column
  #   @return [::String]
  #     Optional. Column of crowding. This column contains crowding attribute
  #     which is a constraint on a neighbor list produced by
  #     {::Google::Cloud::AIPlatform::V1::FeatureOnlineStoreService::Client#search_nearest_entities FeatureOnlineStoreService.SearchNearestEntities}
  #     to diversify search results. If
  #     {::Google::Cloud::AIPlatform::V1::NearestNeighborQuery#per_crowding_attribute_neighbor_count NearestNeighborQuery.per_crowding_attribute_neighbor_count}
  #     is set to K in
  #     {::Google::Cloud::AIPlatform::V1::SearchNearestEntitiesRequest SearchNearestEntitiesRequest},
  #     it's guaranteed that no more than K entities of the same crowding
  #     attribute are returned in the response.
  # @!attribute [rw] embedding_dimension
  #   @return [::Integer]
  #     Optional. The number of dimensions of the input embedding.
  # @!attribute [rw] distance_measure_type
  #   @return [::Google::Cloud::AIPlatform::V1::FeatureView::IndexConfig::DistanceMeasureType]
  #     Optional. The distance measure used in nearest neighbor search.
  class IndexConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Configuration options for using brute force search.
    class BruteForceConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # Configuration options for the tree-AH algorithm.
    # @!attribute [rw] leaf_node_embedding_count
    #   @return [::Integer]
    #     Optional. Number of embeddings on each leaf node. The default value is
    #     1000 if not set.
    class TreeAHConfig
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end

    # The distance measure used in nearest neighbor search.
    module DistanceMeasureType
      # Should not be set.
      DISTANCE_MEASURE_TYPE_UNSPECIFIED = 0

      # Euclidean (L_2) Distance.
      SQUARED_L2_DISTANCE = 1

      # Cosine Distance. Defined as 1 - cosine similarity.
      #
      # We strongly suggest using DOT_PRODUCT_DISTANCE + UNIT_L2_NORM instead
      # of COSINE distance. Our algorithms have been more optimized for
      # DOT_PRODUCT distance which, when combined with UNIT_L2_NORM, is
      # mathematically equivalent to COSINE distance and results in the same
      # ranking.
      COSINE_DISTANCE = 2

      # Dot Product Distance. Defined as a negative of the dot product.
      DOT_PRODUCT_DISTANCE = 3
    end
  end

  # A Feature Registry source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] feature_groups
  #   @return [::Array<::Google::Cloud::AIPlatform::V1::FeatureView::FeatureRegistrySource::FeatureGroup>]
  #     Required. List of features that need to be synced to Online Store.
  # @!attribute [rw] project_number
  #   @return [::Integer]
  #     Optional. The project number of the parent project of the Feature Groups.
  class FeatureRegistrySource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods

    # Features belonging to a single feature group that will be
    # synced to Online Store.
    # @!attribute [rw] feature_group_id
    #   @return [::String]
    #     Required. Identifier of the feature group.
    # @!attribute [rw] feature_ids
    #   @return [::Array<::String>]
    #     Required. Identifiers of features under the feature group.
    class FeatureGroup
      include ::Google::Protobuf::MessageExts
      extend ::Google::Protobuf::MessageExts::ClassMethods
    end
  end

  # A Vertex Rag source for features that need to be synced to Online
  # Store.
  # @!attribute [rw] uri
  #   @return [::String]
  #     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)
  # @!attribute [rw] rag_corpus_id
  #   @return [::Integer]
  #     Optional. The RAG corpus id corresponding to this FeatureView.
  class VertexRagSource
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Configuration for FeatureViews created in Optimized FeatureOnlineStore.
  # @!attribute [rw] automatic_resources
  #   @return [::Google::Cloud::AIPlatform::V1::AutomaticResources]
  #     Optional. A description of resources that the FeatureView uses, which to
  #     large degree are decided by Vertex AI, and optionally allows only a
  #     modest additional configuration. If min_replica_count is not set, the
  #     default value is 2. If max_replica_count is not set, the default value
  #     is 6. The max allowed replica count is 1000.
  class OptimizedConfig
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # @!attribute [rw] key
  #   @return [::String]
  # @!attribute [rw] value
  #   @return [::String]
  class LabelsEntry
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Metadata for the Cloud Bigtable that supports directly interacting Bigtable
  # instances.
  # @!attribute [r] read_app_profile
  #   @return [::String]
  #     The Bigtable App Profile to use for reading from Bigtable.
  class 
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # Service agent type used during data sync.
  module ServiceAgentType
    # By default, the project-level Vertex AI Service Agent is enabled.
    SERVICE_AGENT_TYPE_UNSPECIFIED = 0

    # Indicates the project-level Vertex AI Service Agent
    # (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)
    # will be used during sync jobs.
    SERVICE_AGENT_TYPE_PROJECT = 1

    # Enable a FeatureView service account to be created by Vertex AI and
    # output in the field `service_account_email`. This service account will
    # be used to read from the source BigQuery table during sync.
    SERVICE_AGENT_TYPE_FEATURE_VIEW = 2
  end
end