featurestore_service.proto 55 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340
  1. // Copyright 2022 Google LLC
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. syntax = "proto3";
  15. package google.cloud.aiplatform.v1beta1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/cloud/aiplatform/v1beta1/entity_type.proto";
  21. import "google/cloud/aiplatform/v1beta1/feature.proto";
  22. import "google/cloud/aiplatform/v1beta1/feature_selector.proto";
  23. import "google/cloud/aiplatform/v1beta1/featurestore.proto";
  24. import "google/cloud/aiplatform/v1beta1/io.proto";
  25. import "google/cloud/aiplatform/v1beta1/operation.proto";
  26. import "google/longrunning/operations.proto";
  27. import "google/protobuf/field_mask.proto";
  28. import "google/protobuf/timestamp.proto";
  29. import "google/type/interval.proto";
  30. option csharp_namespace = "Google.Cloud.AIPlatform.V1Beta1";
  31. option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
  32. option java_multiple_files = true;
  33. option java_outer_classname = "FeaturestoreServiceProto";
  34. option java_package = "com.google.cloud.aiplatform.v1beta1";
  35. option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1";
  36. option ruby_package = "Google::Cloud::AIPlatform::V1beta1";
  37. // The service that handles CRUD and List for resources for Featurestore.
  38. service FeaturestoreService {
  39. option (google.api.default_host) = "aiplatform.googleapis.com";
  40. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  41. // Creates a new Featurestore in a given project and location.
  42. rpc CreateFeaturestore(CreateFeaturestoreRequest) returns (google.longrunning.Operation) {
  43. option (google.api.http) = {
  44. post: "/v1beta1/{parent=projects/*/locations/*}/featurestores"
  45. body: "featurestore"
  46. };
  47. option (google.api.method_signature) = "parent,featurestore";
  48. option (google.api.method_signature) = "parent,featurestore,featurestore_id";
  49. option (google.longrunning.operation_info) = {
  50. response_type: "Featurestore"
  51. metadata_type: "CreateFeaturestoreOperationMetadata"
  52. };
  53. }
  54. // Gets details of a single Featurestore.
  55. rpc GetFeaturestore(GetFeaturestoreRequest) returns (Featurestore) {
  56. option (google.api.http) = {
  57. get: "/v1beta1/{name=projects/*/locations/*/featurestores/*}"
  58. };
  59. option (google.api.method_signature) = "name";
  60. }
  61. // Lists Featurestores in a given project and location.
  62. rpc ListFeaturestores(ListFeaturestoresRequest) returns (ListFeaturestoresResponse) {
  63. option (google.api.http) = {
  64. get: "/v1beta1/{parent=projects/*/locations/*}/featurestores"
  65. };
  66. option (google.api.method_signature) = "parent";
  67. }
  68. // Updates the parameters of a single Featurestore.
  69. rpc UpdateFeaturestore(UpdateFeaturestoreRequest) returns (google.longrunning.Operation) {
  70. option (google.api.http) = {
  71. patch: "/v1beta1/{featurestore.name=projects/*/locations/*/featurestores/*}"
  72. body: "featurestore"
  73. };
  74. option (google.api.method_signature) = "featurestore,update_mask";
  75. option (google.longrunning.operation_info) = {
  76. response_type: "Featurestore"
  77. metadata_type: "UpdateFeaturestoreOperationMetadata"
  78. };
  79. }
  80. // Deletes a single Featurestore. The Featurestore must not contain any
  81. // EntityTypes or `force` must be set to true for the request to succeed.
  82. rpc DeleteFeaturestore(DeleteFeaturestoreRequest) returns (google.longrunning.Operation) {
  83. option (google.api.http) = {
  84. delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*}"
  85. };
  86. option (google.api.method_signature) = "name";
  87. option (google.api.method_signature) = "name,force";
  88. option (google.longrunning.operation_info) = {
  89. response_type: "google.protobuf.Empty"
  90. metadata_type: "DeleteOperationMetadata"
  91. };
  92. }
  93. // Creates a new EntityType in a given Featurestore.
  94. rpc CreateEntityType(CreateEntityTypeRequest) returns (google.longrunning.Operation) {
  95. option (google.api.http) = {
  96. post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes"
  97. body: "entity_type"
  98. };
  99. option (google.api.method_signature) = "parent,entity_type";
  100. option (google.api.method_signature) = "parent,entity_type,entity_type_id";
  101. option (google.longrunning.operation_info) = {
  102. response_type: "EntityType"
  103. metadata_type: "CreateEntityTypeOperationMetadata"
  104. };
  105. }
  106. // Gets details of a single EntityType.
  107. rpc GetEntityType(GetEntityTypeRequest) returns (EntityType) {
  108. option (google.api.http) = {
  109. get: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}"
  110. };
  111. option (google.api.method_signature) = "name";
  112. }
  113. // Lists EntityTypes in a given Featurestore.
  114. rpc ListEntityTypes(ListEntityTypesRequest) returns (ListEntityTypesResponse) {
  115. option (google.api.http) = {
  116. get: "/v1beta1/{parent=projects/*/locations/*/featurestores/*}/entityTypes"
  117. };
  118. option (google.api.method_signature) = "parent";
  119. }
  120. // Updates the parameters of a single EntityType.
  121. rpc UpdateEntityType(UpdateEntityTypeRequest) returns (EntityType) {
  122. option (google.api.http) = {
  123. patch: "/v1beta1/{entity_type.name=projects/*/locations/*/featurestores/*/entityTypes/*}"
  124. body: "entity_type"
  125. };
  126. option (google.api.method_signature) = "entity_type,update_mask";
  127. }
  128. // Deletes a single EntityType. The EntityType must not have any Features
  129. // or `force` must be set to true for the request to succeed.
  130. rpc DeleteEntityType(DeleteEntityTypeRequest) returns (google.longrunning.Operation) {
  131. option (google.api.http) = {
  132. delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}"
  133. };
  134. option (google.api.method_signature) = "name";
  135. option (google.api.method_signature) = "name,force";
  136. option (google.longrunning.operation_info) = {
  137. response_type: "google.protobuf.Empty"
  138. metadata_type: "DeleteOperationMetadata"
  139. };
  140. }
  141. // Creates a new Feature in a given EntityType.
  142. rpc CreateFeature(CreateFeatureRequest) returns (google.longrunning.Operation) {
  143. option (google.api.http) = {
  144. post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features"
  145. body: "feature"
  146. };
  147. option (google.api.method_signature) = "parent,feature";
  148. option (google.api.method_signature) = "parent,feature,feature_id";
  149. option (google.longrunning.operation_info) = {
  150. response_type: "Feature"
  151. metadata_type: "CreateFeatureOperationMetadata"
  152. };
  153. }
  154. // Creates a batch of Features in a given EntityType.
  155. rpc BatchCreateFeatures(BatchCreateFeaturesRequest) returns (google.longrunning.Operation) {
  156. option (google.api.http) = {
  157. post: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features:batchCreate"
  158. body: "*"
  159. };
  160. option (google.api.method_signature) = "parent,requests";
  161. option (google.longrunning.operation_info) = {
  162. response_type: "BatchCreateFeaturesResponse"
  163. metadata_type: "BatchCreateFeaturesOperationMetadata"
  164. };
  165. }
  166. // Gets details of a single Feature.
  167. rpc GetFeature(GetFeatureRequest) returns (Feature) {
  168. option (google.api.http) = {
  169. get: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
  170. };
  171. option (google.api.method_signature) = "name";
  172. }
  173. // Lists Features in a given EntityType.
  174. rpc ListFeatures(ListFeaturesRequest) returns (ListFeaturesResponse) {
  175. option (google.api.http) = {
  176. get: "/v1beta1/{parent=projects/*/locations/*/featurestores/*/entityTypes/*}/features"
  177. };
  178. option (google.api.method_signature) = "parent";
  179. }
  180. // Updates the parameters of a single Feature.
  181. rpc UpdateFeature(UpdateFeatureRequest) returns (Feature) {
  182. option (google.api.http) = {
  183. patch: "/v1beta1/{feature.name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
  184. body: "feature"
  185. };
  186. option (google.api.method_signature) = "feature,update_mask";
  187. }
  188. // Deletes a single Feature.
  189. rpc DeleteFeature(DeleteFeatureRequest) returns (google.longrunning.Operation) {
  190. option (google.api.http) = {
  191. delete: "/v1beta1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}"
  192. };
  193. option (google.api.method_signature) = "name";
  194. option (google.longrunning.operation_info) = {
  195. response_type: "google.protobuf.Empty"
  196. metadata_type: "DeleteOperationMetadata"
  197. };
  198. }
  199. // Imports Feature values into the Featurestore from a source storage.
  200. //
  201. // The progress of the import is tracked by the returned operation. The
  202. // imported features are guaranteed to be visible to subsequent read
  203. // operations after the operation is marked as successfully done.
  204. //
  205. // If an import operation fails, the Feature values returned from
  206. // reads and exports may be inconsistent. If consistency is
  207. // required, the caller must retry the same import request again and wait till
  208. // the new operation returned is marked as successfully done.
  209. //
  210. // There are also scenarios where the caller can cause inconsistency.
  211. //
  212. // - Source data for import contains multiple distinct Feature values for
  213. // the same entity ID and timestamp.
  214. // - Source is modified during an import. This includes adding, updating, or
  215. // removing source data and/or metadata. Examples of updating metadata
  216. // include but are not limited to changing storage location, storage class,
  217. // or retention policy.
  218. // - Online serving cluster is under-provisioned.
  219. rpc ImportFeatureValues(ImportFeatureValuesRequest) returns (google.longrunning.Operation) {
  220. option (google.api.http) = {
  221. post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:importFeatureValues"
  222. body: "*"
  223. };
  224. option (google.api.method_signature) = "entity_type";
  225. option (google.longrunning.operation_info) = {
  226. response_type: "ImportFeatureValuesResponse"
  227. metadata_type: "ImportFeatureValuesOperationMetadata"
  228. };
  229. }
  230. // Batch reads Feature values from a Featurestore.
  231. //
  232. // This API enables batch reading Feature values, where each read
  233. // instance in the batch may read Feature values of entities from one or
  234. // more EntityTypes. Point-in-time correctness is guaranteed for Feature
  235. // values of each read instance as of each instance's read timestamp.
  236. rpc BatchReadFeatureValues(BatchReadFeatureValuesRequest) returns (google.longrunning.Operation) {
  237. option (google.api.http) = {
  238. post: "/v1beta1/{featurestore=projects/*/locations/*/featurestores/*}:batchReadFeatureValues"
  239. body: "*"
  240. };
  241. option (google.api.method_signature) = "featurestore";
  242. option (google.longrunning.operation_info) = {
  243. response_type: "BatchReadFeatureValuesResponse"
  244. metadata_type: "BatchReadFeatureValuesOperationMetadata"
  245. };
  246. }
  247. // Exports Feature values from all the entities of a target EntityType.
  248. rpc ExportFeatureValues(ExportFeatureValuesRequest) returns (google.longrunning.Operation) {
  249. option (google.api.http) = {
  250. post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:exportFeatureValues"
  251. body: "*"
  252. };
  253. option (google.api.method_signature) = "entity_type";
  254. option (google.longrunning.operation_info) = {
  255. response_type: "ExportFeatureValuesResponse"
  256. metadata_type: "ExportFeatureValuesOperationMetadata"
  257. };
  258. }
  259. // Delete Feature values from Featurestore.
  260. //
  261. // The progress of the deletion is tracked by the returned operation. The
  262. // deleted feature values are guaranteed to be invisible to subsequent read
  263. // operations after the operation is marked as successfully done.
  264. //
  265. // If a delete feature values operation fails, the feature values
  266. // returned from reads and exports may be inconsistent. If consistency is
  267. // required, the caller must retry the same delete request again and wait till
  268. // the new operation returned is marked as successfully done.
  269. rpc DeleteFeatureValues(DeleteFeatureValuesRequest) returns (google.longrunning.Operation) {
  270. option (google.api.http) = {
  271. post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:deleteFeatureValues"
  272. body: "*"
  273. };
  274. option (google.api.method_signature) = "entity_type";
  275. option (google.longrunning.operation_info) = {
  276. response_type: "DeleteFeatureValuesResponse"
  277. metadata_type: "DeleteFeatureValuesOperationMetadata"
  278. };
  279. }
  280. // Searches Features matching a query in a given project.
  281. rpc SearchFeatures(SearchFeaturesRequest) returns (SearchFeaturesResponse) {
  282. option (google.api.http) = {
  283. get: "/v1beta1/{location=projects/*/locations/*}/featurestores:searchFeatures"
  284. };
  285. option (google.api.method_signature) = "location";
  286. option (google.api.method_signature) = "location,query";
  287. }
  288. }
  289. // Request message for [FeaturestoreService.CreateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeaturestore].
  290. message CreateFeaturestoreRequest {
  291. // Required. The resource name of the Location to create Featurestores.
  292. // Format:
  293. // `projects/{project}/locations/{location}'`
  294. string parent = 1 [
  295. (google.api.field_behavior) = REQUIRED,
  296. (google.api.resource_reference) = {
  297. child_type: "aiplatform.googleapis.com/Featurestore"
  298. }
  299. ];
  300. // Required. The Featurestore to create.
  301. Featurestore featurestore = 2 [(google.api.field_behavior) = REQUIRED];
  302. // Required. The ID to use for this Featurestore, which will become the final component
  303. // of the Featurestore's resource name.
  304. //
  305. // This value may be up to 60 characters, and valid characters are
  306. // `[a-z0-9_]`. The first character cannot be a number.
  307. //
  308. // The value must be unique within the project and location.
  309. string featurestore_id = 3 [(google.api.field_behavior) = REQUIRED];
  310. }
  311. // Request message for [FeaturestoreService.GetFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeaturestore].
  312. message GetFeaturestoreRequest {
  313. // Required. The name of the Featurestore resource.
  314. string name = 1 [
  315. (google.api.field_behavior) = REQUIRED,
  316. (google.api.resource_reference) = {
  317. type: "aiplatform.googleapis.com/Featurestore"
  318. }
  319. ];
  320. }
  321. // Request message for [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores].
  322. message ListFeaturestoresRequest {
  323. // Required. The resource name of the Location to list Featurestores.
  324. // Format:
  325. // `projects/{project}/locations/{location}`
  326. string parent = 1 [
  327. (google.api.field_behavior) = REQUIRED,
  328. (google.api.resource_reference) = {
  329. child_type: "aiplatform.googleapis.com/Featurestore"
  330. }
  331. ];
  332. // Lists the featurestores that match the filter expression. The following
  333. // fields are supported:
  334. //
  335. // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons.
  336. // Values must be
  337. // in RFC 3339 format.
  338. // * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons.
  339. // Values must be
  340. // in RFC 3339 format.
  341. // * `online_serving_config.fixed_node_count`: Supports `=`, `!=`, `<`, `>`,
  342. // `<=`, and `>=` comparisons.
  343. // * `labels`: Supports key-value equality and key presence.
  344. //
  345. // Examples:
  346. //
  347. // * `create_time > "2020-01-01" OR update_time > "2020-01-01"`
  348. // Featurestores created or updated after 2020-01-01.
  349. // * `labels.env = "prod"`
  350. // Featurestores with label "env" set to "prod".
  351. string filter = 2;
  352. // The maximum number of Featurestores to return. The service may return fewer
  353. // than this value. If unspecified, at most 100 Featurestores will be
  354. // returned. The maximum value is 100; any value greater than 100 will be
  355. // coerced to 100.
  356. int32 page_size = 3;
  357. // A page token, received from a previous
  358. // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] call.
  359. // Provide this to retrieve the subsequent page.
  360. //
  361. // When paginating, all other parameters provided to
  362. // [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores] must
  363. // match the call that provided the page token.
  364. string page_token = 4;
  365. // A comma-separated list of fields to order by, sorted in ascending order.
  366. // Use "desc" after a field name for descending.
  367. // Supported Fields:
  368. //
  369. // * `create_time`
  370. // * `update_time`
  371. // * `online_serving_config.fixed_node_count`
  372. string order_by = 5;
  373. // Mask specifying which fields to read.
  374. google.protobuf.FieldMask read_mask = 6;
  375. }
  376. // Response message for [FeaturestoreService.ListFeaturestores][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeaturestores].
  377. message ListFeaturestoresResponse {
  378. // The Featurestores matching the request.
  379. repeated Featurestore featurestores = 1;
  380. // A token, which can be sent as [ListFeaturestoresRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturestoresRequest.page_token] to
  381. // retrieve the next page.
  382. // If this field is omitted, there are no subsequent pages.
  383. string next_page_token = 2;
  384. }
  385. // Request message for [FeaturestoreService.UpdateFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeaturestore].
  386. message UpdateFeaturestoreRequest {
  387. // Required. The Featurestore's `name` field is used to identify the Featurestore to be
  388. // updated.
  389. // Format:
  390. // `projects/{project}/locations/{location}/featurestores/{featurestore}`
  391. Featurestore featurestore = 1 [(google.api.field_behavior) = REQUIRED];
  392. // Field mask is used to specify the fields to be overwritten in the
  393. // Featurestore resource by the update.
  394. // The fields specified in the update_mask are relative to the resource, not
  395. // the full request. A field will be overwritten if it is in the mask. If the
  396. // user does not provide a mask then only the non-empty fields present in the
  397. // request will be overwritten. Set the update_mask to `*` to override all
  398. // fields.
  399. //
  400. // Updatable fields:
  401. //
  402. // * `labels`
  403. // * `online_serving_config.fixed_node_count`
  404. // * `online_serving_config.scaling`
  405. google.protobuf.FieldMask update_mask = 2;
  406. }
  407. // Request message for [FeaturestoreService.DeleteFeaturestore][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeaturestore].
  408. message DeleteFeaturestoreRequest {
  409. // Required. The name of the Featurestore to be deleted.
  410. // Format:
  411. // `projects/{project}/locations/{location}/featurestores/{featurestore}`
  412. string name = 1 [
  413. (google.api.field_behavior) = REQUIRED,
  414. (google.api.resource_reference) = {
  415. type: "aiplatform.googleapis.com/Featurestore"
  416. }
  417. ];
  418. // If set to true, any EntityTypes and Features for this Featurestore will
  419. // also be deleted. (Otherwise, the request will only work if the Featurestore
  420. // has no EntityTypes.)
  421. bool force = 2;
  422. }
  423. // Request message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues].
  424. message ImportFeatureValuesRequest {
  425. // Defines the Feature value(s) to import.
  426. message FeatureSpec {
  427. // Required. ID of the Feature to import values of. This Feature must exist in the
  428. // target EntityType, or the request will fail.
  429. string id = 1 [(google.api.field_behavior) = REQUIRED];
  430. // Source column to get the Feature values from. If not set, uses the column
  431. // with the same name as the Feature ID.
  432. string source_field = 2;
  433. }
  434. // Details about the source data, including the location of the storage and
  435. // the format.
  436. oneof source {
  437. AvroSource avro_source = 2;
  438. BigQuerySource bigquery_source = 3;
  439. CsvSource csv_source = 4;
  440. }
  441. // Source of Feature timestamp for all Feature values of each entity.
  442. // Timestamps must be millisecond-aligned.
  443. oneof feature_time_source {
  444. // Source column that holds the Feature timestamp for all Feature
  445. // values in each entity.
  446. string feature_time_field = 6;
  447. // Single Feature timestamp for all entities being imported. The
  448. // timestamp must not have higher than millisecond precision.
  449. google.protobuf.Timestamp feature_time = 7;
  450. }
  451. // Required. The resource name of the EntityType grouping the Features for which values
  452. // are being imported. Format:
  453. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`
  454. string entity_type = 1 [
  455. (google.api.field_behavior) = REQUIRED,
  456. (google.api.resource_reference) = {
  457. type: "aiplatform.googleapis.com/EntityType"
  458. }
  459. ];
  460. // Source column that holds entity IDs. If not provided, entity IDs are
  461. // extracted from the column named `entity_id`.
  462. string entity_id_field = 5;
  463. // Required. Specifications defining which Feature values to import from the entity. The
  464. // request fails if no feature_specs are provided, and having multiple
  465. // feature_specs for one Feature is not allowed.
  466. repeated FeatureSpec feature_specs = 8 [(google.api.field_behavior) = REQUIRED];
  467. // If set, data will not be imported for online serving. This
  468. // is typically used for backfilling, where Feature generation timestamps are
  469. // not in the timestamp range needed for online serving.
  470. bool disable_online_serving = 9;
  471. // Specifies the number of workers that are used to write data to the
  472. // Featurestore. Consider the online serving capacity that you require to
  473. // achieve the desired import throughput without interfering with online
  474. // serving. The value must be positive, and less than or equal to 100.
  475. // If not set, defaults to using 1 worker. The low count ensures minimal
  476. // impact on online serving performance.
  477. int32 worker_count = 11;
  478. // If true, API doesn't start ingestion analysis pipeline.
  479. bool disable_ingestion_analysis = 12;
  480. }
  481. // Response message for [FeaturestoreService.ImportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ImportFeatureValues].
  482. message ImportFeatureValuesResponse {
  483. // Number of entities that have been imported by the operation.
  484. int64 imported_entity_count = 1;
  485. // Number of Feature values that have been imported by the operation.
  486. int64 imported_feature_value_count = 2;
  487. // The number of rows in input source that weren't imported due to either
  488. // * Not having any featureValues.
  489. // * Having a null entityId.
  490. // * Having a null timestamp.
  491. // * Not being parsable (applicable for CSV sources).
  492. int64 invalid_row_count = 6;
  493. // The number rows that weren't ingested due to having feature timestamps
  494. // outside the retention boundary.
  495. int64 timestamp_outside_retention_rows_count = 4;
  496. }
  497. // Request message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues].
  498. message BatchReadFeatureValuesRequest {
  499. // Describe pass-through fields in read_instance source.
  500. message PassThroughField {
  501. // Required. The name of the field in the CSV header or the name of the column in
  502. // BigQuery table. The naming restriction is the same as [Feature.name][google.cloud.aiplatform.v1beta1.Feature.name].
  503. string field_name = 1 [(google.api.field_behavior) = REQUIRED];
  504. }
  505. // Selects Features of an EntityType to read values of and specifies read
  506. // settings.
  507. message EntityTypeSpec {
  508. // Required. ID of the EntityType to select Features. The EntityType id is the
  509. // [entity_type_id][google.cloud.aiplatform.v1beta1.CreateEntityTypeRequest.entity_type_id] specified
  510. // during EntityType creation.
  511. string entity_type_id = 1 [(google.api.field_behavior) = REQUIRED];
  512. // Required. Selectors choosing which Feature values to read from the EntityType.
  513. FeatureSelector feature_selector = 2 [(google.api.field_behavior) = REQUIRED];
  514. // Per-Feature settings for the batch read.
  515. repeated DestinationFeatureSetting settings = 3;
  516. }
  517. oneof read_option {
  518. // Each read instance consists of exactly one read timestamp and one or more
  519. // entity IDs identifying entities of the corresponding EntityTypes whose
  520. // Features are requested.
  521. //
  522. // Each output instance contains Feature values of requested entities
  523. // concatenated together as of the read time.
  524. //
  525. // An example read instance may be `foo_entity_id, bar_entity_id,
  526. // 2020-01-01T10:00:00.123Z`.
  527. //
  528. // An example output instance may be `foo_entity_id, bar_entity_id,
  529. // 2020-01-01T10:00:00.123Z, foo_entity_feature1_value,
  530. // bar_entity_feature2_value`.
  531. //
  532. // Timestamp in each read instance must be millisecond-aligned.
  533. //
  534. // `csv_read_instances` are read instances stored in a plain-text CSV file.
  535. // The header should be:
  536. // [ENTITY_TYPE_ID1], [ENTITY_TYPE_ID2], ..., timestamp
  537. //
  538. // The columns can be in any order.
  539. //
  540. // Values in the timestamp column must use the RFC 3339 format, e.g.
  541. // `2012-07-30T10:43:17.123Z`.
  542. CsvSource csv_read_instances = 3;
  543. // Similar to csv_read_instances, but from BigQuery source.
  544. BigQuerySource bigquery_read_instances = 5;
  545. }
  546. // Required. The resource name of the Featurestore from which to query Feature values.
  547. // Format:
  548. // `projects/{project}/locations/{location}/featurestores/{featurestore}`
  549. string featurestore = 1 [
  550. (google.api.field_behavior) = REQUIRED,
  551. (google.api.resource_reference) = {
  552. type: "aiplatform.googleapis.com/Featurestore"
  553. }
  554. ];
  555. // Required. Specifies output location and format.
  556. FeatureValueDestination destination = 4 [(google.api.field_behavior) = REQUIRED];
  557. // When not empty, the specified fields in the *_read_instances source will be
  558. // joined as-is in the output, in addition to those fields from the
  559. // Featurestore Entity.
  560. //
  561. // For BigQuery source, the type of the pass-through values will be
  562. // automatically inferred. For CSV source, the pass-through values will be
  563. // passed as opaque bytes.
  564. repeated PassThroughField pass_through_fields = 8;
  565. // Required. Specifies EntityType grouping Features to read values of and settings.
  566. // Each EntityType referenced in
  567. // [BatchReadFeatureValuesRequest.entity_type_specs] must have a column
  568. // specifying entity IDs in the EntityType in
  569. // [BatchReadFeatureValuesRequest.request][] .
  570. repeated EntityTypeSpec entity_type_specs = 7 [(google.api.field_behavior) = REQUIRED];
  571. // Optional. Excludes Feature values with feature generation timestamp before this
  572. // timestamp. If not set, retrieve oldest values kept in Feature Store.
  573. // Timestamp, if present, must not have higher than millisecond precision.
  574. google.protobuf.Timestamp start_time = 11 [(google.api.field_behavior) = OPTIONAL];
  575. }
  576. // Request message for [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues].
  577. message ExportFeatureValuesRequest {
  578. // Describes exporting the latest Feature values of all entities of the
  579. // EntityType between [start_time, snapshot_time].
  580. message SnapshotExport {
  581. // Exports Feature values as of this timestamp. If not set,
  582. // retrieve values as of now. Timestamp, if present, must not have higher
  583. // than millisecond precision.
  584. google.protobuf.Timestamp snapshot_time = 1;
  585. // Excludes Feature values with feature generation timestamp before this
  586. // timestamp. If not set, retrieve oldest values kept in Feature Store.
  587. // Timestamp, if present, must not have higher than millisecond precision.
  588. google.protobuf.Timestamp start_time = 2;
  589. }
  590. // Describes exporting all historical Feature values of all entities of the
  591. // EntityType between [start_time, end_time].
  592. message FullExport {
  593. // Excludes Feature values with feature generation timestamp before this
  594. // timestamp. If not set, retrieve oldest values kept in Feature Store.
  595. // Timestamp, if present, must not have higher than millisecond precision.
  596. google.protobuf.Timestamp start_time = 2;
  597. // Exports Feature values as of this timestamp. If not set,
  598. // retrieve values as of now. Timestamp, if present, must not have higher
  599. // than millisecond precision.
  600. google.protobuf.Timestamp end_time = 1;
  601. }
  602. // Required. The mode in which Feature values are exported.
  603. oneof mode {
  604. // Exports the latest Feature values of all entities of the EntityType
  605. // within a time range.
  606. SnapshotExport snapshot_export = 3;
  607. // Exports all historical values of all entities of the EntityType within a
  608. // time range
  609. FullExport full_export = 7;
  610. }
  611. // Required. The resource name of the EntityType from which to export Feature values.
  612. // Format:
  613. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  614. string entity_type = 1 [
  615. (google.api.field_behavior) = REQUIRED,
  616. (google.api.resource_reference) = {
  617. type: "aiplatform.googleapis.com/EntityType"
  618. }
  619. ];
  620. // Required. Specifies destination location and format.
  621. FeatureValueDestination destination = 4 [(google.api.field_behavior) = REQUIRED];
  622. // Required. Selects Features to export values of.
  623. FeatureSelector feature_selector = 5 [(google.api.field_behavior) = REQUIRED];
  624. // Per-Feature export settings.
  625. repeated DestinationFeatureSetting settings = 6;
  626. }
  627. message DestinationFeatureSetting {
  628. // Required. The ID of the Feature to apply the setting to.
  629. string feature_id = 1 [(google.api.field_behavior) = REQUIRED];
  630. // Specify the field name in the export destination. If not specified,
  631. // Feature ID is used.
  632. string destination_field = 2;
  633. }
  634. // A destination location for Feature values and format.
  635. message FeatureValueDestination {
  636. oneof destination {
  637. // Output in BigQuery format.
  638. // [BigQueryDestination.output_uri][google.cloud.aiplatform.v1beta1.BigQueryDestination.output_uri] in
  639. // [FeatureValueDestination.bigquery_destination][google.cloud.aiplatform.v1beta1.FeatureValueDestination.bigquery_destination] must refer to a table.
  640. BigQueryDestination bigquery_destination = 1;
  641. // Output in TFRecord format.
  642. //
  643. // Below are the mapping from Feature value type
  644. // in Featurestore to Feature value type in TFRecord:
  645. //
  646. // Value type in Featurestore | Value type in TFRecord
  647. // DOUBLE, DOUBLE_ARRAY | FLOAT_LIST
  648. // INT64, INT64_ARRAY | INT64_LIST
  649. // STRING, STRING_ARRAY, BYTES | BYTES_LIST
  650. // true -> byte_string("true"), false -> byte_string("false")
  651. // BOOL, BOOL_ARRAY (true, false) | BYTES_LIST
  652. TFRecordDestination tfrecord_destination = 2;
  653. // Output in CSV format. Array Feature value types are not allowed in CSV
  654. // format.
  655. CsvDestination csv_destination = 3;
  656. }
  657. }
  658. // Response message for [FeaturestoreService.ExportFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.ExportFeatureValues].
  659. message ExportFeatureValuesResponse {
  660. }
  661. // Response message for [FeaturestoreService.BatchReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchReadFeatureValues].
  662. message BatchReadFeatureValuesResponse {
  663. }
  664. // Request message for [FeaturestoreService.CreateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateEntityType].
  665. message CreateEntityTypeRequest {
  666. // Required. The resource name of the Featurestore to create EntityTypes.
  667. // Format:
  668. // `projects/{project}/locations/{location}/featurestores/{featurestore}`
  669. string parent = 1 [
  670. (google.api.field_behavior) = REQUIRED,
  671. (google.api.resource_reference) = {
  672. type: "aiplatform.googleapis.com/Featurestore"
  673. }
  674. ];
  675. // The EntityType to create.
  676. EntityType entity_type = 2;
  677. // Required. The ID to use for the EntityType, which will become the final component of
  678. // the EntityType's resource name.
  679. //
  680. // This value may be up to 60 characters, and valid characters are
  681. // `[a-z0-9_]`. The first character cannot be a number.
  682. //
  683. // The value must be unique within a featurestore.
  684. string entity_type_id = 3 [(google.api.field_behavior) = REQUIRED];
  685. }
  686. // Request message for [FeaturestoreService.GetEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetEntityType].
  687. message GetEntityTypeRequest {
  688. // Required. The name of the EntityType resource.
  689. // Format:
  690. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  691. string name = 1 [
  692. (google.api.field_behavior) = REQUIRED,
  693. (google.api.resource_reference) = {
  694. type: "aiplatform.googleapis.com/EntityType"
  695. }
  696. ];
  697. }
  698. // Request message for [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes].
  699. message ListEntityTypesRequest {
  700. // Required. The resource name of the Featurestore to list EntityTypes.
  701. // Format:
  702. // `projects/{project}/locations/{location}/featurestores/{featurestore}`
  703. string parent = 1 [
  704. (google.api.field_behavior) = REQUIRED,
  705. (google.api.resource_reference) = {
  706. child_type: "aiplatform.googleapis.com/EntityType"
  707. }
  708. ];
  709. // Lists the EntityTypes that match the filter expression. The following
  710. // filters are supported:
  711. //
  712. // * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons.
  713. // Values must be in RFC 3339 format.
  714. // * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons.
  715. // Values must be in RFC 3339 format.
  716. // * `labels`: Supports key-value equality as well as key presence.
  717. //
  718. // Examples:
  719. //
  720. // * `create_time > \"2020-01-31T15:30:00.000000Z\" OR
  721. // update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created
  722. // or updated after 2020-01-31T15:30:00.000000Z.
  723. // * `labels.active = yes AND labels.env = prod` --> EntityTypes having both
  724. // (active: yes) and (env: prod) labels.
  725. // * `labels.env: *` --> Any EntityType which has a label with 'env' as the
  726. // key.
  727. string filter = 2;
  728. // The maximum number of EntityTypes to return. The service may return fewer
  729. // than this value. If unspecified, at most 1000 EntityTypes will be returned.
  730. // The maximum value is 1000; any value greater than 1000 will be coerced to
  731. // 1000.
  732. int32 page_size = 3;
  733. // A page token, received from a previous
  734. // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] call.
  735. // Provide this to retrieve the subsequent page.
  736. //
  737. // When paginating, all other parameters provided to
  738. // [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes] must
  739. // match the call that provided the page token.
  740. string page_token = 4;
  741. // A comma-separated list of fields to order by, sorted in ascending order.
  742. // Use "desc" after a field name for descending.
  743. //
  744. // Supported fields:
  745. //
  746. // * `entity_type_id`
  747. // * `create_time`
  748. // * `update_time`
  749. string order_by = 5;
  750. // Mask specifying which fields to read.
  751. google.protobuf.FieldMask read_mask = 6;
  752. }
  753. // Response message for [FeaturestoreService.ListEntityTypes][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListEntityTypes].
  754. message ListEntityTypesResponse {
  755. // The EntityTypes matching the request.
  756. repeated EntityType entity_types = 1;
  757. // A token, which can be sent as [ListEntityTypesRequest.page_token][google.cloud.aiplatform.v1beta1.ListEntityTypesRequest.page_token] to
  758. // retrieve the next page.
  759. // If this field is omitted, there are no subsequent pages.
  760. string next_page_token = 2;
  761. }
  762. // Request message for [FeaturestoreService.UpdateEntityType][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateEntityType].
  763. message UpdateEntityTypeRequest {
  764. // Required. The EntityType's `name` field is used to identify the EntityType to be
  765. // updated.
  766. // Format:
  767. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  768. EntityType entity_type = 1 [(google.api.field_behavior) = REQUIRED];
  769. // Field mask is used to specify the fields to be overwritten in the
  770. // EntityType resource by the update.
  771. // The fields specified in the update_mask are relative to the resource, not
  772. // the full request. A field will be overwritten if it is in the mask. If the
  773. // user does not provide a mask then only the non-empty fields present in the
  774. // request will be overwritten. Set the update_mask to `*` to override all
  775. // fields.
  776. //
  777. // Updatable fields:
  778. //
  779. // * `description`
  780. // * `labels`
  781. // * `monitoring_config.snapshot_analysis.disabled`
  782. // * `monitoring_config.snapshot_analysis.monitoring_interval_days`
  783. // * `monitoring_config.snapshot_analysis.staleness_days`
  784. // * `monitoring_config.import_features_analysis.state`
  785. // * `monitoring_config.import_features_analysis.anomaly_detection_baseline`
  786. // * `monitoring_config.numerical_threshold_config.value`
  787. // * `monitoring_config.categorical_threshold_config.value`
  788. google.protobuf.FieldMask update_mask = 2;
  789. }
  790. // Request message for [FeaturestoreService.DeleteEntityTypes][].
  791. message DeleteEntityTypeRequest {
  792. // Required. The name of the EntityType to be deleted.
  793. // Format:
  794. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  795. string name = 1 [
  796. (google.api.field_behavior) = REQUIRED,
  797. (google.api.resource_reference) = {
  798. type: "aiplatform.googleapis.com/EntityType"
  799. }
  800. ];
  801. // If set to true, any Features for this EntityType will also be deleted.
  802. // (Otherwise, the request will only work if the EntityType has no Features.)
  803. bool force = 2;
  804. }
  805. // Request message for [FeaturestoreService.CreateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.CreateFeature].
  806. message CreateFeatureRequest {
  807. // Required. The resource name of the EntityType to create a Feature.
  808. // Format:
  809. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  810. string parent = 1 [
  811. (google.api.field_behavior) = REQUIRED,
  812. (google.api.resource_reference) = {
  813. type: "aiplatform.googleapis.com/EntityType"
  814. }
  815. ];
  816. // Required. The Feature to create.
  817. Feature feature = 2 [(google.api.field_behavior) = REQUIRED];
  818. // Required. The ID to use for the Feature, which will become the final component of
  819. // the Feature's resource name.
  820. //
  821. // This value may be up to 128 characters, and valid characters are
  822. // `[a-z0-9_]`. The first character cannot be a number.
  823. //
  824. // The value must be unique within an EntityType.
  825. string feature_id = 3 [(google.api.field_behavior) = REQUIRED];
  826. }
  827. // Request message for [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures].
  828. message BatchCreateFeaturesRequest {
  829. // Required. The resource name of the EntityType to create the batch of Features under.
  830. // Format:
  831. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  832. string parent = 1 [
  833. (google.api.field_behavior) = REQUIRED,
  834. (google.api.resource_reference) = {
  835. type: "aiplatform.googleapis.com/EntityType"
  836. }
  837. ];
  838. // Required. The request message specifying the Features to create. All Features must be
  839. // created under the same parent EntityType. The `parent` field in each child
  840. // request message can be omitted. If `parent` is set in a child request, then
  841. // the value must match the `parent` value in this request message.
  842. repeated CreateFeatureRequest requests = 2 [(google.api.field_behavior) = REQUIRED];
  843. }
  844. // Response message for [FeaturestoreService.BatchCreateFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.BatchCreateFeatures].
  845. message BatchCreateFeaturesResponse {
  846. // The Features created.
  847. repeated Feature features = 1;
  848. }
  849. // Request message for [FeaturestoreService.GetFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.GetFeature].
  850. message GetFeatureRequest {
  851. // Required. The name of the Feature resource.
  852. // Format:
  853. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  854. string name = 1 [
  855. (google.api.field_behavior) = REQUIRED,
  856. (google.api.resource_reference) = {
  857. type: "aiplatform.googleapis.com/Feature"
  858. }
  859. ];
  860. }
  861. // Request message for [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures].
  862. message ListFeaturesRequest {
  863. // Required. The resource name of the Location to list Features.
  864. // Format:
  865. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
  866. string parent = 1 [
  867. (google.api.field_behavior) = REQUIRED,
  868. (google.api.resource_reference) = {
  869. child_type: "aiplatform.googleapis.com/Feature"
  870. }
  871. ];
  872. // Lists the Features that match the filter expression. The following
  873. // filters are supported:
  874. //
  875. // * `value_type`: Supports = and != comparisons.
  876. // * `create_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must
  877. // be in RFC 3339 format.
  878. // * `update_time`: Supports =, !=, <, >, >=, and <= comparisons. Values must
  879. // be in RFC 3339 format.
  880. // * `labels`: Supports key-value equality as well as key presence.
  881. //
  882. // Examples:
  883. //
  884. // * `value_type = DOUBLE` --> Features whose type is DOUBLE.
  885. // * `create_time > \"2020-01-31T15:30:00.000000Z\" OR
  886. // update_time > \"2020-01-31T15:30:00.000000Z\"` --> EntityTypes created
  887. // or updated after 2020-01-31T15:30:00.000000Z.
  888. // * `labels.active = yes AND labels.env = prod` --> Features having both
  889. // (active: yes) and (env: prod) labels.
  890. // * `labels.env: *` --> Any Feature which has a label with 'env' as the
  891. // key.
  892. string filter = 2;
  893. // The maximum number of Features to return. The service may return fewer
  894. // than this value. If unspecified, at most 1000 Features will be returned.
  895. // The maximum value is 1000; any value greater than 1000 will be coerced to
  896. // 1000.
  897. int32 page_size = 3;
  898. // A page token, received from a previous
  899. // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] call.
  900. // Provide this to retrieve the subsequent page.
  901. //
  902. // When paginating, all other parameters provided to
  903. // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] must
  904. // match the call that provided the page token.
  905. string page_token = 4;
  906. // A comma-separated list of fields to order by, sorted in ascending order.
  907. // Use "desc" after a field name for descending.
  908. // Supported fields:
  909. //
  910. // * `feature_id`
  911. // * `value_type`
  912. // * `create_time`
  913. // * `update_time`
  914. string order_by = 5;
  915. // Mask specifying which fields to read.
  916. google.protobuf.FieldMask read_mask = 6;
  917. // If set, return the most recent [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count]
  918. // of stats for each Feature in response. Valid value is [0, 10]. If number of
  919. // stats exists < [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count], return all
  920. // existing stats.
  921. int32 latest_stats_count = 7;
  922. }
  923. // Response message for [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures].
  924. message ListFeaturesResponse {
  925. // The Features matching the request.
  926. repeated Feature features = 1;
  927. // A token, which can be sent as [ListFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.page_token] to
  928. // retrieve the next page.
  929. // If this field is omitted, there are no subsequent pages.
  930. string next_page_token = 2;
  931. }
  932. // Request message for [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures].
  933. message SearchFeaturesRequest {
  934. // Required. The resource name of the Location to search Features.
  935. // Format:
  936. // `projects/{project}/locations/{location}`
  937. string location = 1 [
  938. (google.api.field_behavior) = REQUIRED,
  939. (google.api.resource_reference) = {
  940. type: "locations.googleapis.com/Location"
  941. }
  942. ];
  943. // Query string that is a conjunction of field-restricted queries and/or
  944. // field-restricted filters. Field-restricted queries and filters can be
  945. // combined using `AND` to form a conjunction.
  946. //
  947. // A field query is in the form FIELD:QUERY. This implicitly checks if QUERY
  948. // exists as a substring within Feature's FIELD. The QUERY
  949. // and the FIELD are converted to a sequence of words (i.e. tokens) for
  950. // comparison. This is done by:
  951. //
  952. // * Removing leading/trailing whitespace and tokenizing the search value.
  953. // Characters that are not one of alphanumeric `[a-zA-Z0-9]`, underscore
  954. // `_`, or asterisk `*` are treated as delimiters for tokens. `*` is treated
  955. // as a wildcard that matches characters within a token.
  956. // * Ignoring case.
  957. // * Prepending an asterisk to the first and appending an asterisk to the
  958. // last token in QUERY.
  959. //
  960. // A QUERY must be either a singular token or a phrase. A phrase is one or
  961. // multiple words enclosed in double quotation marks ("). With phrases, the
  962. // order of the words is important. Words in the phrase must be matching in
  963. // order and consecutively.
  964. //
  965. // Supported FIELDs for field-restricted queries:
  966. //
  967. // * `feature_id`
  968. // * `description`
  969. // * `entity_type_id`
  970. //
  971. // Examples:
  972. //
  973. // * `feature_id: foo` --> Matches a Feature with ID containing the substring
  974. // `foo` (eg. `foo`, `foofeature`, `barfoo`).
  975. // * `feature_id: foo*feature` --> Matches a Feature with ID containing the
  976. // substring `foo*feature` (eg. `foobarfeature`).
  977. // * `feature_id: foo AND description: bar` --> Matches a Feature with ID
  978. // containing the substring `foo` and description containing the substring
  979. // `bar`.
  980. //
  981. //
  982. // Besides field queries, the following exact-match filters are
  983. // supported. The exact-match filters do not support wildcards. Unlike
  984. // field-restricted queries, exact-match filters are case-sensitive.
  985. //
  986. // * `feature_id`: Supports = comparisons.
  987. // * `description`: Supports = comparisons. Multi-token filters should be
  988. // enclosed in quotes.
  989. // * `entity_type_id`: Supports = comparisons.
  990. // * `value_type`: Supports = and != comparisons.
  991. // * `labels`: Supports key-value equality as well as key presence.
  992. // * `featurestore_id`: Supports = comparisons.
  993. //
  994. // Examples:
  995. // * `description = "foo bar"` --> Any Feature with description exactly equal
  996. // to `foo bar`
  997. // * `value_type = DOUBLE` --> Features whose type is DOUBLE.
  998. // * `labels.active = yes AND labels.env = prod` --> Features having both
  999. // (active: yes) and (env: prod) labels.
  1000. // * `labels.env: *` --> Any Feature which has a label with `env` as the
  1001. // key.
  1002. string query = 3;
  1003. // The maximum number of Features to return. The service may return fewer
  1004. // than this value. If unspecified, at most 100 Features will be returned.
  1005. // The maximum value is 100; any value greater than 100 will be coerced to
  1006. // 100.
  1007. int32 page_size = 4;
  1008. // A page token, received from a previous
  1009. // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures] call.
  1010. // Provide this to retrieve the subsequent page.
  1011. //
  1012. // When paginating, all other parameters provided to
  1013. // [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures], except `page_size`, must
  1014. // match the call that provided the page token.
  1015. string page_token = 5;
  1016. }
  1017. // Response message for [FeaturestoreService.SearchFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.SearchFeatures].
  1018. message SearchFeaturesResponse {
  1019. // The Features matching the request.
  1020. //
  1021. // Fields returned:
  1022. //
  1023. // * `name`
  1024. // * `description`
  1025. // * `labels`
  1026. // * `create_time`
  1027. // * `update_time`
  1028. repeated Feature features = 1;
  1029. // A token, which can be sent as [SearchFeaturesRequest.page_token][google.cloud.aiplatform.v1beta1.SearchFeaturesRequest.page_token] to
  1030. // retrieve the next page.
  1031. // If this field is omitted, there are no subsequent pages.
  1032. string next_page_token = 2;
  1033. }
  1034. // Request message for [FeaturestoreService.UpdateFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.UpdateFeature].
  1035. message UpdateFeatureRequest {
  1036. // Required. The Feature's `name` field is used to identify the Feature to be
  1037. // updated.
  1038. // Format:
  1039. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}`
  1040. Feature feature = 1 [(google.api.field_behavior) = REQUIRED];
  1041. // Field mask is used to specify the fields to be overwritten in the
  1042. // Features resource by the update.
  1043. // The fields specified in the update_mask are relative to the resource, not
  1044. // the full request. A field will be overwritten if it is in the mask. If the
  1045. // user does not provide a mask then only the non-empty fields present in the
  1046. // request will be overwritten. Set the update_mask to `*` to override all
  1047. // fields.
  1048. //
  1049. // Updatable fields:
  1050. //
  1051. // * `description`
  1052. // * `labels`
  1053. // * `disable_monitoring`
  1054. google.protobuf.FieldMask update_mask = 2;
  1055. }
  1056. // Request message for [FeaturestoreService.DeleteFeature][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeature].
  1057. message DeleteFeatureRequest {
  1058. // Required. The name of the Features to be deleted.
  1059. // Format:
  1060. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}`
  1061. string name = 1 [
  1062. (google.api.field_behavior) = REQUIRED,
  1063. (google.api.resource_reference) = {
  1064. type: "aiplatform.googleapis.com/Feature"
  1065. }
  1066. ];
  1067. }
  1068. // Details of operations that perform create Featurestore.
  1069. message CreateFeaturestoreOperationMetadata {
  1070. // Operation metadata for Featurestore.
  1071. GenericOperationMetadata generic_metadata = 1;
  1072. }
  1073. // Details of operations that perform update Featurestore.
  1074. message UpdateFeaturestoreOperationMetadata {
  1075. // Operation metadata for Featurestore.
  1076. GenericOperationMetadata generic_metadata = 1;
  1077. }
  1078. // Details of operations that perform import Feature values.
  1079. message ImportFeatureValuesOperationMetadata {
  1080. // Operation metadata for Featurestore import Feature values.
  1081. GenericOperationMetadata generic_metadata = 1;
  1082. // Number of entities that have been imported by the operation.
  1083. int64 imported_entity_count = 2;
  1084. // Number of Feature values that have been imported by the operation.
  1085. int64 imported_feature_value_count = 3;
  1086. // The number of rows in input source that weren't imported due to either
  1087. // * Not having any featureValues.
  1088. // * Having a null entityId.
  1089. // * Having a null timestamp.
  1090. // * Not being parsable (applicable for CSV sources).
  1091. int64 invalid_row_count = 6;
  1092. // The number rows that weren't ingested due to having timestamps outside the
  1093. // retention boundary.
  1094. int64 timestamp_outside_retention_rows_count = 7;
  1095. }
  1096. // Details of operations that exports Features values.
  1097. message ExportFeatureValuesOperationMetadata {
  1098. // Operation metadata for Featurestore export Feature values.
  1099. GenericOperationMetadata generic_metadata = 1;
  1100. }
  1101. // Details of operations that batch reads Feature values.
  1102. message BatchReadFeatureValuesOperationMetadata {
  1103. // Operation metadata for Featurestore batch read Features values.
  1104. GenericOperationMetadata generic_metadata = 1;
  1105. }
  1106. // Details of operations that delete Feature values.
  1107. message DeleteFeatureValuesOperationMetadata {
  1108. // Operation metadata for Featurestore delete Features values.
  1109. GenericOperationMetadata generic_metadata = 1;
  1110. }
  1111. // Details of operations that perform create EntityType.
  1112. message CreateEntityTypeOperationMetadata {
  1113. // Operation metadata for EntityType.
  1114. GenericOperationMetadata generic_metadata = 1;
  1115. }
  1116. // Details of operations that perform create Feature.
  1117. message CreateFeatureOperationMetadata {
  1118. // Operation metadata for Feature.
  1119. GenericOperationMetadata generic_metadata = 1;
  1120. }
  1121. // Details of operations that perform batch create Features.
  1122. message BatchCreateFeaturesOperationMetadata {
  1123. // Operation metadata for Feature.
  1124. GenericOperationMetadata generic_metadata = 1;
  1125. }
  1126. // Request message for [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues].
  1127. message DeleteFeatureValuesRequest {
  1128. // Message to select entity.
  1129. // If an entity id is selected, all the feature values corresponding to the
  1130. // entity id will be deleted, including the entityId.
  1131. message SelectEntity {
  1132. // Required. Selectors choosing feature values of which entity id to be deleted from
  1133. // the EntityType.
  1134. EntityIdSelector entity_id_selector = 1 [(google.api.field_behavior) = REQUIRED];
  1135. }
  1136. // Message to select time range and feature.
  1137. // Values of the selected feature generated within an inclusive time range
  1138. // will be deleted. Using this option permanently deletes the feature values
  1139. // from the specified feature IDs within the specified time range.
  1140. // This might include data from the online storage. If you want to retain
  1141. // any deleted historical data in the online storage, you must re-ingest it.
  1142. message SelectTimeRangeAndFeature {
  1143. // Required. Select feature generated within a half-inclusive time range.
  1144. // The time range is lower inclusive and upper exclusive.
  1145. google.type.Interval time_range = 1 [(google.api.field_behavior) = REQUIRED];
  1146. // Required. Selectors choosing which feature values to be deleted from the
  1147. // EntityType.
  1148. FeatureSelector feature_selector = 2 [(google.api.field_behavior) = REQUIRED];
  1149. // If set, data will not be deleted from online storage.
  1150. // When time range is older than the data in online storage, setting this to
  1151. // be true will make the deletion have no impact on online serving.
  1152. bool skip_online_storage_delete = 3;
  1153. }
  1154. // Defines options to select feature values to be deleted.
  1155. oneof DeleteOption {
  1156. // Select feature values to be deleted by specifying entities.
  1157. SelectEntity select_entity = 2;
  1158. // Select feature values to be deleted by specifying time range and
  1159. // features.
  1160. SelectTimeRangeAndFeature select_time_range_and_feature = 3;
  1161. }
  1162. // Required. The resource name of the EntityType grouping the Features for which values
  1163. // are being deleted from. Format:
  1164. // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entityType}`
  1165. string entity_type = 1 [
  1166. (google.api.field_behavior) = REQUIRED,
  1167. (google.api.resource_reference) = {
  1168. type: "aiplatform.googleapis.com/EntityType"
  1169. }
  1170. ];
  1171. }
  1172. // Response message for [FeaturestoreService.DeleteFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreService.DeleteFeatureValues].
  1173. message DeleteFeatureValuesResponse {
  1174. }
  1175. // Selector for entityId. Getting ids from the given source.
  1176. message EntityIdSelector {
  1177. // Details about the source data, including the location of the storage and
  1178. // the format.
  1179. oneof EntityIdsSource {
  1180. // Source of Csv
  1181. CsvSource csv_source = 3;
  1182. }
  1183. // Source column that holds entity IDs. If not provided, entity IDs are
  1184. // extracted from the column named `entity_id`.
  1185. string entity_id_field = 5;
  1186. }