Skip to content
This repository has been archived by the owner on Jul 20, 2023. It is now read-only.

feat: add reserved_ip_ranges to CustomJobSpec in aiplatform v1 custom_job.proto #286

Merged
merged 11 commits into from
Apr 14, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions protos/google/cloud/aiplatform/v1/custom_job.proto
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,16 @@ message CustomJobSpec {
type: "compute.googleapis.com/Network"
}];

// Optional. A list of names for the reserved ip ranges under the VPC network
// that can be used for this job.
//
// If set, we will deploy the job within the provided ip ranges. Otherwise,
// the job will be deployed to any ip ranges under the provided VPC
// network.
//
// Example: ['vertex-ai-ip-range'].
repeated string reserved_ip_ranges = 13 [(google.api.field_behavior) = OPTIONAL];

// The Cloud Storage location to store the output of this CustomJob or
// HyperparameterTuningJob. For HyperparameterTuningJob,
// the baseOutputDirectory of
Expand Down Expand Up @@ -204,6 +214,9 @@ message WorkerPoolSpec {
// Optional. The number of worker replicas to use for this worker pool.
int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL];

// Optional. List of NFS mount spec.
repeated NfsMount nfs_mounts = 4 [(google.api.field_behavior) = OPTIONAL];

// Disk spec.
DiskSpec disk_spec = 5;
}
Expand Down
4 changes: 2 additions & 2 deletions protos/google/cloud/aiplatform/v1/endpoint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ message Endpoint {
type: "compute.googleapis.com/Network"
}];

