Skip to content

Commit a476b9f

Browse files
Google APIscopybara-github
authored andcommitted
feat: add reserved_ip_ranges to CustomJobSpec in aiplatform v1 custom_job.proto
feat: add nfs_mounts to WorkPoolSpec in aiplatform v1 custom_job.proto feat: add JOB_STATE_UPDATING to JobState in aiplatform v1 job_state.proto feat: add MfsMount in aiplatform v1 machine_resources.proto feat: add ConvexAutomatedStoppingSpec to StudySpec in aiplatform v1 study.proto BREAKING CHANGE: (php) remove several `REQUIRED` field annotations in featurestore.proto, metadata.proto, and pipeline_job.proto PiperOrigin-RevId: 441616654
1 parent e5debc9 commit a476b9f

17 files changed

Lines changed: 190 additions & 107 deletions

google/cloud/aiplatform/v1/aiplatform_v1.yaml

Lines changed: 12 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -101,29 +101,6 @@ documentation:
101101
- selector: google.cloud.location.Locations.ListLocations
102102
description: Lists information about the supported locations for this service.
103103

104-
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
105-
description: |-
106-
Gets the access control policy for a resource. Returns an empty policy
107-
if the resource exists and does not have a policy set.
108-
109-
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
110-
description: |-
111-
Sets the access control policy on the specified resource. Replaces
112-
any existing policy.
113-
114-
Can return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`
115-
errors.
116-
117-
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
118-
description: |-
119-
Returns permissions that a caller has on the specified resource. If the
120-
resource does not exist, this will return an empty set of
121-
permissions, not a `NOT_FOUND` error.
122-
123-
Note: This operation is designed to be used for building
124-
permission-aware UIs and command-line tools, not for authorization
125-
checking. This operation may "fail open" without warning.
126-
127104
backend:
128105
rules:
129106
- selector: 'google.cloud.aiplatform.v1.DatasetService.*'
@@ -137,9 +114,9 @@ backend:
137114
- selector: 'google.cloud.aiplatform.v1.FeaturestoreService.*'
138115
deadline: 60.0
139116
- selector: 'google.cloud.aiplatform.v1.IndexEndpointService.*'
140-
deadline: 30.0
117+
deadline: 60.0
141118
- selector: 'google.cloud.aiplatform.v1.IndexService.*'
142-
deadline: 30.0
119+
deadline: 60.0
143120
- selector: 'google.cloud.aiplatform.v1.JobService.*'
144121
deadline: 60.0
145122
- selector: 'google.cloud.aiplatform.v1.MetadataService.*'
@@ -164,8 +141,6 @@ backend:
164141
deadline: 30.0
165142
- selector: google.cloud.location.Locations.ListLocations
166143
deadline: 30.0
167-
- selector: 'google.iam.v1.IAMPolicy.*'
168-
deadline: 60.0
169144
- selector: 'google.longrunning.Operations.*'
170145
deadline: 60.0
171146

@@ -179,22 +154,6 @@ http:
179154
get: '/ui/{name=projects/*}/locations'
180155
additional_bindings:
181156
- get: '/v1/{name=projects/*}/locations'
182-
- selector: google.iam.v1.IAMPolicy.GetIamPolicy
183-
get: '/ui/{resource=projects/*/locations/*/**}:getIamPolicy'
184-
additional_bindings:
185-
- get: '/v1/{resource=projects/*/locations/*/**}:getIamPolicy'
186-
- selector: google.iam.v1.IAMPolicy.SetIamPolicy
187-
post: '/ui/{resource=projects/*/locations/*/**}:setIamPolicy'
188-
body: '*'
189-
additional_bindings:
190-
- post: '/v1/{resource=projects/*/locations/*/**}:setIamPolicy'
191-
body: '*'
192-
- selector: google.iam.v1.IAMPolicy.TestIamPermissions
193-
post: '/ui/{resource=projects/*/locations/*/**}:testIamPermissions'
194-
body: '*'
195-
additional_bindings:
196-
- post: '/v1/{resource=projects/*/locations/*/**}:testIamPermissions'
197-
body: '*'
198157
- selector: google.longrunning.Operations.CancelOperation
199158
post: '/ui/{name=projects/*/locations/*/operations/*}:cancel'
200159
additional_bindings:
@@ -203,6 +162,7 @@ http:
203162
- post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel'
204163
- post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel'
205164
- post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel'
165+
- post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel'
206166
- post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:cancel'
207167
- post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel'
208168
- post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel'
@@ -232,6 +192,7 @@ http:
232192
- post: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:cancel'
233193
- post: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:cancel'
234194
- post: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:cancel'
195+
- post: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:cancel'
235196
- post: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}:cancel'
236197
- post: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}:cancel'
237198
- post: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:cancel'
@@ -262,6 +223,7 @@ http:
262223
- delete: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}'
263224
- delete: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}'
264225
- delete: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}'
226+
- delete: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}'
265227
- delete: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}'
266228
- delete: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}'
267229
- delete: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}'
@@ -291,6 +253,7 @@ http:
291253
- delete: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}'
292254
- delete: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}'
293255
- delete: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}'
256+
- delete: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}'
294257
- delete: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}'
295258
- delete: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}'
296259
- delete: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}'
@@ -321,6 +284,7 @@ http:
321284
- get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}'
322285
- get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}'
323286
- get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}'
287+
- get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}'
324288
- get: '/ui/{name=projects/*/locations/*/edgeDeploymentJobs/*/operations/*}'
325289
- get: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}'
326290
- get: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}'
@@ -351,6 +315,7 @@ http:
351315
- get: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}'
352316
- get: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}'
353317
- get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}'
318+
- get: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}'
354319
- get: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}'
355320
- get: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}'
356321
- get: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}'
@@ -381,6 +346,7 @@ http:
381346
- get: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations'
382347
- get: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations'
383348
- get: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations'
349+
- get: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*}/operations'
384350
- get: '/ui/{name=projects/*/locations/*/edgeDevices/*}/operations'
385351
- get: '/ui/{name=projects/*/locations/*/endpoints/*}/operations'
386352
- get: '/ui/{name=projects/*/locations/*/featurestores/*}/operations'
@@ -410,6 +376,7 @@ http:
410376
- get: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*}/operations'
411377
- get: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*}/operations'
412378
- get: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*}/operations'
379+
- get: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*}/operations'
413380
- get: '/v1/{name=projects/*/locations/*/endpoints/*}/operations'
414381
- get: '/v1/{name=projects/*/locations/*/featurestores/*}/operations'
415382
- get: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*}/operations'
@@ -440,6 +407,7 @@ http:
440407
- post: '/ui/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait'
441408
- post: '/ui/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait'
442409
- post: '/ui/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait'
410+
- post: '/ui/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait'
443411
- post: '/ui/{name=projects/*/locations/*/edgeDevices/*/operations/*}:wait'
444412
- post: '/ui/{name=projects/*/locations/*/endpoints/*/operations/*}:wait'
445413
- post: '/ui/{name=projects/*/locations/*/featurestores/*/operations/*}:wait'
@@ -469,6 +437,7 @@ http:
469437
- post: '/v1/{name=projects/*/locations/*/datasets/*/savedQueries/*/operations/*}:wait'
470438
- post: '/v1/{name=projects/*/locations/*/datasets/*/annotationSpecs/*/operations/*}:wait'
471439
- post: '/v1/{name=projects/*/locations/*/datasets/*/dataItems/*/annotations/*/operations/*}:wait'
440+
- post: '/v1/{name=projects/*/locations/*/deploymentResourcePools/*/operations/*}:wait'
472441
- post: '/v1/{name=projects/*/locations/*/endpoints/*/operations/*}:wait'
473442
- post: '/v1/{name=projects/*/locations/*/featurestores/*/operations/*}:wait'
474443
- post: '/v1/{name=projects/*/locations/*/featurestores/*/entityTypes/*/operations/*}:wait'
@@ -620,10 +589,6 @@ authentication:
620589
oauth:
621590
canonical_scopes: |-
622591
https://www.googleapis.com/auth/cloud-platform
623-
- selector: 'google.iam.v1.IAMPolicy.*'
624-
oauth:
625-
canonical_scopes: |-
626-
https://www.googleapis.com/auth/cloud-platform
627592
- selector: 'google.longrunning.Operations.*'
628593
oauth:
629594
canonical_scopes: |-

google/cloud/aiplatform/v1/custom_job.proto

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,16 @@ message CustomJobSpec {
140140
type: "compute.googleapis.com/Network"
141141
}];
142142

143+
// Optional. A list of names for the reserved ip ranges under the VPC network
144+
// that can be used for this job.
145+
//
146+
// If set, we will deploy the job within the provided ip ranges. Otherwise,
147+
// the job will be deployed to any ip ranges under the provided VPC
148+
// network.
149+
//
150+
// Example: ['vertex-ai-ip-range'].
151+
repeated string reserved_ip_ranges = 13 [(google.api.field_behavior) = OPTIONAL];
152+
143153
// The Cloud Storage location to store the output of this CustomJob or
144154
// HyperparameterTuningJob. For HyperparameterTuningJob,
145155
// the baseOutputDirectory of
@@ -204,6 +214,9 @@ message WorkerPoolSpec {
204214
// Optional. The number of worker replicas to use for this worker pool.
205215
int64 replica_count = 2 [(google.api.field_behavior) = OPTIONAL];
206216

217+
// Optional. List of NFS mount spec.
218+
repeated NfsMount nfs_mounts = 4 [(google.api.field_behavior) = OPTIONAL];
219+
207220
// Disk spec.
208221
DiskSpec disk_spec = 5;
209222
}

google/cloud/aiplatform/v1/endpoint.proto

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ message Endpoint {
109109
type: "compute.googleapis.com/Network"
110110
}];
111111

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

245245
// BigQuery table for logging.
246-
// If only given project, a new dataset will be created with name
246+
// If only given a project, a new dataset will be created with name
247247
// `logging_<endpoint-display-name>_<endpoint-id>` where
248248
// <endpoint-display-name> will be made BigQuery-dataset-name compatible (e.g.
249249
// most special characters will become underscores). If no table name is

google/cloud/aiplatform/v1/entity_type.proto

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,13 @@ message EntityType {
7474
// "overwrite" update happens.
7575
string etag = 7 [(google.api.field_behavior) = OPTIONAL];
7676

77-
// Optional. The default monitoring configuration for all Features with value
78-
// type
79-
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL,
80-
// STRING, DOUBLE or INT64 under this EntityType.
77+
// Optional. The default monitoring configuration for all Features with value type
78+
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, STRING, DOUBLE or INT64 under this
79+
// EntityType.
8180
//
8281
// If this is populated with
8382
// [FeaturestoreMonitoringConfig.monitoring_interval] specified, snapshot
8483
// analysis monitoring is enabled. Otherwise, snapshot analysis monitoring is
8584
// disabled.
86-
FeaturestoreMonitoringConfig monitoring_config = 8
87-
[(google.api.field_behavior) = OPTIONAL];
85+
FeaturestoreMonitoringConfig monitoring_config = 8 [(google.api.field_behavior) = OPTIONAL];
8886
}

google/cloud/aiplatform/v1/feature.proto

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,7 @@ message Feature {
4141
// A list of historical [Snapshot
4242
// Analysis][FeaturestoreMonitoringConfig.SnapshotAnalysis] or [Import Feature
4343
// Analysis] [FeaturestoreMonitoringConfig.ImportFeatureAnalysis] stats
44-
// requested by user, sorted by
45-
// [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1.FeatureStatsAnomaly.start_time]
46-
// descending.
44+
// requested by user, sorted by [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1.FeatureStatsAnomaly.start_time] descending.
4745
message MonitoringStatsAnomaly {
4846
// If the objective in the request is both
4947
// Import Feature Analysis and Snapshot Analysis, this objective could be
@@ -64,8 +62,7 @@ message Feature {
6462
Objective objective = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
6563

6664
// Output only. The stats and anomalies generated at specific timestamp.
67-
FeatureStatsAnomaly feature_stats_anomaly = 2
68-
[(google.api.field_behavior) = OUTPUT_ONLY];
65+
FeatureStatsAnomaly feature_stats_anomaly = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
6966
}
7067

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

146-
// Optional. If not set, use the monitoring_config defined for the EntityType
147-
// this Feature belongs to. Only Features with type
148-
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL,
149-
// STRING, DOUBLE or INT64 can enable monitoring.
143+
// Optional. If not set, use the monitoring_config defined for the EntityType this
144+
// Feature belongs to.
145+
// Only Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, STRING, DOUBLE or
146+
// INT64 can enable monitoring.
150147
//
151148
// If set to true, all types of data monitoring are disabled despite the
152149
// config on EntityType.
153150
bool disable_monitoring = 12 [(google.api.field_behavior) = OPTIONAL];
154151

155-
// Output only. The list of historical stats and anomalies with specified
156-
// objectives.
157-
repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11
158-
[(google.api.field_behavior) = OUTPUT_ONLY];
152+
// Output only. The list of historical stats and anomalies with specified objectives.
153+
repeated MonitoringStatsAnomaly monitoring_stats_anomalies = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
159154
}

google/cloud/aiplatform/v1/featurestore.proto

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -41,32 +41,33 @@ message Featurestore {
4141
// OnlineServingConfig specifies the details for provisioning online serving
4242
// resources.
4343
message OnlineServingConfig {
44-
// The number of nodes for each cluster. The number of nodes will not
45-
// scale automatically but can be scaled manually by providing different
46-
// values when updating.
47-
// Only one of `fixed_node_count` and `scaling` can be set. Setting one will
48-
// reset the other.
44+
// The number of nodes for the online store. The number of nodes doesn't
45+
// scale automatically, but you can manually update the number of
46+
// nodes. If set to 0, the featurestore will not have an
47+
// online store and cannot be used for online serving.
4948
int32 fixed_node_count = 2;
5049
}
5150

52-
// Possible states a Featurestore can have.
51+
// Possible states a featurestore can have.
5352
enum State {
5453
// Default value. This value is unused.
5554
STATE_UNSPECIFIED = 0;
5655

57-
// State when the Featurestore configuration is not being updated and the
58-
// fields reflect the current configuration of the Featurestore. The
59-
// Featurestore is usable in this state.
56+
// State when the featurestore configuration is not being updated and the
57+
// fields reflect the current configuration of the featurestore. The
58+
// featurestore is usable in this state.
6059
STABLE = 1;
6160

62-
// State when the Featurestore configuration is being updated and the fields
63-
// reflect the updated configuration of the Featurestore, not the current
64-
// one. For example, `online_serving_config.fixed_node_count` can take
65-
// minutes to update. While the update is in progress, the Featurestore
66-
// will be in the UPDATING state and the value of `fixed_node_count` will be
67-
// the updated value. Until the update completes, the actual number of nodes
68-
// can still be the original value of `fixed_node_count`. The Featurestore
69-
// is still usable in this state.
61+
// The state of the featurestore configuration when it is being updated.
62+
// During an update, the fields reflect either the original configuration
63+
// or the updated configuration of the featurestore. For example,
64+
// `online_serving_config.fixed_node_count` can take minutes to update.
65+
// While the update is in progress, the featurestore is in the UPDATING
66+
// state, and the value of `fixed_node_count` can be the original value or
67+
// the updated value, depending on the progress of the operation. Until the
68+
// update completes, the actual number of nodes can still be the original
69+
// value of `fixed_node_count`. The featurestore is still usable in this
70+
// state.
7071
UPDATING = 2;
7172
}
7273

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

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

103105
// Output only. State of the featurestore.
104106
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];

google/cloud/aiplatform/v1/featurestore_monitoring.proto

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,11 @@ message FeaturestoreMonitoringConfig {
139139

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

147145
// Threshold for categorical features of anomaly detection.
148146
// This is shared by all types of Featurestore Monitoring for categorical
149-
// features (i.e. Features with type
150-
// ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL or
151-
// STRING).
147+
// features (i.e. Features with type ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL or STRING).
152148
ThresholdConfig categorical_threshold_config = 4;
153149
}

0 commit comments

Comments
 (0)