Skip to content

Commit

Permalink
feat: add protected_artifact_location_id to CustomJob
Browse files Browse the repository at this point in the history
chore: add comment fixes to Feature and FeaturestoreService
feat!: add FeatureViewDataFormat, FeatureViewDataKey to FeatureOnlineStoreService
feat: add NumericRestriction to Index
feat: add tpu_topology to MachineResources
feat: add BatchDeletePipelineJobs, BatchDeletePipelineJobsRequest and BatchDeletePipelineJobsResponse to PipelineService
feat: add StudyTimeConstraint to Study

PiperOrigin-RevId: 581306075
  • Loading branch information
Google APIs authored and Copybara-Service committed Nov 10, 2023
1 parent ae56689 commit 7603960
Show file tree
Hide file tree
Showing 12 changed files with 298 additions and 26 deletions.
26 changes: 26 additions & 0 deletions google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml
Expand Up @@ -221,6 +221,8 @@ http:
- post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/extensionControllers/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/extensions/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}:cancel'
Expand Down Expand Up @@ -291,6 +293,8 @@ http:
- delete: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/extensionControllers/*}/operations'
- delete: '/ui/{name=projects/*/locations/*/extensions/*}/operations'
- delete: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}'
Expand All @@ -314,6 +318,10 @@ http:
- delete: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}'
Expand Down Expand Up @@ -367,6 +375,8 @@ http:
- get: '/ui/{name=projects/*/locations/*/edgeDeploymentJobs/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/extensionControllers/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/extensions/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}'
Expand All @@ -390,6 +400,10 @@ http:
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}'
Expand Down Expand Up @@ -442,6 +456,8 @@ http:
- get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*}/operations'
- get: '/ui/{name=projects/*/locations/*/edgeDevices/*}/operations'
- get: '/ui/{name=projects/*/locations/*/endpoints/*}/operations'
- get: '/ui/{name=projects/*/locations/*/extensionControllers/*}/operations'
- get: '/ui/{name=projects/*/locations/*/extensions/*}/operations'
- get: '/ui/{name=projects/*/locations/*/featurestores/*}/operations'
- get: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*}/operations'
- get: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*}/operations'
Expand All @@ -465,6 +481,10 @@ http:
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*}/operations'
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/operations'
- get: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}/operations'
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}:wait'
- get: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}:wait'
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait'
- get: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait'
- get: '/v1beta1/{name=projects/*/locations/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/datasets/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*}/operations'
Expand Down Expand Up @@ -517,6 +537,8 @@ http:
- post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/extensionControllers/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/extensions/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featurestores/*/entityTypes/*/features/*/operations/*}:wait'
Expand All @@ -540,6 +562,10 @@ http:
- post: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featureOnlineStores/*/featureViews/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featureGroups/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/featureGroups/*/features/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/datasets/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/datasets/*/dataItems/*/operations/*}:wait'
Expand Down
6 changes: 6 additions & 0 deletions google/cloud/aiplatform/v1beta1/custom_job.proto
Expand Up @@ -195,6 +195,12 @@ message CustomJobSpec {
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/`
GcsDestination base_output_directory = 6;

// The ID of the location to store protected artifacts. e.g. us-central1.
// Populate only when the location is different than CustomJob location.
// List of supported locations:
// https://cloud.google.com/vertex-ai/docs/general/locations
string protected_artifact_location_id = 19;

// Optional. The name of a Vertex AI
// [Tensorboard][google.cloud.aiplatform.v1beta1.Tensorboard] resource to
// which this CustomJob will upload Tensorboard logs. Format:
Expand Down
42 changes: 28 additions & 14 deletions google/cloud/aiplatform/v1beta1/feature.proto
Expand Up @@ -30,9 +30,8 @@ option java_package = "com.google.cloud.aiplatform.v1beta1";
option php_namespace = "Google\\Cloud\\AIPlatform\\V1beta1";
option ruby_package = "Google::Cloud::AIPlatform::V1beta1";

// Feature Metadata information that describes an attribute of an entity type.
// For example, apple is an entity type, and color is a feature that describes
// apple.
// Feature Metadata information.
// For example, color is a feature that describes an apple.
message Feature {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Feature"
Expand Down Expand Up @@ -73,6 +72,7 @@ message Feature {
[(google.api.field_behavior) = OUTPUT_ONLY];
}

// Only applicable for Vertex AI Legacy Feature Store.
// An enum representing the value type of a feature.
enum ValueType {
// The value type is unspecified.
Expand Down Expand Up @@ -109,6 +109,7 @@ message Feature {
// Immutable. Name of the Feature.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}`
// `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}`
//
// The last part feature is assigned by the client. The feature can be up to
// 64 characters long and can consist only of ASCII Latin letters A-Z and a-z,
Expand All @@ -119,14 +120,17 @@ message Feature {
// Description of the Feature.
string description = 2;

// Immutable. Type of Feature value.
// Immutable. Only applicable for Vertex AI Feature Store (Legacy).
// Type of Feature value.
ValueType value_type = 3 [(google.api.field_behavior) = IMMUTABLE];

// Output only. Timestamp when this EntityType was created.
// Output only. Only applicable for Vertex AI Feature Store (Legacy).
// Timestamp when this EntityType was created.
google.protobuf.Timestamp create_time = 4
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. Timestamp when this EntityType was most recently updated.
// Output only. Only applicable for Vertex AI Feature Store (Legacy).
// Timestamp when this EntityType was most recently updated.
google.protobuf.Timestamp update_time = 5
[(google.api.field_behavior) = OUTPUT_ONLY];

Expand All @@ -147,9 +151,11 @@ message Feature {
// "overwrite" update happens.
string etag = 7;

// Optional. Deprecated: The custom monitoring configuration for this Feature,
// if not set, use the monitoring_config defined for the EntityType this
// Feature belongs to. Only Features with type
// Optional. Only applicable for Vertex AI Feature Store (Legacy).
// Deprecated: The custom monitoring configuration for this Feature, if not
// set, use the monitoring_config defined for the EntityType this Feature
// belongs to.
// Only Features with type
// ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType])
// BOOL, STRING, DOUBLE or INT64 can enable monitoring.
//
Expand All @@ -162,25 +168,33 @@ message Feature {
FeaturestoreMonitoringConfig monitoring_config = 9
[deprecated = true, (google.api.field_behavior) = OPTIONAL];

// Optional. If not set, use the monitoring_config defined for the EntityType
// this Feature belongs to. Only Features with type
// Optional. Only applicable for Vertex AI Feature Store (Legacy).
// If not set, use the monitoring_config defined for the EntityType this
// Feature belongs to.
// Only Features with type
// ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType])
// BOOL, STRING, DOUBLE or INT64 can enable monitoring.
//
// If set to true, all types of data monitoring are disabled despite the
// config on EntityType.
bool disable_monitoring = 12 [(google.api.field_behavior) = OPTIONAL];

// Output only. A list of historical
// Output only. Only applicable for Vertex AI Feature Store (Legacy).
// A list of historical
// [SnapshotAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis]
// stats requested by user, sorted by
// [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time]
// descending.
repeated FeatureStatsAnomaly monitoring_stats = 10
[(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. The list of historical stats and anomalies with specified
// objectives.
// Output only. Only applicable for Vertex AI Feature Store (Legacy).
// The list of historical stats and anomalies with specified objectives.
repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11
[(google.api.field_behavior) = OUTPUT_ONLY];

// Only applicable for Vertex AI Feature Store.
// The name of the BigQuery Table/View columnn hosting data for this version.
// If no value is provided, will use feature_id.
string version_column_name = 106;
}
2 changes: 1 addition & 1 deletion google/cloud/aiplatform/v1beta1/feature_online_store.proto
Expand Up @@ -61,7 +61,7 @@ message FeatureOnlineStore {
AutoScaling auto_scaling = 1 [(google.api.field_behavior) = REQUIRED];
}

// Optimized storage type to replace lightning
// Optimized storage type
message Optimized {}

// The dedicated serving endpoint for this FeatureOnlineStore. Only need to
Expand Down
41 changes: 38 additions & 3 deletions google/cloud/aiplatform/v1beta1/feature_online_store_service.proto
Expand Up @@ -43,7 +43,7 @@ service FeatureOnlineStoreService {
post: "/v1beta1/{feature_view=projects/*/locations/*/featureOnlineStores/*/featureViews/*}:fetchFeatureValues"
body: "*"
};
option (google.api.method_signature) = "feature_view, id";
option (google.api.method_signature) = "feature_view, data_key";
}

// Search the nearest entities under a FeatureView.
Expand All @@ -58,12 +58,34 @@ service FeatureOnlineStoreService {
}
}

// Format of the data in the Feature View.
enum FeatureViewDataFormat {
// Not set. Will be treated as the KeyValue format.
FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED = 0;

// Return response data in key-value format.
KEY_VALUE = 1;

// Return response data in proto Struct format.
PROTO_STRUCT = 2;
}

// Lookup key for a feature view.
message FeatureViewDataKey {
oneof key_oneof {
// String key to use for lookup.
string key = 1;
}
}

// Request message for
// [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues].
// All the features under the requested feature view will be returned.
message FetchFeatureValuesRequest {
// Format of the response data.
enum Format {
option deprecated = true;

// Not set. Will be treated as the KeyValue format.
FORMAT_UNSPECIFIED = 0;

Expand All @@ -75,10 +97,12 @@ message FetchFeatureValuesRequest {
}

// Entity ID to fetch feature values for.
// Deprecated. Use
// [FetchFeatureValuesRequest.data_key][google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_key].
oneof entity_id {
// Simple ID. The whole string will be used as is to identify Entity to
// fetch feature values for.
string id = 3;
string id = 3 [deprecated = true];
}

// Required. FeatureView resource format
Expand All @@ -90,8 +114,19 @@ message FetchFeatureValuesRequest {
}
];

// Optional. The request key to fetch feature values for.
FeatureViewDataKey data_key = 6 [(google.api.field_behavior) = OPTIONAL];

// Optional. Response data format. If not set,
// [FeatureViewDataFormat.KEY_VALUE][google.cloud.aiplatform.v1beta1.FeatureViewDataFormat.KEY_VALUE]
// will be used.
FeatureViewDataFormat data_format = 7
[(google.api.field_behavior) = OPTIONAL];

// Specify response data format. If not set, KeyValue format will be used.
Format format = 5;
// Deprecated. Use
// [FetchFeatureValuesRequest.data_format][google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_format].
Format format = 5 [deprecated = true];
}

// Response message for
Expand Down
18 changes: 15 additions & 3 deletions google/cloud/aiplatform/v1beta1/featurestore_service.proto
Expand Up @@ -953,6 +953,11 @@ message DeleteEntityTypeRequest {
// Request message for
// [FeatureRegistryService.CreateFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.CreateFeature].
message CreateFeatureRequest {
// Required. The resource name of the EntityType or FeatureGroup to create a
// Feature. Format for entity_type as parent:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
// Format for feature_group as parent:
// `projects/{project}/locations/{location}/featureGroups/{feature_group}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
Expand Down Expand Up @@ -1008,8 +1013,9 @@ message BatchCreateFeaturesResponse {
// [FeatureRegistryService.GetFeature][google.cloud.aiplatform.v1beta1.FeatureRegistryService.GetFeature].
message GetFeatureRequest {
// Required. The name of the Feature resource.
// Format:
// Format for entity_type as parent:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
// Format for feature_group as parent:
// `projects/{project}/locations/{location}/featureGroups/{feature_group}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
Expand All @@ -1025,8 +1031,9 @@ message GetFeatureRequest {
// [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures].
message ListFeaturesRequest {
// Required. The resource name of the Location to list Features.
// Format:
// Format for entity_type as parent:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
// Format for feature_group as parent:
// `projects/{project}/locations/{location}/featureGroups/{feature_group}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
Expand Down Expand Up @@ -1065,10 +1072,14 @@ message ListFeaturesRequest {

// A page token, received from a previous
// [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures]
// call or
// [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures]
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures]
// or or
// [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures]
// must match the call that provided the page token.
string page_token = 4;

Expand All @@ -1085,6 +1096,7 @@ message ListFeaturesRequest {
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;

// Only applicable for Vertex AI Feature Store (Legacy).
// If set, return the most recent
// [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count]
// of stats for each Feature in response. Valid value is [0, 10]. If number of
Expand Down Expand Up @@ -1245,7 +1257,7 @@ message UpdateFeatureRequest {
//
// * `description`
// * `labels`
// * `disable_monitoring`
// * `disable_monitoring` (Not supported for FeatureRegistry Feature)
google.protobuf.FieldMask update_mask = 2;
}

Expand Down

0 comments on commit 7603960

Please sign in to comment.