// If true, expose the Endpoint via private service connect.
// Deprecated: If true, expose the Endpoint via private service connect.
//
// Only one of the fields, [network][google.cloud.aiplatform.v1.Endpoint.network] or
// [enable_private_service_connect][google.cloud.aiplatform.v1.Endpoint.enable_private_service_connect],
Expand Down Expand Up @@ -243,7 +243,7 @@ message PredictRequestResponseLoggingConfig {
double sampling_rate = 2;

// BigQuery table for logging.
// If only given project, a new dataset will be created with name
// If only given a project, a new dataset will be created with name
// `logging_<endpoint-display-name>_<endpoint-id>` where
// <endpoint-display-name> will be made BigQuery-dataset-name compatible (e.g.
// most special characters will become underscores). If no table name is
Expand Down
10 changes: 4 additions & 6 deletions protos/google/cloud/aiplatform/v1/entity_type.proto
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,13 @@ message EntityType {
// "overwrite" update happens.
string etag = 7 [(google.api.field_behavior) = OPTIONAL];

// Optional. The default monitoring configuration for all Features with value
// type
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL,
// STRING, DOUBLE or INT64 under this EntityType.
// Optional. The default monitoring configuration for all Features with value type
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, STRING, DOUBLE or INT64 under this
// EntityType.
//
// If this is populated with
// [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot
// analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is
// disabled.
FeaturestoreMonitoringConfig monitoring_config = 8
[(google.api.field_behavior) = OPTIONAL];
FeaturestoreMonitoringConfig monitoring_config = 8 [(google.api.field_behavior) = OPTIONAL];
}
21 changes: 8 additions & 13 deletions protos/google/cloud/aiplatform/v1/feature.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,7 @@ message Feature {
// A list of historical [Snapshot
// Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] or [Import Feature
// Analysis] [FeaturestoreMonitoringConfig.ImportFeatureAnalysis] stats
// requested by user, sorted by
// [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1.FeatureStatsAnomaly.start_time]
// descending.
// requested by user, sorted by [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1.FeatureStatsAnomaly.start_time] descending.
message MonitoringStatsAnomaly {
// If the objective in the request is both
// Import Feature Analysis and Snapshot Analysis, this objective could be
Expand All @@ -64,8 +62,7 @@ message Feature {
Objective objective = 1 [(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. The stats and anomalies generated at specific timestamp.
FeatureStatsAnomaly feature_stats_anomaly = 2
[(google.api.field_behavior) = OUTPUT_ONLY];
FeatureStatsAnomaly feature_stats_anomaly = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}

// An enum representing the value type of a feature.
Expand Down Expand Up @@ -143,17 +140,15 @@ message Feature {
// "overwrite" update happens.
string etag = 7;

// Optional. If not set, use the monitoring_config defined for the EntityType
// this Feature belongs to. Only Features with type
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL,
// STRING, DOUBLE or INT64 can enable monitoring.
// Optional. If not set, use the monitoring_config defined for the EntityType this
// Feature belongs to.
// Only Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.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. The list of historical stats and anomalies with specified
// objectives.
repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The list of historical stats and anomalies with specified objectives.
repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
}
40 changes: 21 additions & 19 deletions protos/google/cloud/aiplatform/v1/featurestore.proto
Original file line number Diff line number Diff line change
Expand Up @@ -41,32 +41,33 @@ message Featurestore {
// OnlineServingConfig specifies the details for provisioning online serving
// resources.
message OnlineServingConfig {
// The number of nodes for each cluster. The number of nodes will not
// scale automatically but can be scaled manually by providing different
// values when updating.
// Only one of `fixed_node_count` and `scaling` can be set. Setting one will
// reset the other.
// The number of nodes for the online store. The number of nodes doesn't
// scale automatically, but you can manually update the number of
// nodes. If set to 0, the featurestore will not have an
// online store and cannot be used for online serving.
int32 fixed_node_count = 2;
}

// Possible states a Featurestore can have.
// Possible states a featurestore can have.
enum State {
// Default value. This value is unused.
STATE_UNSPECIFIED = 0;

// State when the Featurestore configuration is not being updated and the
// fields reflect the current configuration of the Featurestore. The
// Featurestore is usable in this state.
// State when the featurestore configuration is not being updated and the
// fields reflect the current configuration of the featurestore. The
// featurestore is usable in this state.
STABLE = 1;

// State when the Featurestore configuration is being updated and the fields
// reflect the updated configuration of the Featurestore, not the current
// one. For example, `online_serving_config.fixed_node_count` can take
// minutes to update. While the update is in progress, the Featurestore
// will be in the UPDATING state and the value of `fixed_node_count` will be
// the updated value. Until the update completes, the actual number of nodes
// can still be the original value of `fixed_node_count`. The Featurestore
// is still usable in this state.
// The state of the featurestore configuration when it is being updated.
// During an update, the fields reflect either the original configuration
// or the updated configuration of the featurestore. For example,
// `online_serving_config.fixed_node_count` can take minutes to update.
// While the update is in progress, the featurestore is in the UPDATING
// state, and the value of `fixed_node_count` can be the original value or
// the updated value, depending on the progress of the operation. Until the
// update completes, the actual number of nodes can still be the original
// value of `fixed_node_count`. The featurestore is still usable in this
// state.
UPDATING = 2;
}

Expand Down Expand Up @@ -97,8 +98,9 @@ message Featurestore {
// and are immutable.
map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];

// Required. Config for online serving resources.
OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = REQUIRED];
// Optional. Config for online storage resources. If unset, the featurestore will
// not have an online store and cannot be used for online serving.
OnlineServingConfig online_serving_config = 7 [(google.api.field_behavior) = OPTIONAL];

// Output only. State of the featurestore.
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -139,15 +139,11 @@ message FeaturestoreMonitoringConfig {

// Threshold for numerical features of anomaly detection.
// This is shared by all objectives of Featurestore Monitoring for numerical
// features (i.e. Features with type
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) DOUBLE
// or INT64).
// features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) DOUBLE or INT64).
ThresholdConfig numerical_threshold_config = 3;

// Threshold for categorical features of anomaly detection.
// This is shared by all types of Featurestore Monitoring for categorical
// features (i.e. Features with type
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL or
// STRING).
// features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL or STRING).
ThresholdConfig categorical_threshold_config = 4;
}
13 changes: 8 additions & 5 deletions protos/google/cloud/aiplatform/v1/index_endpoint.proto
Original file line number Diff line number Diff line change
Expand Up @@ -80,22 +80,25 @@ message IndexEndpoint {
// Private services access must already be configured for the network. If left
// unspecified, the Endpoint is not peered with any network.
//
// Only one of the fields, [network][google.cloud.aiplatform.v1.IndexEndpoint.network] or
// [enable_private_service_connect][google.cloud.aiplatform.v1.IndexEndpoint.enable_private_service_connect],
// can be set.
// [network][google.cloud.aiplatform.v1.IndexEndpoint.network] and
// [private_service_connect_config][google.cloud.aiplatform.v1.IndexEndpoint.private_service_connect_config]
// are mutually exclusive.
//
// [Format](https://cloud.google.com/compute/docs/reference/rest/v1/networks/insert):
// projects/{project}/global/networks/{network}.
// Where {project} is a project number, as in '12345', and {network} is
// network name.
string network = 9 [(google.api.field_behavior) = OPTIONAL];

// Optional. If true, expose the IndexEndpoint via private service connect.
// Optional. Deprecated: If true, expose the IndexEndpoint via private service connect.
//
// Only one of the fields, [network][google.cloud.aiplatform.v1.IndexEndpoint.network] or
// [enable_private_service_connect][google.cloud.aiplatform.v1.IndexEndpoint.enable_private_service_connect],
// can be set.
bool enable_private_service_connect = 10 [(google.api.field_behavior) = OPTIONAL];
bool enable_private_service_connect = 10 [
deprecated = true,
(google.api.field_behavior) = OPTIONAL
];
}

// A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes.
Expand Down
7 changes: 7 additions & 0 deletions protos/google/cloud/aiplatform/v1/job_state.proto
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,11 @@ enum JobState {

// The job has expired.
JOB_STATE_EXPIRED = 9;

// The job is being updated. The job is only able to be updated at RUNNING
// state; if the update operation succeeds, job goes back to RUNNING state; if
// the update operation fails, the job goes back to RUNNING state with error
// messages written to [ModelDeploymentMonitoringJob.partial_errors][] field
// if it is a ModelDeploymentMonitoringJob.
JOB_STATE_UPDATING = 10;
}
20 changes: 20 additions & 0 deletions protos/google/cloud/aiplatform/v1/machine_resources.proto
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ message DedicatedResources {
// replicas at maximum may handle, a portion of the traffic will be dropped.
// If this value is not provided, will use [min_replica_count][google.cloud.aiplatform.v1.DedicatedResources.min_replica_count] as the
// default value.
//
// The value of this field impacts the charge against Vertex CPU and GPU
// quotas. Specifically, you will be charged for (max_replica_count *
// number of cores in the selected machine type) and (max_replica_count *
// number of GPUs per replica in the selected machine type).
int32 max_replica_count = 3 [(google.api.field_behavior) = IMMUTABLE];

// Immutable. The metric specifications that overrides a resource
Expand Down Expand Up @@ -164,6 +169,21 @@ message DiskSpec {
int32 boot_disk_size_gb = 2;
}

// Represents a mount configuration for Network File System (NFS) to mount.
message NfsMount {
// Required. IP address of the NFS server.
string server = 1 [(google.api.field_behavior) = REQUIRED];

// Required. Source path exported from NFS server.
// Has to start with '/', and combined with the ip address, it indicates
// the source mount path in the form of `server:path`
string path = 2 [(google.api.field_behavior) = REQUIRED];

// Required. Destination mount path. The NFS will be mounted for the user under
// /mnt/nfs/<mount_point>
string mount_point = 3 [(google.api.field_behavior) = REQUIRED];
}

// The metric specification that defines the target resource utilization
// (CPU utilization, accelerator's duty cycle, and so on) for calculating the
// desired replica count.
Expand Down
12 changes: 6 additions & 6 deletions protos/google/cloud/aiplatform/v1/metadata_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -571,9 +571,9 @@ message UpdateArtifactRequest {
// `projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}`
Artifact artifact = 1 [(google.api.field_behavior) = REQUIRED];

// Required. A FieldMask indicating which fields should be updated.
// Optional. A FieldMask indicating which fields should be updated.
// Functionality of this field is not yet supported.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];

// If set to true, and the [Artifact][google.cloud.aiplatform.v1.Artifact] is not found, a new [Artifact][google.cloud.aiplatform.v1.Artifact] is
// created.
Expand Down Expand Up @@ -757,9 +757,9 @@ message UpdateContextRequest {
// `projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}`
Context context = 1 [(google.api.field_behavior) = REQUIRED];

// Required. A FieldMask indicating which fields should be updated.
// Optional. A FieldMask indicating which fields should be updated.
// Functionality of this field is not yet supported.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];

// If set to true, and the [Context][google.cloud.aiplatform.v1.Context] is not found, a new [Context][google.cloud.aiplatform.v1.Context] is
// created.
Expand Down Expand Up @@ -1021,9 +1021,9 @@ message UpdateExecutionRequest {
// `projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}`
Execution execution = 1 [(google.api.field_behavior) = REQUIRED];

// Required. A FieldMask indicating which fields should be updated.
// Optional. A FieldMask indicating which fields should be updated.
// Functionality of this field is not yet supported.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = OPTIONAL];

// If set to true, and the [Execution][google.cloud.aiplatform.v1.Execution] is not found, a new [Execution][google.cloud.aiplatform.v1.Execution]
// is created.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,16 @@ message ModelDeploymentMonitoringJob {
pattern: "projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}"
};

// All metadata of most recent monitoring pipelines.
message LatestMonitoringPipelineMetadata {
// The time that most recent monitoring pipelines that is related to this
// run.
google.protobuf.Timestamp run_time = 1;

// The status of the most recent monitoring pipeline.
google.rpc.Status status = 2;
}

// The state to Specify the monitoring pipeline.
enum MonitoringScheduleState {
// Unspecified state.
Expand Down Expand Up @@ -110,6 +120,9 @@ message ModelDeploymentMonitoringJob {
// Output only. Schedule state when the monitoring job is in Running state.
MonitoringScheduleState schedule_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];

// Output only. Latest triggered monitoring pipeline metadata.
LatestMonitoringPipelineMetadata latest_monitoring_pipeline_metadata = 25 [(google.api.field_behavior) = OUTPUT_ONLY];

// Required. The config for monitoring objectives. This is a per DeployedModel config.
// Each DeployedModel needs to be configured separately.
repeated ModelDeploymentMonitoringObjectiveConfig model_deployment_monitoring_objective_configs = 6 [(google.api.field_behavior) = REQUIRED];
Expand Down
2 changes: 1 addition & 1 deletion protos/google/cloud/aiplatform/v1/model_monitoring.proto
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ option java_package = "com.google.cloud.aiplatform.v1";
option php_namespace = "Google\\Cloud\\AIPlatform\\V1";
option ruby_package = "Google::Cloud::AIPlatform::V1";

// Next ID: 7
// Next ID: 8
message ModelMonitoringObjectiveConfig {
// Training Dataset information.
message TrainingDataset {
Expand Down
17 changes: 17 additions & 0 deletions protos/google/cloud/aiplatform/v1/model_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,23 @@ message ListModelsResponse {
// Request message for [ModelService.UpdateModel][google.cloud.aiplatform.v1.ModelService.UpdateModel].
message UpdateModelRequest {
// Required. The Model which replaces the resource on the server.
// When Model Versioning is enabled, the model.name will be used to determine
// whether to update the model or model version.
// 1. model.name with the @ value, e.g. models/123@1, refers to a version
// specific update.
// 2. model.name without the @ value, e.g. models/123, refers to a model
// update.
// 3. model.name with @-, e.g. models/123@-, refers to a model update.
// 4. Supported model fields: display_name, description; supported
// version-specific fields: version_description. Labels are supported in both
// scenarios. Both the model labels and the version labels are merged when a
// model is returned. When updating labels, if the request is for
// model-specific update, model label gets updated. Otherwise, version labels
// get updated.
// 5. A model name or model version name fields update mismatch will cause a
// precondition error.
// 6. One request cannot update both the model and the version fields. You
// must update them separately.
Model model = 1 [(google.api.field_behavior) = REQUIRED];

// Required. The update mask applies to the resource.
Expand Down
4 changes: 2 additions & 2 deletions protos/google/cloud/aiplatform/v1/pipeline_job.proto
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ message PipelineJob {
// Output only. Timestamp when this PipelineJob was most recently updated.
google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];

// Required. The spec of the pipeline.
google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED];
// The spec of the pipeline.
google.protobuf.Struct pipeline_spec = 7;

// Output only. The detailed state of the job.
PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
Expand Down
3 changes: 3 additions & 0 deletions protos/google/cloud/aiplatform/v1/pipeline_service.proto
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,9 @@ message ListPipelineJobsRequest {
// * `end_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons.
// Values must be in RFC 3339 format.
// * `labels`: Supports key-value equality and key presence.
// * `template_uri`: Supports `=`, `!=` comparisons, and `:` wildcard.
// * `template_metadata.version_name`: Supports `=`, `!=` comparisons, and `:`
// wildcard.
//
// Filter expressions can be combined together using logical operators
// (`AND` & `OR`).
Expand Down
Loading