feat: add featurestore, index, metadata, monitoring, pipeline, and tensorboard services to aiplatform v1beta1.

PiperOrigin-RevId: 371996826
pull/649/head
Google APIs 4 years ago committed by Copybara-Service
parent 5efeb79eed
commit 8e2d88f536
  1. 36
      google/cloud/aiplatform/v1beta1/BUILD.bazel
  2. 306
      google/cloud/aiplatform/v1beta1/aiplatform_grpc_service_config.json
  3. 82
      google/cloud/aiplatform/v1beta1/aiplatform_v1beta1.yaml
  4. 107
      google/cloud/aiplatform/v1beta1/artifact.proto
  5. 5
      google/cloud/aiplatform/v1beta1/batch_prediction_job.proto
  6. 92
      google/cloud/aiplatform/v1beta1/context.proto
  7. 15
      google/cloud/aiplatform/v1beta1/custom_job.proto
  8. 40
      google/cloud/aiplatform/v1beta1/deployed_index_ref.proto
  9. 1
      google/cloud/aiplatform/v1beta1/endpoint.proto
  10. 84
      google/cloud/aiplatform/v1beta1/entity_type.proto
  11. 78
      google/cloud/aiplatform/v1beta1/event.proto
  12. 107
      google/cloud/aiplatform/v1beta1/execution.proto
  13. 2
      google/cloud/aiplatform/v1beta1/explanation_metadata.proto
  14. 131
      google/cloud/aiplatform/v1beta1/feature.proto
  15. 84
      google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto
  16. 42
      google/cloud/aiplatform/v1beta1/feature_selector.proto
  17. 105
      google/cloud/aiplatform/v1beta1/featurestore.proto
  18. 54
      google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto
  19. 219
      google/cloud/aiplatform/v1beta1/featurestore_online_service.proto
  20. 1157
      google/cloud/aiplatform/v1beta1/featurestore_service.proto
  21. 94
      google/cloud/aiplatform/v1beta1/index.proto
  22. 190
      google/cloud/aiplatform/v1beta1/index_endpoint.proto
  23. 284
      google/cloud/aiplatform/v1beta1/index_endpoint_service.proto
  24. 272
      google/cloud/aiplatform/v1beta1/index_service.proto
  25. 24
      google/cloud/aiplatform/v1beta1/io.proto
  26. 288
      google/cloud/aiplatform/v1beta1/job_service.proto
  27. 45
      google/cloud/aiplatform/v1beta1/lineage_subgraph.proto
  28. 76
      google/cloud/aiplatform/v1beta1/metadata_schema.proto
  29. 982
      google/cloud/aiplatform/v1beta1/metadata_service.proto
  30. 63
      google/cloud/aiplatform/v1beta1/metadata_store.proto
  31. 21
      google/cloud/aiplatform/v1beta1/migration_service.proto
  32. 4
      google/cloud/aiplatform/v1beta1/model.proto
  33. 268
      google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto
  34. 140
      google/cloud/aiplatform/v1beta1/model_monitoring.proto
  35. 287
      google/cloud/aiplatform/v1beta1/pipeline_job.proto
  36. 161
      google/cloud/aiplatform/v1beta1/pipeline_service.proto
  37. 22
      google/cloud/aiplatform/v1beta1/study.proto
  38. 84
      google/cloud/aiplatform/v1beta1/tensorboard.proto
  39. 99
      google/cloud/aiplatform/v1beta1/tensorboard_data.proto
  40. 76
      google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto
  41. 61
      google/cloud/aiplatform/v1beta1/tensorboard_run.proto
  42. 856
      google/cloud/aiplatform/v1beta1/tensorboard_service.proto
  43. 104
      google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto
  44. 48
      google/cloud/aiplatform/v1beta1/types.proto
  45. 4
      google/cloud/aiplatform/v1beta1/user_action_reference.proto
  46. 38
      google/cloud/aiplatform/v1beta1/value.proto

@ -24,41 +24,73 @@ proto_library(
"accelerator_type.proto",
"annotation.proto",
"annotation_spec.proto",
"artifact.proto",
"batch_prediction_job.proto",
"completion_stats.proto",
"context.proto",
"custom_job.proto",
"data_item.proto",
"data_labeling_job.proto",
"dataset.proto",
"dataset_service.proto",
"deployed_index_ref.proto",
"deployed_model_ref.proto",
"encryption_spec.proto",
"endpoint.proto",
"endpoint_service.proto",
"entity_type.proto",
"env_var.proto",
"event.proto",
"execution.proto",
"explanation.proto",
"explanation_metadata.proto",
"feature.proto",
"feature_monitoring_stats.proto",
"feature_selector.proto",
"featurestore.proto",
"featurestore_monitoring.proto",
"featurestore_online_service.proto",
"featurestore_service.proto",
"hyperparameter_tuning_job.proto",
"index.proto",
"index_endpoint.proto",
"index_endpoint_service.proto",
"index_service.proto",
"io.proto",
"job_service.proto",
"job_state.proto",
"lineage_subgraph.proto",
"machine_resources.proto",
"manual_batch_tuning_parameters.proto",
"metadata_schema.proto",
"metadata_service.proto",
"metadata_store.proto",
"migratable_resource.proto",
"migration_service.proto",
"model.proto",
"model_deployment_monitoring_job.proto",
"model_evaluation.proto",
"model_evaluation_slice.proto",
"model_monitoring.proto",
"model_service.proto",
"operation.proto",
"pipeline_job.proto",
"pipeline_service.proto",
"pipeline_state.proto",
"prediction_service.proto",
"specialist_pool.proto",
"specialist_pool_service.proto",
"study.proto",
"tensorboard.proto",
"tensorboard_data.proto",
"tensorboard_experiment.proto",
"tensorboard_run.proto",
"tensorboard_service.proto",
"tensorboard_time_series.proto",
"training_pipeline.proto",
"types.proto",
"user_action_reference.proto",
"value.proto",
"vizier_service.proto",
],
deps = [
@ -325,8 +357,8 @@ nodejs_gapic_assembly_pkg(
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"ruby_gapic_assembly_pkg",
"ruby_cloud_gapic_library",
"ruby_gapic_assembly_pkg",
"ruby_grpc_library",
"ruby_proto_library",
)
@ -344,7 +376,7 @@ ruby_grpc_library(
ruby_cloud_gapic_library(
name = "aiplatform_ruby_gapic",
srcs = [":aiplatform_proto_with_info",],
srcs = [":aiplatform_proto_with_info"],
extra_protoc_parameters = ["ruby-cloud-gem-name=google-cloud-aiplatform-v1beta1"],
grpc_service_config = "aiplatform_grpc_service_config.json",
deps = [

@ -78,6 +78,64 @@
],
"timeout": "5s"
},
{
"name":[
{
"service": "google.cloud.aiplatform.v1beta1.IndexService",
"method": "CreateIndex"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexService",
"method": "GetIndex"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexService",
"method": "ListIndexes"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexService",
"method": "UpdateIndex"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexService",
"method": "DeleteIndex"
}
],
"timeout": "5s"
},
{
"name":[
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "CreateIndexEndpoint"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "GetIndexEndpoint"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "ListIndexEndpoints"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "UpdateIndexEndpoint"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "DeleteIndexEndpoint"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "DeployIndex"
},
{
"service": "google.cloud.aiplatform.v1beta1.IndexEndpointService",
"method": "UndeployIndex"
}
],
"timeout": "5s"
},
{
"name":[
{
@ -159,6 +217,148 @@
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "CancelBatchPredictionJob"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "SearchModelDeploymentMonitoringStatsAnomalies"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "GetModelDeploymentMonitoringJob"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "ListModelDeploymentMonitoringJobs"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "UpdateModelDeploymentMonitoringJob"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "DeleteModelDeploymentMonitoringJob"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "PauseModelDeploymentMonitoringJob"
},
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "ResumeModelDeploymentMonitoringJob"
}
],
"timeout": "5s"
},
{
"name":[
{
"service": "google.cloud.aiplatform.v1beta1.JobService",
"method": "CreateModelDeploymentMonitoringJob"
}
],
"timeout": "60s"
},
{
"name":[
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "AddContextArtifactsAndExecutions"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "AddContextChildren"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "AddExecutionEvents"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "CreateArtifact"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "CreateContext"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "CreateExecution"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "CreateMetadataSchema"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "CreateMetadataStore"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "DeleteContext"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "DeleteMetadataStore"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "GetArtifact"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "GetContext"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "GetExecution"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "GetMetadataSchema"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "GetMetadataStore"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "ListArtifacts"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "ListContexts"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "ListExecutions"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "ListMetadataSchemas"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "ListMetadataStores"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "QueryContextLineageSubgraph"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "QueryExecutionInputsAndOutputs"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "UpdateArtifact"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "UpdateContext"
},
{
"service": "google.cloud.aiplatform.v1beta1.MetadataService",
"method": "UpdateExecution"
}
],
"timeout": "5s"
@ -339,6 +539,112 @@
}
],
"timeout": "5s"
},
{
"name": [
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "CreateFeaturestore"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "GetFeaturestore"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "ListFeaturestores"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "UpdateFeaturestore"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "DeleteFeaturestore"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "CreateEntityType"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "GetEntityType"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "ListEntityTypes"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "UpdateEntityType"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "DeleteEntityType"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "CreateFeature"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "BatchCreateFeatures"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "GetFeature"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "ListFeatures"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "SearchFeatures"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "UpdateFeature"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "DeleteFeature"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "ImportFeatureValues"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "BatchReadFeatureValues"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreService",
"method": "ExportFeatureValuess"
}
],
"timeout": "5s"
},
{
"name": [
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService",
"method": "ReadFeatures"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService",
"method": "StreamingReadFeatures"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService",
"method": "ReadFeatureValues"
},
{
"service": "google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService",
"method": "StreamingReadFeatureValues"
}
],
"timeout": "5s"
}
]
}

@ -6,37 +6,67 @@ title: Cloud AI Platform API
apis:
- name: google.cloud.aiplatform.v1beta1.DatasetService
- name: google.cloud.aiplatform.v1beta1.EndpointService
- name: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService
- name: google.cloud.aiplatform.v1beta1.FeaturestoreService
- name: google.cloud.aiplatform.v1beta1.IndexEndpointService
- name: google.cloud.aiplatform.v1beta1.IndexService
- name: google.cloud.aiplatform.v1beta1.JobService
- name: google.cloud.aiplatform.v1beta1.MetadataService
- name: google.cloud.aiplatform.v1beta1.MigrationService
- name: google.cloud.aiplatform.v1beta1.ModelService
- name: google.cloud.aiplatform.v1beta1.PipelineService
- name: google.cloud.aiplatform.v1beta1.PredictionService
- name: google.cloud.aiplatform.v1beta1.SpecialistPoolService
- name: google.cloud.aiplatform.v1beta1.TensorboardService
- name: google.cloud.aiplatform.v1beta1.VizierService
types:
- name: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesOperationMetadata
- name: google.cloud.aiplatform.v1beta1.BatchCreateFeaturesResponse
- name: google.cloud.aiplatform.v1beta1.BatchMigrateResourcesOperationMetadata
- name: google.cloud.aiplatform.v1beta1.BatchMigrateResourcesResponse
- name: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesOperationMetadata
- name: google.cloud.aiplatform.v1beta1.BatchReadFeatureValuesResponse
- name: google.cloud.aiplatform.v1beta1.CheckTrialEarlyStoppingStateMetatdata
- name: google.cloud.aiplatform.v1beta1.CheckTrialEarlyStoppingStateResponse
- name: google.cloud.aiplatform.v1beta1.CreateDatasetOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateEndpointOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateEntityTypeOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateFeatureOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateFeaturestoreOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateIndexEndpointOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateIndexOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateMetadataStoreOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateSpecialistPoolOperationMetadata
- name: google.cloud.aiplatform.v1beta1.CreateTensorboardOperationMetadata
- name: google.cloud.aiplatform.v1beta1.DeleteMetadataStoreOperationMetadata
- name: google.cloud.aiplatform.v1beta1.DeleteOperationMetadata
- name: google.cloud.aiplatform.v1beta1.DeployIndexOperationMetadata
- name: google.cloud.aiplatform.v1beta1.DeployIndexResponse
- name: google.cloud.aiplatform.v1beta1.DeployModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.DeployModelResponse
- name: google.cloud.aiplatform.v1beta1.ExportDataOperationMetadata
- name: google.cloud.aiplatform.v1beta1.ExportDataResponse
- name: google.cloud.aiplatform.v1beta1.ExportFeatureValuesOperationMetadata
- name: google.cloud.aiplatform.v1beta1.ExportFeatureValuesResponse
- name: google.cloud.aiplatform.v1beta1.ExportModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.ExportModelResponse
- name: google.cloud.aiplatform.v1beta1.ImportDataOperationMetadata
- name: google.cloud.aiplatform.v1beta1.ImportDataResponse
- name: google.cloud.aiplatform.v1beta1.ImportFeatureValuesOperationMetadata
- name: google.cloud.aiplatform.v1beta1.ImportFeatureValuesResponse
- name: google.cloud.aiplatform.v1beta1.SpecialistPool
- name: google.cloud.aiplatform.v1beta1.SuggestTrialsMetadata
- name: google.cloud.aiplatform.v1beta1.SuggestTrialsResponse
- name: google.cloud.aiplatform.v1beta1.UndeployIndexOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UndeployIndexResponse
- name: google.cloud.aiplatform.v1beta1.UndeployModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UndeployModelResponse
- name: google.cloud.aiplatform.v1beta1.UpdateFeaturestoreOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UpdateIndexOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UpdateModelDeploymentMonitoringJobOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UpdateSpecialistPoolOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UpdateTensorboardOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UploadModelOperationMetadata
- name: google.cloud.aiplatform.v1beta1.UploadModelResponse
- name: google.cloud.aiplatform.v1beta1.schema.ImageDataItem
@ -65,8 +95,20 @@ backend:
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.EndpointService.*'
deadline: 60.0
- selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues
deadline: 60.0
- selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.FeaturestoreService.*'
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.IndexEndpointService.*'
deadline: 30.0
- selector: 'google.cloud.aiplatform.v1beta1.IndexService.*'
deadline: 30.0
- selector: 'google.cloud.aiplatform.v1beta1.JobService.*'
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.MetadataService.*'
deadline: 60.0
- selector: google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources
deadline: 60.0
- selector: google.cloud.aiplatform.v1beta1.MigrationService.SearchMigratableResources
@ -81,6 +123,8 @@ backend:
deadline: 600.0
- selector: 'google.cloud.aiplatform.v1beta1.SpecialistPoolService.*'
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.TensorboardService.*'
deadline: 60.0
- selector: 'google.cloud.aiplatform.v1beta1.VizierService.*'
deadline: 60.0
- selector: google.cloud.location.Locations.GetLocation
@ -121,6 +165,7 @@ http:
- post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel'
- post: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:cancel'
@ -148,6 +193,7 @@ http:
- post: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:cancel'
- post: '/v1beta1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:cancel'
@ -177,6 +223,7 @@ http:
- delete: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/models/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/studies/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}'
- delete: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}'
@ -204,6 +251,7 @@ http:
- delete: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}'
- delete: '/v1beta1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}'
@ -233,6 +281,7 @@ http:
- get: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/models/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/studies/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}'
- get: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}'
@ -260,6 +309,7 @@ http:
- get: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}'
- get: '/v1beta1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}'
@ -289,6 +339,7 @@ http:
- get: '/ui/{name=projects/*/locations/*/migratableResources/*}/operations'
- get: '/ui/{name=projects/*/locations/*/models/*}/operations'
- get: '/ui/{name=projects/*/locations/*/models/*/evaluations/*}/operations'
- get: '/ui/{name=projects/*/locations/*/studies/*}/operations'
- get: '/ui/{name=projects/*/locations/*/studies/*/trials/*}/operations'
- get: '/ui/{name=projects/*/locations/*/trainingPipelines/*}/operations'
- get: '/ui/{name=projects/*/locations/*/pipelineJobs/*}/operations'
@ -316,6 +367,7 @@ http:
- get: '/v1beta1/{name=projects/*/locations/*/migratableResources/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/models/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/studies/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*}/operations'
- get: '/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}/operations'
@ -345,6 +397,7 @@ http:
- post: '/ui/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/models/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/studies/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:wait'
- post: '/ui/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:wait'
@ -372,6 +425,7 @@ http:
- post: '/v1beta1/{name=projects/*/locations/*/migratableResources/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/models/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/models/*/evaluations/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/studies/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/studies/*/trials/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/trainingPipelines/*/operations/*}:wait'
- post: '/v1beta1/{name=projects/*/locations/*/pipelineJobs/*/operations/*}:wait'
@ -391,10 +445,34 @@ authentication:
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.StreamingReadFeatureValues
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.FeaturestoreService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.IndexEndpointService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.IndexService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.JobService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.MetadataService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: google.cloud.aiplatform.v1beta1.MigrationService.BatchMigrateResources
oauth:
canonical_scopes: |-
@ -423,6 +501,10 @@ authentication:
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.TensorboardService.*'
oauth:
canonical_scopes: |-
https://www.googleapis.com/auth/cloud-platform
- selector: 'google.cloud.aiplatform.v1beta1.VizierService.*'
oauth:
canonical_scopes: |-

@ -0,0 +1,107 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/value.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ArtifactProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Instance of a general artifact.
message Artifact {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Artifact"
pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/artifacts/{artifact}"
};
// Describes the state of the Artifact.
enum State {
// Unspecified state for the Artifact.
STATE_UNSPECIFIED = 0;
// A state used by systems like Managed Pipelines to indicate that the
// underlying data item represented by this Artifact is being created.
PENDING = 1;
// A state indicating that the Artifact should exist, unless something
// external to the system deletes it.
LIVE = 2;
}
// Output only. The resource name of the Artifact.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// User provided display name of the Artifact.
// May be up to 128 Unicode characters.
string display_name = 2;
// The uniform resource identifier of the artifact file.
// May be empty if there is no actual artifact file.
string uri = 6;
// An eTag used to perform consistent read-modify-write updates. If not set, a
// blind "overwrite" update happens.
string etag = 9;
// The labels with user-defined metadata to organize your Artifacts.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Artifact (System
// labels are excluded).
map<string, string> labels = 10;
// Output only. Timestamp when this Artifact was created.
google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Artifact was last updated.
google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// The state of this Artifact. This is a property of the Artifact, and does
// not imply or capture any ongoing process. This property is managed by
// clients (such as AI Platform Pipelines), and the system does not prescribe
// or check the validity of state transitions.
State state = 13;
// The title of the schema describing the metadata.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_title = 14;
// The version of the schema in schema_name to use.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_version = 15;
// Properties of the Artifact.
google.protobuf.Struct metadata = 16;
// Description of the Artifact
string description = 17;
}

@ -25,6 +25,7 @@ import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/cloud/aiplatform/v1beta1/manual_batch_tuning_parameters.proto";
import "google/cloud/aiplatform/v1beta1/model_monitoring.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
@ -97,8 +98,8 @@ message BatchPredictionJob {
// containing only `code` and `message` fields.
GcsDestination gcs_destination = 2;
// The BigQuery project location where the output is to be written to.
// In the given project a new dataset is created with name
// The BigQuery project or dataset location where the output is to be
// written to. If project is provided, a new dataset is created with name
// `prediction_<model-display-name>_<job-create-time>`
// where <model-display-name> is made
// BigQuery-dataset-name compatible (for example, most special characters

@ -0,0 +1,92 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/value.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ContextProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Instance of a general context.
message Context {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Context"
pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/contexts/{context}"
};
// Output only. The resource name of the Context.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// User provided display name of the Context.
// May be up to 128 Unicode characters.
string display_name = 2;
// An eTag used to perform consistent read-modify-write updates. If not set, a
// blind "overwrite" update happens.
string etag = 8;
// The labels with user-defined metadata to organize your Contexts.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Context (System
// labels are excluded).
map<string, string> labels = 9;
// Output only. Timestamp when this Context was created.
google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Context was last updated.
google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A list of resource names of Contexts that are parents of this Context.
// A Context may have at most 10 parent_contexts.
repeated string parent_contexts = 12 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
// The title of the schema describing the metadata.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_title = 13;
// The version of the schema in schema_name to use.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_version = 14;
// Properties of the Context.
google.protobuf.Struct metadata = 15;
// Description of the Context
string description = 16;
}

@ -116,7 +116,9 @@ message CustomJobSpec {
//
// Private services access must already be configured for the network. If left
// unspecified, the job is not peered with any network.
string network = 5;
string network = 5 [(google.api.resource_reference) = {
type: "compute.googleapis.com/Network"
}];
// The Cloud Storage location to store the output of this CustomJob or
// HyperparameterTuningJob. For HyperparameterTuningJob,
@ -140,6 +142,17 @@ message CustomJobSpec {
// * AIP_CHECKPOINT_DIR = `<base_output_directory>/<trial_id>/checkpoints/`
// * AIP_TENSORBOARD_LOG_DIR = `<base_output_directory>/<trial_id>/logs/`
GcsDestination base_output_directory = 6;
// Optional. The name of an AI Platform [Tensorboard][google.cloud.aiplatform.v1beta1.Tensorboard] resource to which this CustomJob
// will upload Tensorboard logs.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
string tensorboard = 7 [
(google.api.field_behavior) = OPTIONAL,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Tensorboard"
}
];
}
// Represents the spec of a worker pool in a job.

@ -0,0 +1,40 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "DeployedIndexRefProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Points to a DeployedIndex.
message DeployedIndexRef {
// Immutable. A resource name of the IndexEndpoint.
string index_endpoint = 1 [
(google.api.field_behavior) = IMMUTABLE,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
}
];
// Immutable. The ID of the DeployedIndex in the above IndexEndpoint.
string deployed_index_id = 2 [(google.api.field_behavior) = IMMUTABLE];
}

@ -21,6 +21,7 @@ import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/explanation.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";

@ -0,0 +1,84 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/feature.proto";
import "google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "EntityTypeProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// An entity type is a type of object in a system that needs to be modeled and
// have stored information about. For example, driver is an entity type, and
// driver0 is an instance of an entity type driver.
message EntityType {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/EntityType"
pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}"
};
// Immutable. Name of the EntityType.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}`
//
// The last part entity_type is assigned by the client. The entity_type can be
// up to 64 characters long and can consist only of ASCII Latin letters A-Z
// and a-z and underscore(_), and ASCII digits 0-9 starting with a letter. The
// value will be unique given a featurestore.
string name = 1 [(google.api.field_behavior) = IMMUTABLE];
// Optional. Description of the EntityType.
string description = 2 [(google.api.field_behavior) = OPTIONAL];
// Output only. Timestamp when this EntityType was created.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this EntityType was most recently updated.
google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The labels with user-defined metadata to organize your EntityTypes.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information on and examples of labels.
// No more than 64 user labels can be associated with one EntityType (System
// labels are excluded)."
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// and are immutable.
map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
// Optional. Used to perform a consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. The default monitoring configuration for all Features 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];
}

@ -0,0 +1,78 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "EventProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// An edge describing the relationship between an Artifact and an Execution in
// a lineage graph.
message Event {
// Describes whether an Event's Artifact is the Execution's input or output.
enum Type {
// Unspecified whether input or output of the Execution.
TYPE_UNSPECIFIED = 0;
// An input of the Execution.
INPUT = 1;
// An output of the Execution.
OUTPUT = 2;
}
// Required. The relative resource name of the Artifact in the Event.
string artifact = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Artifact"
}
];
// Output only. The relative resource name of the Execution in the Event.
string execution = 2 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}
];
// Output only. Time the Event occurred.
google.protobuf.Timestamp event_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The type of the Event.
Type type = 4 [(google.api.field_behavior) = REQUIRED];
// The labels with user-defined metadata to annotate Events.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Event (System
// labels are excluded).
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// and are immutable.
map<string, string> labels = 5;
}

@ -0,0 +1,107 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/value.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ExecutionProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Instance of a general execution.
message Execution {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Execution"
pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/executions/{execution}"
};
// Describes the state of the Execution.
enum State {
// Unspecified Execution state
STATE_UNSPECIFIED = 0;
// The Execution is new
NEW = 1;
// The Execution is running
RUNNING = 2;
// The Execution has finished running
COMPLETE = 3;
// The Execution has failed
FAILED = 4;
}
// Output only. The resource name of the Execution.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// User provided display name of the Execution.
// May be up to 128 Unicode characters.
string display_name = 2;
// The state of this Execution. This is a property of the Execution, and does
// not imply or capture any ongoing process. This property is managed by
// clients (such as AI Platform Pipelines) and the system does not prescribe
// or check the validity of state transitions.
State state = 6;
// An eTag used to perform consistent read-modify-write updates. If not set, a
// blind "overwrite" update happens.
string etag = 9;
// The labels with user-defined metadata to organize your Executions.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Execution (System
// labels are excluded).
map<string, string> labels = 10;
// Output only. Timestamp when this Execution was created.
google.protobuf.Timestamp create_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Execution was last updated.
google.protobuf.Timestamp update_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// The title of the schema describing the metadata.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_title = 13;
// The version of the schema in schema_name to use.
//
// Schema title and version is expected to be registered in earlier Create
// Schema calls. And both are used together as unique identifiers to identify
// schemas within the local metadata store.
string schema_version = 14;
// Properties of the Execution.
google.protobuf.Struct metadata = 15;
// Description of the Execution
string description = 16;
}

@ -170,7 +170,7 @@ message ExplanationMetadata {
float clip_percent_upperbound = 4;
// Excludes attributions below the specified percentile, from the
// highlighted areas. Defaults to 35.
// highlighted areas. Defaults to 62.
float clip_percent_lowerbound = 5;
// How the original image is displayed in the visualization.

@ -0,0 +1,131 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto";
import "google/cloud/aiplatform/v1beta1/featurestore_monitoring.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeatureProto";
option java_package = "com.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.
message Feature {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Feature"
pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}"
};
// An enum representing the value type of a feature.
enum ValueType {
// The value type is unspecified.
VALUE_TYPE_UNSPECIFIED = 0;
// Used for Feature that is a boolean.
BOOL = 1;
// Used for Feature that is a list of boolean.
BOOL_ARRAY = 2;
// Used for Feature that is double.
DOUBLE = 3;
// Used for Feature that is a list of double.
DOUBLE_ARRAY = 4;
// Used for Feature that is INT64.
INT64 = 9;
// Used for Feature that is a list of INT64.
INT64_ARRAY = 10;
// Used for Feature that is string.
STRING = 11;
// Used for Feature that is a list of String.
STRING_ARRAY = 12;
// Used for Feature that is bytes.
BYTES = 13;
}
// Immutable. Name of the Feature.
// Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/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,
// underscore(_), and ASCII digits 0-9 starting with a letter. The value will
// be unique given an entity type.
string name = 1 [(google.api.field_behavior) = IMMUTABLE];
// Description of the Feature.
string description = 2;
// Required. Immutable. Type of Feature value.
ValueType value_type = 3 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// Output only. 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.
google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The labels with user-defined metadata to organize your Features.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information on and examples of labels.
// No more than 64 user labels can be associated with one Feature (System
// labels are excluded)."
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// and are immutable.
map<string, string> labels = 6 [(google.api.field_behavior) = OPTIONAL];
// Used to perform a consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 7;
// Optional. The custom monitoring configuration for this Feature, if not set, use the
// monitoring_config defined for the EntityType this Feature belongs to.
//
// If this is populated with
// [FeaturestoreMonitoringConfig.disabled][] = true, snapshot analysis
// monitoring is disabled; if
// [FeaturestoreMonitoringConfig.monitoring_interval][] specified, snapshot
// analysis monitoring is enabled. Otherwise, snapshot analysis monitoring
// config is same as the EntityType's this Feature belongs to.
FeaturestoreMonitoringConfig monitoring_config = 9 [(google.api.field_behavior) = OPTIONAL];
// Output only. A list of historical [Snapshot
// Analysis][google.cloud.aiplatform.master.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];
}

@ -0,0 +1,84 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeatureMonitoringStatsProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Stats and Anomaly generated at specific timestamp for specific Feature.
// The start_time and end_time are used to define the time range of the dataset
// that current stats belongs to, e.g. prediction traffic is bucketed into
// prediction datasets by time window. If the Dataset is not defined by time
// window, start_time = end_time. Timestamp of the stats and anomalies always
// refers to end_time. Raw stats and anomalies are stored in stats_uri or
// anomaly_uri in the tensorflow defined protos. Field data_stats contains
// almost identical information with the raw stats in AI Platform
// defined proto, for UI to display.
message FeatureStatsAnomaly {
// Feature importance score, only populated when cross-feature monitoring is
// enabled. For now only used to represent feature attribution score within
// range [0, 1] for
// [ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_SKEW] and
// [ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringObjectiveType.FEATURE_ATTRIBUTION_DRIFT].
double score = 1;
// Path of the stats file for current feature values in Cloud Storage bucket.
// Format: gs://<bucket_name>/<object_name>/stats.
// Example: gs://monitoring_bucket/feature_name/stats.
// Stats are stored as binary format with Protobuf message
// [tensorflow.metadata.v0.FeatureNameStatistics](https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/statistics.proto).
string stats_uri = 3;
// Path of the anomaly file for current feature values in Cloud Storage
// bucket.
// Format: gs://<bucket_name>/<object_name>/anomalies.
// Example: gs://monitoring_bucket/feature_name/anomalies.
// Stats are stored as binary format with Protobuf message
// Anoamlies are stored as binary format with Protobuf message
// [tensorflow.metadata.v0.AnomalyInfo]
// (https://github.com/tensorflow/metadata/blob/master/tensorflow_metadata/proto/v0/anomalies.proto).
string anomaly_uri = 4;
// Deviation from the current stats to baseline stats.
// 1. For categorical feature, the distribution distance is calculated by
// L-inifinity norm.
// 2. For numerical feature, the distribution distance is calculated by
// JensenShannon divergence.
double distribution_deviation = 5;
// This is the threshold used when detecting anomalies.
// The threshold can be changed by user, so this one might be different from
// [ThresholdConfig.value][google.cloud.aiplatform.v1beta1.ThresholdConfig.value].
double anomaly_detection_threshold = 9;
// The start timestamp of window where stats were generated.
// For objectives where time window doesn't make sense (e.g. Featurestore
// Snapshot Monitoring), start_time is only used to indicate the monitoring
// intervals, so it always equals to (end_time - monitoring_interval).
google.protobuf.Timestamp start_time = 7;
// The end timestamp of window where stats were generated.
// For objectives where time window doesn't make sense (e.g. Featurestore
// Snapshot Monitoring), end_time indicates the timestamp of the data used to
// generate stats (e.g. timestamp we take snapshots for feature values).
google.protobuf.Timestamp end_time = 8;
}

@ -0,0 +1,42 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeatureSelectorProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Matcher for Features of an EntityType by Feature ID.
message IdMatcher {
// Required. The following are accepted as `ids`:
//
// * A single-element list containing only `*`, which selects all Features
// in the target EntityType, or
// * A list containing only Feature IDs, which selects only Features with
// those IDs in the target EntityType.
repeated string ids = 1 [(google.api.field_behavior) = REQUIRED];
}
// Selector for Features of an EntityType.
message FeatureSelector {
// Required. Matches Features based on ID.
IdMatcher id_matcher = 1 [(google.api.field_behavior) = REQUIRED];
}

@ -0,0 +1,105 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeaturestoreProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Featurestore configuration information on how the Featurestore is configured.
message Featurestore {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Featurestore"
pattern: "projects/{project}/locations/{location}/featurestores/{featurestore}"
};
// OnlineServingConfig specifies the details for provisioning online serving
// resources.
message OnlineServingConfig {
// Required. 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.
int32 fixed_node_count = 2 [(google.api.field_behavior) = REQUIRED];
}
// 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.
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.
UPDATING = 2;
}
// Output only. Name of the Featurestore. Format:
// `projects/{project}/locations/{location}/featurestores/{featurestore}`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The user-defined name of the Featurestore.
// The name can be up to 128 characters long and can consist of any UTF-8
// characters.
// Display name of a Featurestore must be unique within a single Project and
// Location Pair.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Output only. Timestamp when this Featurestore was created.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Featurestore was last updated.
google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 5 [(google.api.field_behavior) = OPTIONAL];
// Optional. The labels with user-defined metadata to organize your Featurestore.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information on and examples of labels.
// No more than 64 user labels can be associated with one Featurestore(System
// labels are excluded)."
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// 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];
// Output only. State of the featurestore.
State state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
}

@ -0,0 +1,54 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/protobuf/duration.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeaturestoreMonitoringProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Configuration of how features in Featurestore are monitored.
message FeaturestoreMonitoringConfig {
// Configuration of the Featurestore's Snapshot Analysis Based Monitoring.
// This type of analysis generates statistics for each Feature based on a
// snapshot of the latest feature value of each entities every
// monitoring_interval.
message SnapshotAnalysis {
// The monitoring schedule for snapshot analysis.
// For EntityType-level config:
// unset / disabled = true indicates disabled by
// default for Features under it; otherwise by default enable snapshot
// analysis monitoring with monitoring_interval for Features under it.
// Feature-level config:
// disabled = true indicates disabled regardless of the EntityType-level
// config; unset monitoring_interval indicates going with EntityType-level
// config; otherwise run snapshot analysis monitoring with
// monitoring_interval regardless of the EntityType-level config.
// Explicitly Disable the snapshot analysis based monitoring.
bool disabled = 1;
// Configuration of the snapshot analysis based monitoring pipeline
// running interval. The value is rolled up to full day.
google.protobuf.Duration monitoring_interval = 2;
}
// The config for Snapshot Analysis Based Feature Monitoring.
SnapshotAnalysis snapshot_analysis = 1;
}

@ -0,0 +1,219 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/feature_selector.proto";
import "google/cloud/aiplatform/v1beta1/types.proto";
import "google/protobuf/timestamp.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "FeaturestoreOnlineServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A service for serving online feature values.
service FeaturestoreOnlineServingService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Reads Feature values of a specific entity of an EntityType. For reading
// feature values of multiple entities of an EntityType, please use
// StreamingReadFeatureValues.
rpc ReadFeatureValues(ReadFeatureValuesRequest) returns (ReadFeatureValuesResponse) {
option (google.api.http) = {
post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:readFeatureValues"
body: "*"
};
option (google.api.method_signature) = "entity_type";
}
// Reads Feature values for multiple entities. Depending on their size, data
// for different entities may be broken
// up across multiple responses.
rpc StreamingReadFeatureValues(StreamingReadFeatureValuesRequest) returns (stream ReadFeatureValuesResponse) {
option (google.api.http) = {
post: "/v1beta1/{entity_type=projects/*/locations/*/featurestores/*/entityTypes/*}:streamingReadFeatureValues"
body: "*"
};
option (google.api.method_signature) = "entity_type";
}
}
// Request message for [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues].
message ReadFeatureValuesRequest {
// Required. The resource name of the EntityType for the entity being read.
// Value format: `projects/{project}/locations/{location}/featurestores/
// {featurestore}/entityTypes/{entityType}`. For example,
// for a machine learning model predicting user clicks on a website, an
// EntityType ID could be "user".
string entity_type = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Required. ID for a specific entity. For example,
// for a machine learning model predicting user clicks on a website, an entity
// ID could be "user_123".
string entity_id = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Selector choosing Features of the target EntityType.
FeatureSelector feature_selector = 3 [(google.api.field_behavior) = REQUIRED];
}
// Response message for [FeaturestoreOnlineServingService.ReadFeatureValues][google.cloud.aiplatform.v1beta1.FeaturestoreOnlineServingService.ReadFeatureValues].
message ReadFeatureValuesResponse {
// Metadata for requested Features.
message FeatureDescriptor {
// Feature ID.
string id = 1;
}
// Response header with metadata for the requested
// [ReadFeatureValuesRequest.entity_type][google.cloud.aiplatform.v1beta1.ReadFeatureValuesRequest.entity_type] and Features.
message Header {
// The resource name of the EntityType from the
// [ReadFeatureValuesRequest][google.cloud.aiplatform.v1beta1.ReadFeatureValuesRequest]. Value format:
// `projects/{project}/locations/{location}/featurestores/
// {featurestore}/entityTypes/{entityType}`.
string entity_type = 1 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}];
// List of Feature metadata corresponding to each piece of
// [ReadFeatureValuesResponse.data][].
repeated FeatureDescriptor feature_descriptors = 2;
}
// Entity view with Feature values.
message EntityView {
// Container to hold value(s), successive in time, for one Feature from the
// request.
message Data {
oneof data {
// Feature value if a single value is requested.
FeatureValue value = 1;
// Feature values list if values, successive in time, are requested.
// If the requested number of values is greater than the number of
// existing Feature values, nonexistent values are omitted instead of
// being returned as empty.
FeatureValueList values = 2;
}
}
// ID of the requested entity.
string entity_id = 1;
// Each piece of data holds the k
// requested values for one requested Feature. If no values
// for the requested Feature exist, the corresponding cell will be empty.
// This has the same size and is in the same order as the features from the
// header [ReadFeatureValuesResponse.header][google.cloud.aiplatform.v1beta1.ReadFeatureValuesResponse.header].
repeated Data data = 2;
}
// Response header.
Header header = 1;
// Entity view with Feature values. This may be the entity in the
// Featurestore if values for all Features were requested, or a projection
// of the entity in the Featurestore if values for only some Features were
// requested.
EntityView entity_view = 2;
}
// Request message for
// [FeaturestoreOnlineServingService.StreamingFeatureValuesRead][].
message StreamingReadFeatureValuesRequest {
// Required. The resource name of the entities' type.
// Value format: `projects/{project}/locations/{location}/featurestores/
// {featurestore}/entityTypes/{entityType}`. For example,
// for a machine learning model predicting user clicks on a website, an
// EntityType ID could be "user".
string entity_type = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/EntityType"
}
];
// Required. IDs of entities to read Feature values of. For example,
// for a machine learning model predicting user clicks on a website, an
// entity ID could be "user_123".
repeated string entity_ids = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Selector choosing Features of the target EntityType.
FeatureSelector feature_selector = 3 [(google.api.field_behavior) = REQUIRED];
}
// Value for a feature.
// NEXT ID: 15
message FeatureValue {
// Metadata of feature value.
message Metadata {
// Feature generation timestamp. Typically, it is provided by user at
// feature ingestion time. If not, feature store
// will use the system timestamp when the data is ingested into feature
// store.
google.protobuf.Timestamp generate_time = 1;
}
// Value for the feature.
oneof value {
// Bool type feature value.
bool bool_value = 1;
// Double type feature value.
double double_value = 2;
// Int64 feature value.
int64 int64_value = 5;
// String feature value.
string string_value = 6;
// A list of bool type feature value.
BoolArray bool_array_value = 7;
// A list of double type feature value.
DoubleArray double_array_value = 8;
// A list of int64 type feature value.
Int64Array int64_array_value = 11;
// A list of string type feature value.
StringArray string_array_value = 12;
// Bytes feature value.
bytes bytes_value = 13;
}
// Output only. Metadata of feature value.
Metadata metadata = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Container for list of values.
message FeatureValueList {
// A list of feature values. All of them should be the same data type.
repeated FeatureValue values = 1;
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,94 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/deployed_index_ref.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "IndexProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A representation of a collection of database items organized in a way that
// allows for approximate nearest neighbor (a.k.a ANN) algorithms search.
message Index {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Index"
pattern: "projects/{project}/locations/{location}/indexes/{index}"
};
// Output only. The resource name of the Index.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The display name of the Index.
// The name can be up to 128 characters long and can be consist of any UTF-8
// characters.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// The description of the Index.
string description = 3;
// Immutable. Points to a YAML file stored on Google Cloud Storage describing additional
// information about the Index, that is specific to it. Unset if the Index
// does not have any additional information.
// The schema is defined as an OpenAPI 3.0.2
// [Schema Object](https://tinyurl.com/y538mdwt#schema-object).
// Note: The URI given on output will be immutable and probably different,
// including the URI scheme, than the one given on input. The output URI will
// point to a location where the user only has a read access.
string metadata_schema_uri = 4 [(google.api.field_behavior) = IMMUTABLE];
// An additional information about the Index; the schema of the metadata can
// be found in [metadata_schema][google.cloud.aiplatform.v1beta1.Index.metadata_schema_uri].
google.protobuf.Value metadata = 6;
// Output only. The pointers to DeployedIndexes created from this Index.
// An Index can be only deleted if all its DeployedIndexes had been undeployed
// first.
repeated DeployedIndexRef deployed_indexes = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 8;
// The labels with user-defined metadata to organize your Indexes.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 9;
// Output only. Timestamp when this Index was created.
google.protobuf.Timestamp create_time = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Index was most recently updated.
// This also includes any update to the contents of the Index.
// Note that Operations working on this Index may have their
// [Operations.metadata.generic_metadata.update_time]
// [google.cloud.aiplatform.v1beta1.GenericOperationMetadata.update_time] a little after the value of this
// timestamp, yet that does not mean their results are not already reflected
// in the Index. Result of any successfully completed Operation on the Index
// is reflected in it.
google.protobuf.Timestamp update_time = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
}

@ -0,0 +1,190 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/cloud/aiplatform/v1beta1/index.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/machine_resources.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "IndexEndpointProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Indexes are deployed into it. An IndexEndpoint can have multiple
// DeployedIndexes.
message IndexEndpoint {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
pattern: "projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}"
};
// Output only. The resource name of the IndexEndpoint.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The display name of the IndexEndpoint.
// The name can be up to 128 characters long and can consist of any UTF-8
// characters.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// The description of the IndexEndpoint.
string description = 3;
// Output only. The indexes deployed in this endpoint.
repeated DeployedIndex deployed_indexes = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 5;
// The labels with user-defined metadata to organize your IndexEndpoints.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 6;
// Output only. Timestamp when this IndexEndpoint was created.
google.protobuf.Timestamp create_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this IndexEndpoint was last updated.
// This timestamp is not updated when the endpoint's DeployedIndexes are
// updated, e.g. due to updates of the original Indexes they are the
// deployments of.
google.protobuf.Timestamp update_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. Immutable. The full name of the Google Compute Engine
// [network](https://cloud.google.com/compute/docs/networks-and-firewalls#networks)
// to which the IndexEndpoint should be peered.
//
// Private services access must already be configured for the network. If left
// unspecified, the Endpoint is not peered with any network.
//
// [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) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
}
// A deployment of an Index. IndexEndpoints contain one or more DeployedIndexes.
message DeployedIndex {
// Required. The user specified ID of the DeployedIndex.
// The ID can be up to 128 characters long and must start with a letter and
// only contain letters, numbers, and underscores.
// The ID must be unique within the project it is created in.
string id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The name of the Index this is the deployment of.
// We may refer to this Index as the DeployedIndex's "original" Index.
string index = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Index"
}
];
// The display name of the DeployedIndex. If not provided upon creation,
// the Index's display_name is used.
string display_name = 3;
// Output only. Timestamp when the DeployedIndex was created.
google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Provides paths for users to send requests directly to the deployed index
// services running on Cloud via private services access. This field is
// populated if [network][google.cloud.aiplatform.v1beta1.IndexEndpoint.network] is configured.
IndexPrivateEndpoints private_endpoints = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The DeployedIndex may depend on various data on its original Index.
// Additionally when certain changes to the original Index are being done
// (e.g. when what the Index contains is being changed) the DeployedIndex may
// be asynchronously updated in the background to reflect this changes.
// If this timestamp's value is at least the [Index.update_time][google.cloud.aiplatform.v1beta1.Index.update_time] of the
// original Index, it means that this DeployedIndex and the original Index are
// in sync. If this timestamp is older, then to see which updates this
// DeployedIndex already contains (and which not), one must
// [list][Operations.ListOperations] [Operations][Operation]
// [working][Operation.name] on the original Index. Only
// the successfully completed Operations with
// [Operations.metadata.generic_metadata.update_time]
// [google.cloud.aiplatform.v1beta1.GenericOperationMetadata.update_time]
// equal or before this sync time are contained in this DeployedIndex.
google.protobuf.Timestamp index_sync_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. A description of resources that the DeployedIndex uses, which to large
// degree are decided by AI Platform, and optionally allows only a modest
// additional configuration.
// If min_replica_count is not set, the default value is 1. If
// max_replica_count is not set, the default value is min_replica_count. The
// max allowed replica count is 1000.
//
// The user is billed for the resources (at least their minimal amount) even
// if the DeployedIndex receives no traffic.
AutomaticResources automatic_resources = 7 [(google.api.field_behavior) = OPTIONAL];
// Optional. If true, private endpoint's access logs are sent to StackDriver Logging.
//
// These logs are like standard server access logs, containing
// information like timestamp and latency for each MatchRequest.
//
// Note that Stackdriver logs may incur a cost, especially if the deployed
// index receives a high queries per second rate (QPS).
// Estimate your costs before enabling this option.
bool enable_access_logging = 8 [(google.api.field_behavior) = OPTIONAL];
// Optional. If set, the authentication is enabled for the private endpoint.
DeployedIndexAuthConfig deployed_index_auth_config = 9 [(google.api.field_behavior) = OPTIONAL];
}
// Used to set up the auth on the DeployedIndex's private endpoint.
message DeployedIndexAuthConfig {
// Configuration for an authentication provider, including support for
// [JSON Web Token
// (JWT)](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32).
message AuthProvider {
// The list of JWT
// [audiences](https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.3).
// that are allowed to access. A JWT containing any of these audiences will
// be accepted.
repeated string audiences = 1;
// A list of allowed JWT issuers. Each entry must be a valid Google
// service account, in the following format:
//
// `service-account-name@project-id.iam.gserviceaccount.com`
repeated string allowed_issuers = 2;
}
// Defines the authentication provider that the DeployedIndex uses.
AuthProvider auth_provider = 1;
}
// IndexPrivateEndpoints proto is used to provide paths for users to send
// requests via private services access.
message IndexPrivateEndpoints {
// Output only. The ip address used to send match gRPC requests.
string match_grpc_address = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}

@ -0,0 +1,284 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/index_endpoint.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "IndexEndpointServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A service for managing AI Platform's IndexEndpoints.
service IndexEndpointService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Creates an IndexEndpoint.
rpc CreateIndexEndpoint(CreateIndexEndpointRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints"
body: "index_endpoint"
};
option (google.api.method_signature) = "parent,index_endpoint";
option (google.longrunning.operation_info) = {
response_type: "IndexEndpoint"
metadata_type: "CreateIndexEndpointOperationMetadata"
};
}
// Gets an IndexEndpoint.
rpc GetIndexEndpoint(GetIndexEndpointRequest) returns (IndexEndpoint) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}"
};
option (google.api.method_signature) = "name";
}
// Lists IndexEndpoints in a Location.
rpc ListIndexEndpoints(ListIndexEndpointsRequest) returns (ListIndexEndpointsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/indexEndpoints"
};
option (google.api.method_signature) = "parent";
}
// Updates an IndexEndpoint.
rpc UpdateIndexEndpoint(UpdateIndexEndpointRequest) returns (IndexEndpoint) {
option (google.api.http) = {
patch: "/v1beta1/{index_endpoint.name=projects/*/locations/*/indexEndpoints/*}"
body: "index_endpoint"
};
option (google.api.method_signature) = "index_endpoint,update_mask";
}
// Deletes an IndexEndpoint.
rpc DeleteIndexEndpoint(DeleteIndexEndpointRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/indexEndpoints/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Deploys an Index into this IndexEndpoint, creating a DeployedIndex within
// it.
// Only non-empty Indexes can be deployed.
rpc DeployIndex(DeployIndexRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:deployIndex"
body: "*"
};
option (google.api.method_signature) = "index_endpoint,deployed_index";
option (google.longrunning.operation_info) = {
response_type: "DeployIndexResponse"
metadata_type: "DeployIndexOperationMetadata"
};
}
// Undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it,
// and freeing all resources it's using.
rpc UndeployIndex(UndeployIndexRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{index_endpoint=projects/*/locations/*/indexEndpoints/*}:undeployIndex"
body: "*"
};
option (google.api.method_signature) = "index_endpoint,deployed_index_id";
option (google.longrunning.operation_info) = {
response_type: "UndeployIndexResponse"
metadata_type: "UndeployIndexOperationMetadata"
};
}
}
// Request message for [IndexEndpointService.CreateIndexEndpoint][google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint].
message CreateIndexEndpointRequest {
// Required. The resource name of the Location to create the IndexEndpoint in.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The IndexEndpoint to create.
IndexEndpoint index_endpoint = 2 [(google.api.field_behavior) = REQUIRED];
}
// Runtime operation information for
// [IndexEndpointService.CreateIndexEndpoint][google.cloud.aiplatform.v1beta1.IndexEndpointService.CreateIndexEndpoint].
message CreateIndexEndpointOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}
// Request message for [IndexEndpointService.GetIndexEndpoint][google.cloud.aiplatform.v1beta1.IndexEndpointService.GetIndexEndpoint]
message GetIndexEndpointRequest {
// Required. The name of the IndexEndpoint resource.
// Format:
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
}
];
}
// Request message for [IndexEndpointService.ListIndexEndpoints][google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints].
message ListIndexEndpointsRequest {
// Required. The resource name of the Location from which to list the IndexEndpoints.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Optional. An expression for filtering the results of the request. For field names
// both snake_case and camelCase are supported.
//
// * `index_endpoint` supports = and !=. `index_endpoint` represents the
// IndexEndpoint ID, ie. the last segment of the IndexEndpoint's
// [resourcename][google.cloud.aiplatform.v1beta1.IndexEndpoint.name].
// * `display_name` supports =, != and regex()
// (uses [re2](https://github.com/google/re2/wiki/Syntax) syntax)
// * `labels` supports general map functions that is:
// `labels.key=value` - key:value equality
// `labels.key:* or labels:key - key existence
// A key including a space must be quoted. `labels."a key"`.
//
// Some examples:
// * `index_endpoint="1"`
// * `display_name="myDisplayName"`
// * `regex(display_name, "^A") -> The display name starts with an A.
// * `labels.myKey="myValue"`
string filter = 2 [(google.api.field_behavior) = OPTIONAL];
// Optional. The standard list page size.
int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL];
// Optional. The standard list page token.
// Typically obtained via
// [ListIndexEndpointsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListIndexEndpointsResponse.next_page_token] of the previous
// [IndexEndpointService.ListIndexEndpoints][google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints] call.
string page_token = 4 [(google.api.field_behavior) = OPTIONAL];
// Optional. Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 5 [(google.api.field_behavior) = OPTIONAL];
}
// Response message for [IndexEndpointService.ListIndexEndpoints][google.cloud.aiplatform.v1beta1.IndexEndpointService.ListIndexEndpoints].
message ListIndexEndpointsResponse {
// List of IndexEndpoints in the requested page.
repeated IndexEndpoint index_endpoints = 1;
// A token to retrieve next page of results.
// Pass to [ListIndexEndpointsRequest.page_token][google.cloud.aiplatform.v1beta1.ListIndexEndpointsRequest.page_token] to obtain that page.
string next_page_token = 2;
}
// Request message for [IndexEndpointService.UpdateIndexEndpoint][google.cloud.aiplatform.v1beta1.IndexEndpointService.UpdateIndexEndpoint].
message UpdateIndexEndpointRequest {
// Required. The IndexEndpoint which replaces the resource on the server.
IndexEndpoint index_endpoint = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The update mask applies to the resource.
// See
// [FieldMask](https://tinyurl.com/protobufs/google.protobuf#fieldmask).
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [IndexEndpointService.DeleteIndexEndpoint][google.cloud.aiplatform.v1beta1.IndexEndpointService.DeleteIndexEndpoint].
message DeleteIndexEndpointRequest {
// Required. The name of the IndexEndpoint resource to be deleted.
// Format:
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
}
];
}
// Request message for [IndexEndpointService.DeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex].
message DeployIndexRequest {
// Required. The name of the IndexEndpoint resource into which to deploy an Index.
// Format:
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
string index_endpoint = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
}
];
// Required. The DeployedIndex to be created within the IndexEndpoint.
DeployedIndex deployed_index = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for [IndexEndpointService.DeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex].
message DeployIndexResponse {
// The DeployedIndex that had been deployed in the IndexEndpoint.
DeployedIndex deployed_index = 1;
}
// Runtime operation information for [IndexEndpointService.DeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.DeployIndex].
message DeployIndexOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}
// Request message for [IndexEndpointService.UndeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex].
message UndeployIndexRequest {
// Required. The name of the IndexEndpoint resource from which to undeploy an Index.
// Format:
// `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}`
string index_endpoint = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/IndexEndpoint"
}
];
// Required. The ID of the DeployedIndex to be undeployed from the IndexEndpoint.
string deployed_index_id = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for [IndexEndpointService.UndeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex].
message UndeployIndexResponse {
}
// Runtime operation information for [IndexEndpointService.UndeployIndex][google.cloud.aiplatform.v1beta1.IndexEndpointService.UndeployIndex].
message UndeployIndexOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}

@ -0,0 +1,272 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/index.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "IndexServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A service for creating and managing AI Platform's Index resources.
service IndexService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Creates an Index.
rpc CreateIndex(CreateIndexRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/indexes"
body: "index"
};
option (google.api.method_signature) = "parent,index";
option (google.longrunning.operation_info) = {
response_type: "Index"
metadata_type: "CreateIndexOperationMetadata"
};
}
// Gets an Index.
rpc GetIndex(GetIndexRequest) returns (Index) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/indexes/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Indexes in a Location.
rpc ListIndexes(ListIndexesRequest) returns (ListIndexesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/indexes"
};
option (google.api.method_signature) = "parent";
}
// Updates an Index.
rpc UpdateIndex(UpdateIndexRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{index.name=projects/*/locations/*/indexes/*}"
body: "index"
};
option (google.api.method_signature) = "index,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Index"
metadata_type: "UpdateIndexOperationMetadata"
};
}
// Deletes an Index.
// An Index can only be deleted when all its
// [DeployedIndexes][google.cloud.aiplatform.v1beta1.Index.deployed_indexes] had been undeployed.
rpc DeleteIndex(DeleteIndexRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/indexes/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
}
// Request message for [IndexService.CreateIndex][google.cloud.aiplatform.v1beta1.IndexService.CreateIndex].
message CreateIndexRequest {
// Required. The resource name of the Location to create the Index in.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The Index to create.
Index index = 2 [(google.api.field_behavior) = REQUIRED];
}
// Runtime operation information for [IndexService.CreateIndex][google.cloud.aiplatform.v1beta1.IndexService.CreateIndex].
message CreateIndexOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
// The operation metadata with regard to Matching Engine Index operation.
NearestNeighborSearchOperationMetadata nearest_neighbor_search_operation_metadata = 2;
}
// Request message for [IndexService.GetIndex][google.cloud.aiplatform.v1beta1.IndexService.GetIndex]
message GetIndexRequest {
// Required. The name of the Index resource.
// Format:
// `projects/{project}/locations/{location}/indexes/{index}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Index"
}
];
}
// Request message for [IndexService.ListIndexes][google.cloud.aiplatform.v1beta1.IndexService.ListIndexes].
message ListIndexesRequest {
// Required. The resource name of the Location from which to list the Indexes.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The standard list filter.
string filter = 2;
// The standard list page size.
int32 page_size = 3;
// The standard list page token.
// Typically obtained via
// [ListIndexesResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListIndexesResponse.next_page_token] of the previous
// [IndexService.ListIndexes][google.cloud.aiplatform.v1beta1.IndexService.ListIndexes] call.
string page_token = 4;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 5;
}
// Response message for [IndexService.ListIndexes][google.cloud.aiplatform.v1beta1.IndexService.ListIndexes].
message ListIndexesResponse {
// List of indexes in the requested page.
repeated Index indexes = 1;
// A token to retrieve next page of results.
// Pass to [ListIndexesRequest.page_token][google.cloud.aiplatform.v1beta1.ListIndexesRequest.page_token] to obtain that page.
string next_page_token = 2;
}
// Request message for [IndexService.UpdateIndex][google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex].
message UpdateIndexRequest {
// Required. The Index which updates the resource on the server.
Index index = 1 [(google.api.field_behavior) = REQUIRED];
// The update mask applies to the resource.
// For the `FieldMask` definition, see
// [FieldMask](https://tinyurl.com/protobufs#google.protobuf.FieldMask).
google.protobuf.FieldMask update_mask = 2;
}
// Runtime operation information for [IndexService.UpdateIndex][google.cloud.aiplatform.v1beta1.IndexService.UpdateIndex].
message UpdateIndexOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
// The operation metadata with regard to Matching Engine Index operation.
NearestNeighborSearchOperationMetadata nearest_neighbor_search_operation_metadata = 2;
}
// Request message for [IndexService.DeleteIndex][google.cloud.aiplatform.v1beta1.IndexService.DeleteIndex].
message DeleteIndexRequest {
// Required. The name of the Index resource to be deleted.
// Format:
// `projects/{project}/locations/{location}/indexes/{index}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Index"
}
];
}
// Runtime operation metadata with regard to Matching Engine Index.
message NearestNeighborSearchOperationMetadata {
message RecordError {
enum RecordErrorType {
// Default, shall not be used.
ERROR_TYPE_UNSPECIFIED = 0;
// The record is empty.
EMPTY_LINE = 1;
// Invalid json format.
INVALID_JSON_SYNTAX = 2;
// Invalid csv format.
INVALID_CSV_SYNTAX = 3;
// Invalid avro format.
INVALID_AVRO_SYNTAX = 4;
// The embedding id is not valid.
INVALID_EMBEDDING_ID = 5;
// The size of the embedding vectors does not match with the specified
// dimension.
EMBEDDING_SIZE_MISMATCH = 6;
// The `namespace` field is missing.
NAMESPACE_MISSING = 7;
}
// The error type of this record.
RecordErrorType error_type = 1;
// A human-readable message that is shown to the user to help them fix the
// error. Note that this message may change from time to time, your code
// should check against error_type as the source of truth.
string error_message = 2;
// GCS uri pointing to the original file in user's bucket.
string source_gcs_uri = 3;
// Empty if the embedding id is failed to parse.
string embedding_id = 4;
// The original content of this record.
string raw_record = 5;
}
message ContentValidationStats {
// GCS uri pointing to the original file in user's bucket.
string source_gcs_uri = 1;
// Number of records in this file that were successfully processed.
int64 valid_record_count = 2;
// Number of records in this file we skipped due to validate errors.
int64 invalid_record_count = 3;
// The detail information of the partial failures encountered for those
// invalid records that couldn't be parsed.
// Up to 50 partial errors will be reported.
repeated RecordError partial_errors = 4;
}
// The validation stats of the content (per file) to be inserted or
// updated on the Matching Engine Index resource. Populated if
// contentsDeltaUri is provided as part of [Index.metadata][google.cloud.aiplatform.v1beta1.Index.metadata]. Please note
// that, currently for those files that are broken or has unsupported file
// format, we will not have the stats for those files.
repeated ContentValidationStats content_validation_stats = 1;
}

@ -24,6 +24,18 @@ option java_multiple_files = true;
option java_outer_classname = "IoProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// The storage details for Avro input content.
message AvroSource {
// Required. Google Cloud Storage location.
GcsSource gcs_source = 1 [(google.api.field_behavior) = REQUIRED];
}
// The storage details for CSV input content.
message CsvSource {
// Required. Google Cloud Storage location.
GcsSource gcs_source = 1 [(google.api.field_behavior) = REQUIRED];
}
// The Google Cloud Storage location for the input content.
message GcsSource {
// Required. Google Cloud Storage URI(-s) to the input file(s). May contain
@ -64,6 +76,18 @@ message BigQueryDestination {
string output_uri = 1 [(google.api.field_behavior) = REQUIRED];
}
// The storage details for CSV output content.
message CsvDestination {
// Required. Google Cloud Storage location.
GcsDestination gcs_destination = 1 [(google.api.field_behavior) = REQUIRED];
}
// The storage details for TFRecord output content.
message TFRecordDestination {
// Required. Google Cloud Storage location.
GcsDestination gcs_destination = 1 [(google.api.field_behavior) = REQUIRED];
}
// The Container Registry location for the container image.
message ContainerRegistryDestination {
// Required. Container Registry URI of a container image.

@ -24,6 +24,7 @@ import "google/cloud/aiplatform/v1beta1/batch_prediction_job.proto";
import "google/cloud/aiplatform/v1beta1/custom_job.proto";
import "google/cloud/aiplatform/v1beta1/data_labeling_job.proto";
import "google/cloud/aiplatform/v1beta1/hyperparameter_tuning_job.proto";
import "google/cloud/aiplatform/v1beta1/model_deployment_monitoring_job.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
@ -253,6 +254,88 @@ service JobService {
};
option (google.api.method_signature) = "name";
}
// Creates a ModelDeploymentMonitoringJob. It will run periodically on a
// configured interval.
rpc CreateModelDeploymentMonitoringJob(CreateModelDeploymentMonitoringJobRequest) returns (ModelDeploymentMonitoringJob) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs"
body: "model_deployment_monitoring_job"
};
option (google.api.method_signature) = "parent,model_deployment_monitoring_job";
}
// Searches Model Monitoring Statistics generated within a given time window.
rpc SearchModelDeploymentMonitoringStatsAnomalies(SearchModelDeploymentMonitoringStatsAnomaliesRequest) returns (SearchModelDeploymentMonitoringStatsAnomaliesResponse) {
option (google.api.http) = {
post: "/v1beta1/{model_deployment_monitoring_job=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:searchModelDeploymentMonitoringStatsAnomalies"
body: "*"
};
option (google.api.method_signature) = "model_deployment_monitoring_job,deployed_model_id";
}
// Gets a ModelDeploymentMonitoringJob.
rpc GetModelDeploymentMonitoringJob(GetModelDeploymentMonitoringJobRequest) returns (ModelDeploymentMonitoringJob) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
};
option (google.api.method_signature) = "name";
}
// Lists ModelDeploymentMonitoringJobs in a Location.
rpc ListModelDeploymentMonitoringJobs(ListModelDeploymentMonitoringJobsRequest) returns (ListModelDeploymentMonitoringJobsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/modelDeploymentMonitoringJobs"
};
option (google.api.method_signature) = "parent";
}
// Updates a ModelDeploymentMonitoringJob.
rpc UpdateModelDeploymentMonitoringJob(UpdateModelDeploymentMonitoringJobRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{model_deployment_monitoring_job.name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
body: "model_deployment_monitoring_job"
};
option (google.api.method_signature) = "model_deployment_monitoring_job,update_mask";
option (google.longrunning.operation_info) = {
response_type: "ModelDeploymentMonitoringJob"
metadata_type: "UpdateModelDeploymentMonitoringJobOperationMetadata"
};
}
// Deletes a ModelDeploymentMonitoringJob.
rpc DeleteModelDeploymentMonitoringJob(DeleteModelDeploymentMonitoringJobRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Pauses a ModelDeploymentMonitoringJob. If the job is running, the server
// makes a best effort to cancel the job. Will mark
// [ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob.state] to 'PAUSED'.
rpc PauseModelDeploymentMonitoringJob(PauseModelDeploymentMonitoringJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:pause"
body: "*"
};
option (google.api.method_signature) = "name";
}
// Resumes a paused ModelDeploymentMonitoringJob. It will start to run from
// next scheduled time. A deleted ModelDeploymentMonitoringJob can't be
// resumed.
rpc ResumeModelDeploymentMonitoringJob(ResumeModelDeploymentMonitoringJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/modelDeploymentMonitoringJobs/*}:resume"
body: "*"
};
option (google.api.method_signature) = "name";
}
}
// Request message for [JobService.CreateCustomJob][google.cloud.aiplatform.v1beta1.JobService.CreateCustomJob].
@ -362,7 +445,7 @@ message CancelCustomJobRequest {
];
}
// Request message for [DataLabelingJobService.CreateDataLabelingJob][].
// Request message for [JobService.CreateDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.CreateDataLabelingJob].
message CreateDataLabelingJobRequest {
// Required. The parent of the DataLabelingJob.
// Format: `projects/{project}/locations/{location}`
@ -377,7 +460,7 @@ message CreateDataLabelingJobRequest {
DataLabelingJob data_labeling_job = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [DataLabelingJobService.GetDataLabelingJob][].
// Request message for [JobService.GetDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.GetDataLabelingJob].
message GetDataLabelingJobRequest {
// Required. The name of the DataLabelingJob.
// Format:
@ -390,7 +473,7 @@ message GetDataLabelingJobRequest {
];
}
// Request message for [DataLabelingJobService.ListDataLabelingJobs][].
// Request message for [JobService.ListDataLabelingJobs][google.cloud.aiplatform.v1beta1.JobService.ListDataLabelingJobs].
message ListDataLabelingJobsRequest {
// Required. The parent of the DataLabelingJob.
// Format: `projects/{project}/locations/{location}`
@ -461,7 +544,7 @@ message DeleteDataLabelingJobRequest {
];
}
// Request message for [DataLabelingJobService.CancelDataLabelingJob][].
// Request message for [JobService.CancelDataLabelingJob][google.cloud.aiplatform.v1beta1.JobService.CancelDataLabelingJob].
message CancelDataLabelingJobRequest {
// Required. The name of the DataLabelingJob.
// Format:
@ -692,3 +775,200 @@ message CancelBatchPredictionJobRequest {
}
];
}
// Request message for
// [JobService.CreateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.CreateModelDeploymentMonitoringJob].
message CreateModelDeploymentMonitoringJobRequest {
// Required. The parent of the ModelDeploymentMonitoringJob.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The ModelDeploymentMonitoringJob to create
ModelDeploymentMonitoringJob model_deployment_monitoring_job = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for
// [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies].
message SearchModelDeploymentMonitoringStatsAnomaliesRequest {
// Stats requested for specific objective.
message StatsAnomaliesObjective {
ModelDeploymentMonitoringObjectiveType type = 1;
// If set, all attribution scores between
// [SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time][google.cloud.aiplatform.v1beta1.SearchModelDeploymentMonitoringStatsAnomaliesRequest.start_time] and
// [SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time][google.cloud.aiplatform.v1beta1.SearchModelDeploymentMonitoringStatsAnomaliesRequest.end_time] are
// fetched, and page token doesn't take affect in this case.
// Only used to retrieve attribution score for the top Features which has
// the highest attribution score in the latest monitoring run.
int32 top_feature_count = 4;
}
// Required. ModelDeploymentMonitoring Job resource name.
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}
string model_deployment_monitoring_job = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
}
];
// Required. The DeployedModel ID of the
// [google.cloud.aiplatform.master.ModelDeploymentMonitoringObjectiveConfig.deployed_model_id].
string deployed_model_id = 2 [(google.api.field_behavior) = REQUIRED];
// The feature display name. If specified, only return the stats belonging to
// this feature. Format:
// [ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name][google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.feature_display_name],
// example: "user_destination".
string feature_display_name = 3;
// Required. Objectives of the stats to retrieve.
repeated StatsAnomaliesObjective objectives = 4 [(google.api.field_behavior) = REQUIRED];
// The standard list page size.
int32 page_size = 5;
// A page token received from a previous
// [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies]
// call.
string page_token = 6;
// The earliest timestamp of stats being generated.
// If not set, indicates fetching stats till the earliest possible one.
google.protobuf.Timestamp start_time = 7;
// The latest timestamp of stats being generated.
// If not set, indicates feching stats till the latest possible one.
google.protobuf.Timestamp end_time = 8;
}
// Response message for
// [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies].
message SearchModelDeploymentMonitoringStatsAnomaliesResponse {
// Stats retrieved for requested objectives.
// There are at most 1000
// [ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats][google.cloud.aiplatform.v1beta1.ModelMonitoringStatsAnomalies.FeatureHistoricStatsAnomalies.prediction_stats]
// in the response.
repeated ModelMonitoringStatsAnomalies monitoring_stats = 1;
// The page token that can be used by the next
// [JobService.SearchModelDeploymentMonitoringStatsAnomalies][google.cloud.aiplatform.v1beta1.JobService.SearchModelDeploymentMonitoringStatsAnomalies]
// call.
string next_page_token = 2;
}
// Request message for
// [JobService.GetModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.GetModelDeploymentMonitoringJob].
message GetModelDeploymentMonitoringJobRequest {
// Required. The resource name of the ModelDeploymentMonitoringJob.
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
}
];
}
// Request message for
// [JobService.ListModelDeploymentMonitoringJobs][google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs].
message ListModelDeploymentMonitoringJobsRequest {
// Required. The parent of the ModelDeploymentMonitoringJob.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The standard list filter.
string filter = 2;
// The standard list page size.
int32 page_size = 3;
// The standard list page token.
string page_token = 4;
// Mask specifying which fields to read
google.protobuf.FieldMask read_mask = 5;
}
// Response message for
// [JobService.ListModelDeploymentMonitoringJobs][google.cloud.aiplatform.v1beta1.JobService.ListModelDeploymentMonitoringJobs].
message ListModelDeploymentMonitoringJobsResponse {
// A list of ModelDeploymentMonitoringJobs that matches the specified filter
// in the request.
repeated ModelDeploymentMonitoringJob model_deployment_monitoring_jobs = 1;
// The standard List next-page token.
string next_page_token = 2;
}
// Request message for
// [JobService.UpdateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob].
message UpdateModelDeploymentMonitoringJobRequest {
// Required. The model monitoring configuration which replaces the resource on the
// server.
ModelDeploymentMonitoringJob model_deployment_monitoring_job = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The update mask applies to the resource.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for
// [JobService.DeleteModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.DeleteModelDeploymentMonitoringJob].
message DeleteModelDeploymentMonitoringJobRequest {
// Required. The resource name of the model monitoring job to delete.
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
}
];
}
// Request message for
// [JobService.PauseModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.PauseModelDeploymentMonitoringJob].
message PauseModelDeploymentMonitoringJobRequest {
// Required. The resource name of the ModelDeploymentMonitoringJob to pause.
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
}
];
}
// Request message for
// [JobService.ResumeModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.ResumeModelDeploymentMonitoringJob].
message ResumeModelDeploymentMonitoringJobRequest {
// Required. The resource name of the ModelDeploymentMonitoringJob to resume.
// Format:
// `projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
}
];
}
// Runtime operation information for
// [JobService.UpdateModelDeploymentMonitoringJob][google.cloud.aiplatform.v1beta1.JobService.UpdateModelDeploymentMonitoringJob].
message UpdateModelDeploymentMonitoringJobOperationMetadata {
// The operation generic information.
GenericOperationMetadata generic_metadata = 1;
}

@ -0,0 +1,45 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/artifact.proto";
import "google/cloud/aiplatform/v1beta1/event.proto";
import "google/cloud/aiplatform/v1beta1/execution.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "LineageSubgraphProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A subgraph of the overall lineage graph. Event edges connect Artifact and
// Execution nodes.
message LineageSubgraph {
// The Artifact nodes in the subgraph.
repeated Artifact artifacts = 1 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Artifact"
}];
// The Execution nodes in the subgraph.
repeated Execution executions = 2 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}];
// The Event edges between Artifacts and Executions in the subgraph.
repeated Event events = 3;
}

@ -0,0 +1,76 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "MetadataSchemaProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Instance of a general MetadataSchema.
message MetadataSchema {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/MetadataSchema"
pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}/metadataSchemas/{metadata_schema}"
};
// Describes the type of the MetadataSchema.
enum MetadataSchemaType {
// Unspecified type for the MetadataSchema.
METADATA_SCHEMA_TYPE_UNSPECIFIED = 0;
// A type indicating that the MetadataSchema will be used by Artifacts.
ARTIFACT_TYPE = 1;
// A typee indicating that the MetadataSchema will be used by Executions.
EXECUTION_TYPE = 2;
// A state indicating that the MetadataSchema will be used by Contexts.
CONTEXT_TYPE = 3;
}
// Output only. The resource name of the MetadataSchema.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// The version of the MetadataSchema. The version's format must match
// the following regular expression: `^[0-9]+[.][0-9]+[.][0-9]+$`, which would
// allow to order/compare different versions.Example: 1.0.0, 1.0.1, etc.
string schema_version = 2;
// Required. The raw YAML string representation of the MetadataSchema. The combination
// of [MetadataSchema.version] and the schema name given by `title` in
// [MetadataSchema.schema] must be unique within a MetadataStore.
//
// The schema is defined as an OpenAPI 3.0.2 [MetadataSchema Object](
// https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#schemaObject)
string schema = 3 [(google.api.field_behavior) = REQUIRED];
// The type of the MetadataSchema. This is a property that identifies which
// metadata types will use the MetadataSchema.
MetadataSchemaType schema_type = 4;
// Output only. Timestamp when this MetadataSchema was created.
google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Description of the Metadata Schema
string description = 6;
}

@ -0,0 +1,982 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/artifact.proto";
import "google/cloud/aiplatform/v1beta1/context.proto";
import "google/cloud/aiplatform/v1beta1/event.proto";
import "google/cloud/aiplatform/v1beta1/execution.proto";
import "google/cloud/aiplatform/v1beta1/lineage_subgraph.proto";
import "google/cloud/aiplatform/v1beta1/metadata_schema.proto";
import "google/cloud/aiplatform/v1beta1/metadata_store.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "MetadataServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Service for reading and writing metadata entries.
service MetadataService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Initializes a MetadataStore, including allocation of resources.
rpc CreateMetadataStore(CreateMetadataStoreRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/metadataStores"
body: "metadata_store"
};
option (google.api.method_signature) = "parent,metadata_store,metadata_store_id";
option (google.longrunning.operation_info) = {
response_type: "MetadataStore"
metadata_type: "CreateMetadataStoreOperationMetadata"
};
}
// Retrieves a specific MetadataStore.
rpc GetMetadataStore(GetMetadataStoreRequest) returns (MetadataStore) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/metadataStores/*}"
};
option (google.api.method_signature) = "name";
}
// Lists MetadataStores for a Location.
rpc ListMetadataStores(ListMetadataStoresRequest) returns (ListMetadataStoresResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/metadataStores"
};
option (google.api.method_signature) = "parent";
}
// Deletes a single MetadataStore.
rpc DeleteMetadataStore(DeleteMetadataStoreRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/metadataStores/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteMetadataStoreOperationMetadata"
};
}
// Creates an Artifact associated with a MetadataStore.
rpc CreateArtifact(CreateArtifactRequest) returns (Artifact) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts"
body: "artifact"
};
option (google.api.method_signature) = "parent,artifact,artifact_id";
}
// Retrieves a specific Artifact.
rpc GetArtifact(GetArtifactRequest) returns (Artifact) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/metadataStores/*/artifacts/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Artifacts in the MetadataStore.
rpc ListArtifacts(ListArtifactsRequest) returns (ListArtifactsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/artifacts"
};
option (google.api.method_signature) = "parent";
}
// Updates a stored Artifact.
rpc UpdateArtifact(UpdateArtifactRequest) returns (Artifact) {
option (google.api.http) = {
patch: "/v1beta1/{artifact.name=projects/*/locations/*/metadataStores/*/artifacts/*}"
body: "artifact"
};
option (google.api.method_signature) = "artifact,update_mask";
}
// Creates a Context associated with a MetadataStore.
rpc CreateContext(CreateContextRequest) returns (Context) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts"
body: "context"
};
option (google.api.method_signature) = "parent,context,context_id";
}
// Retrieves a specific Context.
rpc GetContext(GetContextRequest) returns (Context) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Contexts on the MetadataStore.
rpc ListContexts(ListContextsRequest) returns (ListContextsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/contexts"
};
option (google.api.method_signature) = "parent";
}
// Updates a stored Context.
rpc UpdateContext(UpdateContextRequest) returns (Context) {
option (google.api.http) = {
patch: "/v1beta1/{context.name=projects/*/locations/*/metadataStores/*/contexts/*}"
body: "context"
};
option (google.api.method_signature) = "context,update_mask";
}
// Deletes a stored Context.
rpc DeleteContext(DeleteContextRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/metadataStores/*/contexts/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Adds a set of Artifacts and Executions to a Context. If any of the
// Artifacts or Executions have already been added to a Context, they are
// simply skipped.
rpc AddContextArtifactsAndExecutions(AddContextArtifactsAndExecutionsRequest) returns (AddContextArtifactsAndExecutionsResponse) {
option (google.api.http) = {
post: "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextArtifactsAndExecutions"
body: "*"
};
option (google.api.method_signature) = "context,artifacts,executions";
}
// Adds a set of Contexts as children to a parent Context. If any of the
// child Contexts have already been added to the parent Context, they are
// simply skipped. If this call would create a cycle or cause any Context to
// have more than 10 parents, the request will fail with INVALID_ARGUMENT
// error.
rpc AddContextChildren(AddContextChildrenRequest) returns (AddContextChildrenResponse) {
option (google.api.http) = {
post: "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:addContextChildren"
body: "*"
};
option (google.api.method_signature) = "context,child_contexts";
}
// Retrieves Artifacts and Executions within the specified Context, connected
// by Event edges and returned as a LineageSubgraph.
rpc QueryContextLineageSubgraph(QueryContextLineageSubgraphRequest) returns (LineageSubgraph) {
option (google.api.http) = {
get: "/v1beta1/{context=projects/*/locations/*/metadataStores/*/contexts/*}:queryContextLineageSubgraph"
};
option (google.api.method_signature) = "context";
}
// Creates an Execution associated with a MetadataStore.
rpc CreateExecution(CreateExecutionRequest) returns (Execution) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions"
body: "execution"
};
option (google.api.method_signature) = "parent,execution,execution_id";
}
// Retrieves a specific Execution.
rpc GetExecution(GetExecutionRequest) returns (Execution) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/metadataStores/*/executions/*}"
};
option (google.api.method_signature) = "name";
}
// Lists Executions in the MetadataStore.
rpc ListExecutions(ListExecutionsRequest) returns (ListExecutionsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/executions"
};
option (google.api.method_signature) = "parent";
}
// Updates a stored Execution.
rpc UpdateExecution(UpdateExecutionRequest) returns (Execution) {
option (google.api.http) = {
patch: "/v1beta1/{execution.name=projects/*/locations/*/metadataStores/*/executions/*}"
body: "execution"
};
option (google.api.method_signature) = "execution,update_mask";
}
// Adds Events for denoting whether each Artifact was an input or output for a
// given Execution. If any Events already exist between the Execution and any
// of the specified Artifacts they are simply skipped.
rpc AddExecutionEvents(AddExecutionEventsRequest) returns (AddExecutionEventsResponse) {
option (google.api.http) = {
post: "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:addExecutionEvents"
body: "*"
};
option (google.api.method_signature) = "execution,events";
}
// Obtains the set of input and output Artifacts for this Execution, in the
// form of LineageSubgraph that also contains the Execution and connecting
// Events.
rpc QueryExecutionInputsAndOutputs(QueryExecutionInputsAndOutputsRequest) returns (LineageSubgraph) {
option (google.api.http) = {
get: "/v1beta1/{execution=projects/*/locations/*/metadataStores/*/executions/*}:queryExecutionInputsAndOutputs"
};
option (google.api.method_signature) = "execution";
}
// Creates an MetadataSchema.
rpc CreateMetadataSchema(CreateMetadataSchemaRequest) returns (MetadataSchema) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas"
body: "metadata_schema"
};
option (google.api.method_signature) = "parent,metadata_schema,metadata_schema_id";
}
// Retrieves a specific MetadataSchema.
rpc GetMetadataSchema(GetMetadataSchemaRequest) returns (MetadataSchema) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/metadataStores/*/metadataSchemas/*}"
};
option (google.api.method_signature) = "name";
}
// Lists MetadataSchemas.
rpc ListMetadataSchemas(ListMetadataSchemasRequest) returns (ListMetadataSchemasResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/metadataStores/*}/metadataSchemas"
};
option (google.api.method_signature) = "parent";
}
// Retrieves lineage of an Artifact represented through Artifacts and
// Executions connected by Event edges and returned as a LineageSubgraph.
rpc QueryArtifactLineageSubgraph(QueryArtifactLineageSubgraphRequest) returns (LineageSubgraph) {
option (google.api.http) = {
get: "/v1beta1/{artifact=projects/*/locations/*/metadataStores/*/artifacts/*}:queryArtifactLineageSubgraph"
};
option (google.api.method_signature) = "artifact";
}
}
// Request message for [MetadataService.CreateMetadataStore][google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore].
message CreateMetadataStoreRequest {
// Required. The resource name of the Location where the MetadataStore should
// be created.
// Format: projects/{project}/locations/{location}/
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The MetadataStore to create.
MetadataStore metadata_store = 2 [(google.api.field_behavior) = REQUIRED];
// The {metadatastore} portion of the resource name with the format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
// If not provided, the MetadataStore's ID will be a UUID generated by the
// service.
// Must be 4-128 characters in length. Valid characters are /[a-z][0-9]-/.
// Must be unique across all MetadataStores in the parent Location.
// (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED
// if the caller can't view the preexisting MetadataStore.)
string metadata_store_id = 3;
}
// Details of operations that perform [MetadataService.CreateMetadataStore][google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataStore].
message CreateMetadataStoreOperationMetadata {
// Operation metadata for creating a MetadataStore.
GenericOperationMetadata generic_metadata = 1;
}
// Request message for [MetadataService.GetMetadataStore][google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataStore].
message GetMetadataStoreRequest {
// Required. The resource name of the MetadataStore to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
}
// Request message for [MetadataService.ListMetadataStores][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores].
message ListMetadataStoresRequest {
// Required. The Location whose MetadataStores should be listed.
// Format:
// projects/{project}/locations/{location}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The maximum number of Metadata Stores to return. The service may return
// fewer.
// Must be in range 1-1000, inclusive. Defaults to 100.
int32 page_size = 2;
// A page token, received from a previous
// [MetadataService.ListMetadataStores][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores] call. Provide this to retrieve the
// subsequent page.
//
// When paginating, all other provided parameters must match the call that
// provided the page token. (Otherwise the request will fail with
// INVALID_ARGUMENT error.)
string page_token = 3;
}
// Response message for [MetadataService.ListMetadataStores][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataStores].
message ListMetadataStoresResponse {
// The MetadataStores found for the Location.
repeated MetadataStore metadata_stores = 1;
// A token, which can be sent as
// [ListMetadataStoresRequest.page_token][google.cloud.aiplatform.v1beta1.ListMetadataStoresRequest.page_token] to retrieve the next
// page. If this field is not populated, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [MetadataService.DeleteMetadataStore][google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore].
message DeleteMetadataStoreRequest {
// Required. The resource name of the MetadataStore to delete.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
// If set to true, any child resources of this MetadataStore will be deleted.
// (Otherwise, the request will fail with a FAILED_PRECONDITION error if the
// MetadataStore has any child resources.)
bool force = 2;
}
// Details of operations that perform [MetadataService.DeleteMetadataStore][google.cloud.aiplatform.v1beta1.MetadataService.DeleteMetadataStore].
message DeleteMetadataStoreOperationMetadata {
// Operation metadata for deleting a MetadataStore.
GenericOperationMetadata generic_metadata = 1;
}
// Request message for [MetadataService.CreateArtifact][google.cloud.aiplatform.v1beta1.MetadataService.CreateArtifact].
message CreateArtifactRequest {
// Required. The resource name of the MetadataStore where the Artifact should
// be created.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
// Required. The Artifact to create.
Artifact artifact = 2 [(google.api.field_behavior) = REQUIRED];
// The {artifact} portion of the resource name with the format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}
// If not provided, the Artifact's ID will be a UUID generated by the service.
// Must be 4-128 characters in length. Valid characters are /[a-z][0-9]-/.
// Must be unique across all Artifacts in the parent MetadataStore. (Otherwise
// the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the
// caller can't view the preexisting Artifact.)
string artifact_id = 3;
}
// Request message for [MetadataService.GetArtifact][google.cloud.aiplatform.v1beta1.MetadataService.GetArtifact].
message GetArtifactRequest {
// Required. The resource name of the Artifact to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Artifact"
}
];
}
// Request message for [MetadataService.ListArtifacts][google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts].
message ListArtifactsRequest {
// Required. The MetadataStore whose Artifacts should be listed.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Artifact"
}
];
// The maximum number of Artifacts to return. The service may return fewer.
// Must be in range 1-1000, inclusive. Defaults to 100.
int32 page_size = 2;
// A page token, received from a previous [MetadataService.ListArtifacts][google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts]
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other provided parameters must match the call that
// provided the page token. (Otherwise the request will fail with
// INVALID_ARGUMENT error.)
string page_token = 3;
// Filter specifying the boolean condition for the Artifacts to satisfy in
// order to be part of the result set.
// The syntax to define filter query is based on https://google.aip.dev/160.
// The supported set of filters include the following:
// 1. Attributes filtering
// e.g. display_name = "test"
//
// Supported fields include: name, display_name, uri, state,
// schema_title, create_time and update_time.
// Time fields, i.e. create_time and update_time, require values to
// specified in RFC-3339 format.
// e.g. create_time = "2020-11-19T11:30:00-04:00"
// 2. Metadata field
// To filter on metadata fields use traversal operation as follows:
// metadata.<field_name>.<type_value>
// e.g. metadata.field_1.number_value = 10.0
// 3. Context based filtering
// To filter Artifacts based on the contexts to which they belong use the
// function operator with the full resource name
// "in_context(<context-name>)"
// e.g.
// in_context("projects/<project_number>/locations/<location>/metadataStores/<metadatastore_name>/contexts/<context-id>")
//
// Each of the above supported filter types can be combined together using
// Logical operators (AND & OR).
// e.g. display_name = "test" AND metadata.field1.bool_value = true.
string filter = 4;
}
// Response message for [MetadataService.ListArtifacts][google.cloud.aiplatform.v1beta1.MetadataService.ListArtifacts].
message ListArtifactsResponse {
// The Artifacts retrieved from the MetadataStore.
repeated Artifact artifacts = 1;
// A token, which can be sent as [ListArtifactsRequest.page_token][google.cloud.aiplatform.v1beta1.ListArtifactsRequest.page_token]
// to retrieve the next page.
// If this field is not populated, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [MetadataService.UpdateArtifact][google.cloud.aiplatform.v1beta1.MetadataService.UpdateArtifact].
message UpdateArtifactRequest {
// Required. The Artifact containing updates.
// The Artifact's [Artifact.name][google.cloud.aiplatform.v1beta1.Artifact.name] field is used to identify the Artifact to
// be updated.
// Format:
// 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.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
// If set to true, and the [Artifact][google.cloud.aiplatform.v1beta1.Artifact] is not found, a new [Artifact][google.cloud.aiplatform.v1beta1.Artifact] will
// be created. In this situation, `update_mask` is ignored.
bool allow_missing = 3;
}
// Request message for [MetadataService.CreateContext][google.cloud.aiplatform.v1beta1.MetadataService.CreateContext].
message CreateContextRequest {
// Required. The resource name of the MetadataStore where the Context should be
// created.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
// Required. The Context to create.
Context context = 2 [(google.api.field_behavior) = REQUIRED];
// The {context} portion of the resource name with the format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
// If not provided, the Context's ID will be a UUID generated by the service.
// Must be 4-128 characters in length. Valid characters are /[a-z][0-9]-/.
// Must be unique across all Contexts in the parent MetadataStore. (Otherwise
// the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED if the
// caller can't view the preexisting Context.)
string context_id = 3;
}
// Request message for [MetadataService.GetContext][google.cloud.aiplatform.v1beta1.MetadataService.GetContext].
message GetContextRequest {
// Required. The resource name of the Context to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
}
// Request message for [MetadataService.ListContexts][google.cloud.aiplatform.v1beta1.MetadataService.ListContexts]
message ListContextsRequest {
// Required. The MetadataStore whose Contexts should be listed.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Context"
}
];
// The maximum number of Contexts to return. The service may return fewer.
// Must be in range 1-1000, inclusive. Defaults to 100.
int32 page_size = 2;
// A page token, received from a previous [MetadataService.ListContexts][google.cloud.aiplatform.v1beta1.MetadataService.ListContexts]
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other provided parameters must match the call that
// provided the page token. (Otherwise the request will fail with
// INVALID_ARGUMENT error.)
string page_token = 3;
string filter = 4;
}
// Response message for [MetadataService.ListContexts][google.cloud.aiplatform.v1beta1.MetadataService.ListContexts].
message ListContextsResponse {
// The Contexts retrieved from the MetadataStore.
repeated Context contexts = 1;
// A token, which can be sent as [ListContextsRequest.page_token][google.cloud.aiplatform.v1beta1.ListContextsRequest.page_token]
// to retrieve the next page.
// If this field is not populated, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [MetadataService.UpdateContext][google.cloud.aiplatform.v1beta1.MetadataService.UpdateContext].
message UpdateContextRequest {
// Required. The Context containing updates.
// The Context's [Context.name][google.cloud.aiplatform.v1beta1.Context.name] field is used to identify the Context to be
// updated.
// Format:
// 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.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
// If set to true, and the [Context][google.cloud.aiplatform.v1beta1.Context] is not found, a new [Context][google.cloud.aiplatform.v1beta1.Context] will be
// created. In this situation, `update_mask` is ignored.
bool allow_missing = 3;
}
// Request message for [MetadataService.DeleteContext][google.cloud.aiplatform.v1beta1.MetadataService.DeleteContext].
message DeleteContextRequest {
// Required. The resource name of the Context to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
// If set to true, any child resources of this Context will be deleted.
// (Otherwise, the request will fail with a FAILED_PRECONDITION error if the
// Context has any child resources, such as another Context, Artifact, or
// Execution).
bool force = 2;
}
// Request message for [MetadataService.AddContextArtifactsAndExecutions][google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions].
message AddContextArtifactsAndExecutionsRequest {
// Required. The resource name of the Context that the Artifacts and Executions
// belong to.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
string context = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
// The resource names of the Artifacts to attribute to the Context.
repeated string artifacts = 2 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Artifact"
}];
// The resource names of the Executions to associate with the
// Context.
repeated string executions = 3 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}];
}
// Response message for [MetadataService.AddContextArtifactsAndExecutions][google.cloud.aiplatform.v1beta1.MetadataService.AddContextArtifactsAndExecutions].
message AddContextArtifactsAndExecutionsResponse {
}
// Request message for [MetadataService.AddContextChildren][google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren].
message AddContextChildrenRequest {
// Required. The resource name of the parent Context.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
string context = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
// The resource names of the child Contexts.
repeated string child_contexts = 2 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}];
}
// Response message for [MetadataService.AddContextChildren][google.cloud.aiplatform.v1beta1.MetadataService.AddContextChildren].
message AddContextChildrenResponse {
}
// Request message for [MetadataService.QueryContextLineageSubgraph][google.cloud.aiplatform.v1beta1.MetadataService.QueryContextLineageSubgraph].
message QueryContextLineageSubgraphRequest {
// Required. The resource name of the Context whose Artifacts and Executions
// should be retrieved as a LineageSubgraph.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/contexts/{context}
//
// The request may error with FAILED_PRECONDITION if the number of Artifacts,
// the number of Executions, or the number of Events that would be returned
// for the Context exceeds 1000.
string context = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Context"
}
];
}
// Request message for [MetadataService.CreateExecution][google.cloud.aiplatform.v1beta1.MetadataService.CreateExecution].
message CreateExecutionRequest {
// Required. The resource name of the MetadataStore where the Execution should
// be created.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
// Required. The Execution to create.
Execution execution = 2 [(google.api.field_behavior) = REQUIRED];
// The {execution} portion of the resource name with the format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}
// If not provided, the Execution's ID will be a UUID generated by the
// service.
// Must be 4-128 characters in length. Valid characters are /[a-z][0-9]-/.
// Must be unique across all Executions in the parent MetadataStore.
// (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED
// if the caller can't view the preexisting Execution.)
string execution_id = 3;
}
// Request message for [MetadataService.GetExecution][google.cloud.aiplatform.v1beta1.MetadataService.GetExecution].
message GetExecutionRequest {
// Required. The resource name of the Execution to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}
];
}
// Request message for [MetadataService.ListExecutions][google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions].
message ListExecutionsRequest {
// Required. The MetadataStore whose Executions should be listed.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Execution"
}
];
// The maximum number of Executions to return. The service may return fewer.
// Must be in range 1-1000, inclusive. Defaults to 100.
int32 page_size = 2;
// A page token, received from a previous [MetadataService.ListExecutions][google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions]
// call. Provide this to retrieve the subsequent page.
//
// When paginating, all other provided parameters must match the call that
// provided the page token. (Otherwise the request will fail with
// INVALID_ARGUMENT error.)
string page_token = 3;
// Filter specifying the boolean condition for the Executions to satisfy in
// order to be part of the result set.
// The syntax to define filter query is based on https://google.aip.dev/160.
// Following are the supported set of filters:
// 1. Attributes filtering
// e.g. display_name = "test"
//
// supported fields include: name, display_name, state,
// schema_title, create_time and update_time.
// Time fields, i.e. create_time and update_time, require values to
// specified in RFC-3339 format.
// e.g. create_time = "2020-11-19T11:30:00-04:00"
// 2. Metadata field
// To filter on metadata fields use traversal operation as follows:
// metadata.<field_name>.<type_value>
// e.g. metadata.field_1.number_value = 10.0
// 3. Context based filtering
// To filter Executions based on the contexts to which they belong use
// the function operator with the full resource name
// "in_context(<context-name>)"
// e.g.
// in_context("projects/<project_number>/locations/<location>/metadataStores/<metadatastore_name>/contexts/<context-id>")
//
// Each of the above supported filters can be combined together using
// Logical operators (AND & OR).
// e.g. display_name = "test" AND metadata.field1.bool_value = true.
string filter = 4;
}
// Response message for [MetadataService.ListExecutions][google.cloud.aiplatform.v1beta1.MetadataService.ListExecutions].
message ListExecutionsResponse {
// The Executions retrieved from the MetadataStore.
repeated Execution executions = 1;
// A token, which can be sent as [ListExecutionsRequest.page_token][google.cloud.aiplatform.v1beta1.ListExecutionsRequest.page_token]
// to retrieve the next page.
// If this field is not populated, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [MetadataService.UpdateExecution][google.cloud.aiplatform.v1beta1.MetadataService.UpdateExecution].
message UpdateExecutionRequest {
// Required. The Execution containing updates.
// The Execution's [Execution.name][google.cloud.aiplatform.v1beta1.Execution.name] field is used to identify the Execution
// to be updated.
// Format:
// 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.
google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
// If set to true, and the [Execution][google.cloud.aiplatform.v1beta1.Execution] is not found, a new [Execution][google.cloud.aiplatform.v1beta1.Execution]
// will be created. In this situation, `update_mask` is ignored.
bool allow_missing = 3;
}
// Request message for [MetadataService.AddExecutionEvents][google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents].
message AddExecutionEventsRequest {
// Required. The resource name of the Execution that the Events connect
// Artifacts with.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}
string execution = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}
];
// The Events to create and add.
repeated Event events = 2;
}
// Response message for [MetadataService.AddExecutionEvents][google.cloud.aiplatform.v1beta1.MetadataService.AddExecutionEvents].
message AddExecutionEventsResponse {
}
// Request message for [MetadataService.QueryExecutionInputsAndOutputs][google.cloud.aiplatform.v1beta1.MetadataService.QueryExecutionInputsAndOutputs].
message QueryExecutionInputsAndOutputsRequest {
// Required. The resource name of the Execution whose input and output Artifacts should
// be retrieved as a LineageSubgraph.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/executions/{execution}
string execution = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Execution"
}
];
}
// Request message for [MetadataService.CreateMetadataSchema][google.cloud.aiplatform.v1beta1.MetadataService.CreateMetadataSchema].
message CreateMetadataSchemaRequest {
// Required. The resource name of the MetadataStore where the MetadataSchema should
// be created.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataStore"
}
];
// Required. The MetadataSchema to create.
MetadataSchema metadata_schema = 2 [(google.api.field_behavior) = REQUIRED];
// The {metadata_schema} portion of the resource name with the format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}
// If not provided, the MetadataStore's ID will be a UUID generated by the
// service.
// Must be 4-128 characters in length. Valid characters are /[a-z][0-9]-/.
// Must be unique across all MetadataSchemas in the parent Location.
// (Otherwise the request will fail with ALREADY_EXISTS, or PERMISSION_DENIED
// if the caller can't view the preexisting MetadataSchema.)
string metadata_schema_id = 3;
}
// Request message for [MetadataService.GetMetadataSchema][google.cloud.aiplatform.v1beta1.MetadataService.GetMetadataSchema].
message GetMetadataSchemaRequest {
// Required. The resource name of the MetadataSchema to retrieve.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/metadataSchemas/{metadataschema}
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/MetadataSchema"
}
];
}
// Request message for [MetadataService.ListMetadataSchemas][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas].
message ListMetadataSchemasRequest {
// Required. The MetadataStore whose MetadataSchemas should be listed.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/MetadataSchema"
}
];
// The maximum number of MetadataSchemas to return. The service may return
// fewer.
// Must be in range 1-1000, inclusive. Defaults to 100.
int32 page_size = 2;
// A page token, received from a previous
// [MetadataService.ListMetadataSchemas][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas] call. Provide this to retrieve the
// subsequent page.
//
// When paginating, all other provided parameters must match the call that
// provided the page token. (Otherwise the request will fail with
// INVALID_ARGUMENT error.)
string page_token = 3;
// A query to filter available MetadataSchemas for matching results.
string filter = 4;
}
// Response message for [MetadataService.ListMetadataSchemas][google.cloud.aiplatform.v1beta1.MetadataService.ListMetadataSchemas].
message ListMetadataSchemasResponse {
// The MetadataSchemas found for the MetadataStore.
repeated MetadataSchema metadata_schemas = 1;
// A token, which can be sent as
// [ListMetadataSchemasRequest.page_token][google.cloud.aiplatform.v1beta1.ListMetadataSchemasRequest.page_token] to retrieve the next
// page. If this field is not populated, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [MetadataService.QueryArtifactLineageSubgraph][google.cloud.aiplatform.v1beta1.MetadataService.QueryArtifactLineageSubgraph].
message QueryArtifactLineageSubgraphRequest {
// Required. The resource name of the Artifact whose Lineage needs to be retrieved as a
// LineageSubgraph.
// Format:
// projects/{project}/locations/{location}/metadataStores/{metadatastore}/artifacts/{artifact}
//
// The request may error with FAILED_PRECONDITION if the number of Artifacts,
// the number of Executions, or the number of Events that would be returned
// for the Context exceeds 1000.
string artifact = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Artifact"
}
];
// Specifies the size of the lineage graph in terms of number of hops from the
// specified artifact.
// Negative Value: INVALID_ARGUMENT error is returned
// 0: Only input artifact is returned.
// No value: Transitive closure is performed to return the complete graph.
int32 max_hops = 2;
// Filter specifying the boolean condition for the Artifacts to satisfy in
// order to be part of the Lineage Subgraph.
// The syntax to define filter query is based on https://google.aip.dev/160.
// The supported set of filters include the following:
// 1. Attributes filtering
// e.g. display_name = "test"
//
// supported fields include: name, display_name, uri, state,
// schema_title, create_time and update_time.
// Time fields, i.e. create_time and update_time, require values to
// specified in RFC-3339 format.
// e.g. create_time = "2020-11-19T11:30:00-04:00"
// 2. Metadata field
// To filter on metadata fields use traversal operation as follows:
// metadata.<field_name>.<type_value>
// e.g. metadata.field_1.number_value = 10.0
//
// Each of the above supported filter types can be combined together using
// Logical operators (AND & OR).
// e.g. display_name = "test" AND metadata.field1.bool_value = true.
string filter = 3;
}

@ -0,0 +1,63 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "MetadataProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Instance of a metadata store. Contains a set of metadata that can be
// queried.
message MetadataStore {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/MetadataStore"
pattern: "projects/{project}/locations/{location}/metadataStores/{metadata_store}"
};
// Represent state information for a MetadataStore.
message MetadataStoreState {
// The disk utilization of the MetadataStore in bytes.
int64 disk_utilization_bytes = 1;
}
// Output only. The resource name of the MetadataStore instance.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this MetadataStore was created.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this MetadataStore was last updated.
google.protobuf.Timestamp update_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Customer-managed encryption key spec for an Metadata Store. If set, this
// Metadata Store and all sub-resources of this Metadata Store will be secured
// by this key.
EncryptionSpec encryption_spec = 5;
// Description of the MetadataStore.
string description = 6;
// Output only. State information of the MetadataStore.
MetadataStoreState state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
}

@ -85,15 +85,18 @@ message SearchMigratableResourcesRequest {
// The standard page token.
string page_token = 3;
// Supported filters are:
// * Resource type: For a specific type of MigratableResource.
// * `ml_engine_model_version:*`
// * `automl_model:*`,
// * `automl_dataset:*`
// * `data_labeling_dataset:*`.
// * Migrated or not: Filter migrated resource or not by last_migrate_time.
// * `last_migrate_time:*` will filter migrated resources.
// * `NOT last_migrate_time:*` will filter not yet migrated resources.
// A filter for your search. You can use the following types of filters:
//
// * Resource type filters. The following strings filter for a specific type
// of [MigratableResource][google.cloud.aiplatform.v1beta1.MigratableResource]:
// * `ml_engine_model_version:*`
// * `automl_model:*`
// * `automl_dataset:*`
// * `data_labeling_dataset:*`
// * "Migrated or not" filters. The following strings filter for resources
// that either have or have not already been migrated:
// * `last_migrate_time:*` filters for migrated resources.
// * `NOT last_migrate_time:*` filters for not yet migrated resources.
string filter = 4;
}

@ -337,8 +337,8 @@ message PredictSchemata {
string prediction_schema_uri = 3 [(google.api.field_behavior) = IMMUTABLE];
}
// Specification of a container for serving predictions. This message is a
// subset of the Kubernetes Container v1 core
// Specification of a container for serving predictions. Some fields in this
// message correspond to fields in the Kubernetes Container v1 core
// [specification](https://tinyurl.com/k8s-io-api/v1.18/#container-v1-core).
message ModelContainerSpec {
// Required. Immutable. URI of the Docker image to be used as the custom container for serving

@ -0,0 +1,268 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/feature_monitoring_stats.proto";
import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/cloud/aiplatform/v1beta1/job_state.proto";
import "google/cloud/aiplatform/v1beta1/model_monitoring.proto";
import "google/protobuf/duration.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ModelDeploymentMonitoringJobProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// The Model Monitoring Objective types.
enum ModelDeploymentMonitoringObjectiveType {
// Default value, should not be set.
MODEL_DEPLOYMENT_MONITORING_OBJECTIVE_TYPE_UNSPECIFIED = 0;
// Raw feature values' stats to detect skew between Training-Prediction
// datasets.
RAW_FEATURE_SKEW = 1;
// Raw feature values' stats to detect drift between Serving-Prediction
// datasets.
RAW_FEATURE_DRIFT = 2;
// Feature attribution scores to detect skew between Training-Prediction
// datasets.
FEATURE_ATTRIBUTION_SKEW = 3;
// Feature attribution scores to detect skew between Prediction datasets
// collected within different time windows.
FEATURE_ATTRIBUTION_DRIFT = 4;
}
// Represents a job that runs periodically to monitor the deployed models in an
// endpoint. It will analyze the logged training & prediction data to detect any
// abnormal behaviors.
message ModelDeploymentMonitoringJob {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/ModelDeploymentMonitoringJob"
pattern: "projects/{project}/locations/{location}/modelDeploymentMonitoringJobs/{model_deployment_monitoring_job}"
};
// The state to Specify the monitoring pipeline.
enum MonitoringScheduleState {
// Unspecified state.
MONITORING_SCHEDULE_STATE_UNSPECIFIED = 0;
// The pipeline is picked up and wait to run.
PENDING = 1;
// The pipeline is offline and will be scheduled for next run.
OFFLINE = 2;
// The pipeline is running.
RUNNING = 3;
}
// Output only. Resource name of a ModelDeploymentMonitoringJob.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The user-defined name of the ModelDeploymentMonitoringJob.
// The name can be up to 128 characters long and can be consist of any UTF-8
// characters.
// Display name of a ModelDeploymentMonitoringJob.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Required. Endpoint resource name.
// Format: `projects/{project}/locations/{location}/endpoints/{endpoint}`
string endpoint = 3 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Endpoint"
}
];
// Output only. The detailed state of the monitoring job.
// When the job is still creating, the state will be 'PENDING'.
// Once the job is successfully created, the state will be 'RUNNING'.
// Pause the job, the state will be 'PAUSED'.
// Resume the job, the state will return to 'RUNNING'.
JobState state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Schedule state when the monitoring job is in Running state.
MonitoringScheduleState schedule_state = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. The config for monitoring objectives. This is a per DeployedModel config.
// Each DeployedModel needs to be configed separately.
repeated ModelDeploymentMonitoringObjectiveConfig model_deployment_monitoring_objective_configs = 6 [(google.api.field_behavior) = REQUIRED];
// Required. Schedule config for running the monitoring job.
ModelDeploymentMonitoringScheduleConfig model_deployment_monitoring_schedule_config = 7 [(google.api.field_behavior) = REQUIRED];
// Required. Sample Strategy for logging.
SamplingStrategy logging_sampling_strategy = 8 [(google.api.field_behavior) = REQUIRED];
// Alert config for model monitoring.
ModelMonitoringAlertConfig model_monitoring_alert_config = 15;
// YAML schema file uri describing the format of a single instance,
// which are given to format this Endpoint's prediction (and explanation).
// If not set, we will generate predict schema from collected predict
// requests.
string predict_instance_schema_uri = 9;
// Sample Predict instance, same format as [PredictRequest.instances][google.cloud.aiplatform.v1beta1.PredictRequest.instances],
// this can be set as a replacement of
// [ModelDeploymentMonitoringJob.predict_instance_schema_uri][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob.predict_instance_schema_uri]. If not set,
// we will generate predict schema from collected predict requests.
google.protobuf.Value sample_predict_instance = 19;
// YAML schema file uri describing the format of a single instance that you
// want Tensorflow Data Validation (TFDV) to analyze.
//
// If this field is empty, all the feature data types are inferred from
// [predict_instance_schema_uri][google.cloud.aiplatform.v1beta1.ModelDeploymentMonitoringJob.predict_instance_schema_uri],
// meaning that TFDV will use the data in the exact format(data type) as
// prediction request/response.
// If there are any data type differences between predict instance and TFDV
// instance, this field can be used to override the schema.
// For models trained with AI Platform, this field must be set as all the
// fields in predict instance formatted as string.
string analysis_instance_schema_uri = 16;
// Output only. The created bigquery tables for the job under customer project. Customer
// could do their own query & analysis. There could be 4 log tables in
// maximum:
// 1. Training data logging predict request/response
// 2. Serving data logging predict request/response
repeated ModelDeploymentMonitoringBigQueryTable bigquery_tables = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// The TTL of BigQuery tables in user projects which stores logs.
// A day is the basic unit of the TTL and we take the ceil of TTL/86400(a
// day). e.g. { second: 3600} indicates ttl = 1 day.
google.protobuf.Duration log_ttl = 17;
// The labels with user-defined metadata to organize your
// ModelDeploymentMonitoringJob.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 11;
// Output only. Timestamp when this ModelDeploymentMonitoringJob was created.
google.protobuf.Timestamp create_time = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this ModelDeploymentMonitoringJob was updated most recently.
google.protobuf.Timestamp update_time = 13 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this monitoring pipeline will be scheduled to run for the
// next round.
google.protobuf.Timestamp next_schedule_time = 14 [(google.api.field_behavior) = OUTPUT_ONLY];
// Stats anomalies base folder path.
GcsDestination stats_anomalies_base_directory = 20;
}
// ModelDeploymentMonitoringBigQueryTable specifies the BigQuery table name
// as well as some information of the logs stored in this table.
message ModelDeploymentMonitoringBigQueryTable {
// Indicates where does the log come from.
enum LogSource {
// Unspecified source.
LOG_SOURCE_UNSPECIFIED = 0;
// Logs coming from Training dataset.
TRAINING = 1;
// Logs coming from Serving traffic.
SERVING = 2;
}
// Indicates what type of traffic does the log belong to.
enum LogType {
// Unspecified type.
LOG_TYPE_UNSPECIFIED = 0;
// Predict logs.
PREDICT = 1;
// Explain logs.
EXPLAIN = 2;
}
// The source of log.
LogSource log_source = 1;
// The type of log.
LogType log_type = 2;
// The created BigQuery table to store logs. Customer could do their own query
// & analysis. Format:
// `bq://<project_id>.model_deployment_monitoring_<endpoint_id>.<tolower(log_source)>_<tolower(log_type)>`
string bigquery_table_path = 3;
}
// ModelDeploymentMonitoringObjectiveConfig contains the pair of
// deployed_model_id to ModelMonitoringObjectiveConfig.
message ModelDeploymentMonitoringObjectiveConfig {
// The DeployedModel ID of the objective config.
string deployed_model_id = 1;
// The objective config of for the modelmonitoring job of this deployed model.
ModelMonitoringObjectiveConfig objective_config = 2;
}
// The config for scheduling monitoring job.
message ModelDeploymentMonitoringScheduleConfig {
// Required. The model monitoring job running interval. It will be rounded up to next
// full hour.
google.protobuf.Duration monitor_interval = 1 [(google.api.field_behavior) = REQUIRED];
}
// Statistics and anomalies generated by Model Monitoring.
message ModelMonitoringStatsAnomalies {
// Historical Stats (and Anomalies) for a specific Feature.
message FeatureHistoricStatsAnomalies {
// Display Name of the Feature.
string feature_display_name = 1;
// Threshold for anomaly detection.
ThresholdConfig threshold = 3;
// Stats calculated for the Training Dataset.
FeatureStatsAnomaly training_stats = 4;
// A list of historical stats generated by different time window's
// Prediction Dataset.
repeated FeatureStatsAnomaly prediction_stats = 5;
}
// Model Monitoring Objective those stats and anomalies belonging to.
ModelDeploymentMonitoringObjectiveType objective = 1;
// Deployed Model ID.
string deployed_model_id = 2;
// Number of anomalies within all stats.
int32 anomaly_count = 3;
// A list of historical Stats and Anomalies generated for all Features.
repeated FeatureHistoricStatsAnomalies feature_stats = 4;
}

@ -0,0 +1,140 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/io.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ModelMonitoringProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Next ID: 6
message ModelMonitoringObjectiveConfig {
// Training Dataset information.
message TrainingDataset {
oneof data_source {
// The resource name of the Dataset used to train this Model.
string dataset = 3 [(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Dataset"
}];
// The Google Cloud Storage uri of the unmanaged Dataset used to train
// this Model.
GcsSource gcs_source = 4;
// The BigQuery table of the unmanaged Dataset used to train this
// Model.
BigQuerySource bigquery_source = 5;
}
// Data format of the dataset, only applicable if the input is from
// Google Cloud Storage.
// The possible formats are:
//
// "tf-record"
// The source file is a TFRecord file.
//
// "csv"
// The source file is a CSV file.
string data_format = 2;
// The target field name the model is to predict.
// This field will be excluded when doing Predict and (or) Explain for the
// training data.
string target_field = 6;
// Strategy to sample data from Training Dataset.
// If not set, we process the whole dataset.
SamplingStrategy logging_sampling_strategy = 7;
}
// The config for Training & Prediction data skew detection. It specifies the
// training dataset sources and the skew detection parameters.
message TrainingPredictionSkewDetectionConfig {
// Key is the feature name and value is the threshold. If a feature needs to
// be monitored for skew, a value threshold must be configed for that
// feature. The threshold here is against feature distribution distance
// between the training and prediction feature.
map<string, ThresholdConfig> skew_thresholds = 1;
}
// The config for Prediction data drift detection.
message PredictionDriftDetectionConfig {
// Key is the feature name and value is the threshold. If a feature needs to
// be monitored for drift, a value threshold must be configed for that
// feature. The threshold here is against feature distribution distance
// between different time windws.
map<string, ThresholdConfig> drift_thresholds = 1;
}
// Training dataset for models. This field has to be set only if
// TrainingPredictionSkewDetectionConfig is specified.
TrainingDataset training_dataset = 1;
// The config for skew between training data and prediction data.
TrainingPredictionSkewDetectionConfig training_prediction_skew_detection_config = 2;
// The config for drift of prediction data.
PredictionDriftDetectionConfig prediction_drift_detection_config = 3;
}
// Next ID: 2
message ModelMonitoringAlertConfig {
// The config for email alert.
message EmailAlertConfig {
// The email addresses to send the alert.
repeated string user_emails = 1;
}
oneof alert {
// Email alert config.
EmailAlertConfig email_alert_config = 1;
}
}
// The config for feature monitoring threshold.
// Next ID: 3
message ThresholdConfig {
oneof threshold {
// Specify a threshold value that can trigger the alert.
// If this threshold config is for feature distribution distance:
// 1. For categorical feature, the distribution distance is calculated by
// L-inifinity norm.
// 2. For numerical feature, the distribution distance is calculated by
// JensenShannon divergence.
// Each feature must have a non-zero threshold if they need to be monitored.
// Otherwise no alert will be triggered for that feature.
double value = 1;
}
}
// Sampling Strategy for logging, can be for both training and prediction
// dataset.
// Next ID: 2
message SamplingStrategy {
// Requests are randomly selected.
message RandomSampleConfig {
// Sample rate (0, 1]
double sample_rate = 1;
}
// Random sample config. Will support more sampling strategies later.
RandomSampleConfig random_sample_config = 1;
}

@ -0,0 +1,287 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/artifact.proto";
import "google/cloud/aiplatform/v1beta1/context.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/cloud/aiplatform/v1beta1/execution.proto";
import "google/cloud/aiplatform/v1beta1/pipeline_state.proto";
import "google/cloud/aiplatform/v1beta1/value.proto";
import "google/protobuf/struct.proto";
import "google/protobuf/timestamp.proto";
import "google/rpc/status.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "Pipeline";
option java_package = "com.google.cloud.aiplatform.v1beta1";
option (google.api.resource_definition) = {
type: "compute.googleapis.com/Network"
pattern: "projects/{project}/global/networks/{network}"
};
// An instance of a machine learning PipelineJob.
message PipelineJob {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/PipelineJob"
pattern: "projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}"
};
// The runtime config of a PipelineJob.
message RuntimeConfig {
// The runtime parameters of the PipelineJob. The parameters will be
// passed into [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1beta1.PipelineJob.pipeline_spec] to replace the placeholders
// at runtime.
map<string, Value> parameters = 1;
// Required. A path in a Cloud Storage bucket, which will be treated as the root
// output directory of the pipeline. It is used by the system to
// generate the paths of output artifacts. The artifact paths are generated
// with a sub-path pattern `{job_id}/{task_id}/{output_key}` under the
// specified output directory. The service account specified in this
// pipeline must have the `storage.objects.get` and `storage.objects.create`
// permissions for this bucket.
string gcs_output_directory = 2 [(google.api.field_behavior) = REQUIRED];
}
// Output only. The resource name of the PipelineJob.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// The display name of the Pipeline.
// The name can be up to 128 characters long and can be consist of any UTF-8
// characters.
string display_name = 2;
// Output only. Pipeline creation time.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Pipeline start time.
google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Pipeline end time.
google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// 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.
// The spec contains a `schema_version` field which indicates the Kubeflow
// Pipeline schema version to decode the struct.
google.protobuf.Struct pipeline_spec = 7 [(google.api.field_behavior) = REQUIRED];
// Output only. The detailed state of the job.
PipelineState state = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The details of pipeline run. Not available in the list view.
PipelineJobDetail job_detail = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The error that occurred during pipeline execution.
// Only populated when the pipeline's state is FAILED or CANCELLED.
google.rpc.Status error = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// The labels with user-defined metadata to organize PipelineJob.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
map<string, string> labels = 11;
// Runtime config of the pipeline.
RuntimeConfig runtime_config = 12;
// Customer-managed encryption key spec for a pipelineJob. If set, this
// PipelineJob and all of its sub-resources will be secured by this key.
EncryptionSpec encryption_spec = 16;
// The service account that the pipeline workload runs as.
// If not specified, the Compute Engine default service account in the project
// will be used.
// See
// https://cloud.google.com/compute/docs/access/service-accounts#default_service_account
//
// Users starting the pipeline must have the `iam.serviceAccounts.actAs`
// permission on this service account.
string service_account = 17;
// The full name of the Compute Engine
// [network](/compute/docs/networks-and-firewalls#networks) to which the
// Pipeline Job's workload should be peered. For example,
// `projects/12345/global/networks/myVPC`.
// [Format](/compute/docs/reference/rest/v1/networks/insert)
// is of the form `projects/{project}/global/networks/{network}`.
// Where {project} is a project number, as in `12345`, and {network} is a
// network name.
//
// Private services access must already be configured for the network.
// Pipeline job will apply the network configuration to the GCP resources
// being launched, if applied, such as Cloud AI Platform
// Training or Dataflow job. If left unspecified, the workload is not peered
// with any network.
string network = 18 [(google.api.resource_reference) = {
type: "compute.googleapis.com/Network"
}];
}
// The runtime detail of PipelineJob.
message PipelineJobDetail {
// Output only. The context of the pipeline.
Context pipeline_context = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The context of the current pipeline run.
Context pipeline_run_context = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The runtime details of the tasks under the pipeline.
repeated PipelineTaskDetail task_details = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// The runtime detail of a task execution.
message PipelineTaskDetail {
// A list of artifact metadata.
message ArtifactList {
// Output only. A list of artifact metadata.
repeated Artifact artifacts = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Specifies state of TaskExecution
enum State {
// Unspecified.
STATE_UNSPECIFIED = 0;
// Specifies pending state for the task.
PENDING = 1;
// Specifies task is being executed.
RUNNING = 2;
// Specifies task completed successfully.
SUCCEEDED = 3;
// Specifies Task cancel is in pending state.
CANCEL_PENDING = 4;
// Specifies task is being cancelled.
CANCELLING = 5;
// Specifies task was cancelled.
CANCELLED = 6;
// Specifies task failed.
FAILED = 7;
// Specifies task was skipped due to cache hit.
SKIPPED = 8;
// Specifies task was not triggered because the trigger policy of the task
// in the [PipelineJob.pipeline_spec.condition][] is not satisfied.
NOT_TRIGGERED = 9;
}
// Output only. The system generated ID of the task.
int64 task_id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The id of the parent task if the task is within a component scope.
// Empty if the task is at the root level.
int64 parent_task_id = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The user specified name of the task that is defined in
// [PipelineJob.spec][].
string task_name = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Task create time.
google.protobuf.Timestamp create_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Task start time.
google.protobuf.Timestamp start_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Task end time.
google.protobuf.Timestamp end_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The detailed execution info.
PipelineTaskExecutorDetail executor_detail = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. State of the task.
State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The execution metadata of the task.
Execution execution = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The error that occurred during task execution.
// Only populated when the task's state is FAILED or CANCELLED.
google.rpc.Status error = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The runtime input artifacts of the task.
map<string, ArtifactList> inputs = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The runtime output artifacts of the task.
map<string, ArtifactList> outputs = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// The runtime detail of a pipeline executor.
message PipelineTaskExecutorDetail {
// The detail of a container execution. It contains the job names of the
// lifecycle of a container execution.
message ContainerDetail {
// Output only. The name of the [CustomJob][google.cloud.aiplatform.v1beta1.CustomJob] for the main container execution.
string main_job = 1 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/CustomJob"
}
];
// Output only. The name of the [CustomJob][google.cloud.aiplatform.v1beta1.CustomJob] for the pre-caching-check container
// execution. This job will be available if the
// [PipelineJob.pipeline_spec][google.cloud.aiplatform.v1beta1.PipelineJob.pipeline_spec] specifies the `pre_caching_check` hook in
// the lifecycle events.
string pre_caching_check_job = 2 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/CustomJob"
}
];
}
// The detailed info for a custom job executor.
message CustomJobDetail {
option deprecated = true;
// Output only. The name of the [CustomJob][google.cloud.aiplatform.v1beta1.CustomJob].
string job = 1 [
(google.api.field_behavior) = OUTPUT_ONLY,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/CustomJob"
}
];
}
oneof details {
// Output only. The detailed info for a container executor.
ContainerDetail container_detail = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The detailed info for a custom job executor.
CustomJobDetail custom_job_detail = 2 [
deprecated = true,
(google.api.field_behavior) = OUTPUT_ONLY
];
}
}

@ -20,6 +20,7 @@ import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/pipeline_job.proto";
import "google/cloud/aiplatform/v1beta1/training_pipeline.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/empty.proto";
@ -90,6 +91,61 @@ service PipelineService {
};
option (google.api.method_signature) = "name";
}
// Creates a PipelineJob. A PipelineJob will run immediately when created.
rpc CreatePipelineJob(CreatePipelineJobRequest) returns (PipelineJob) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs"
body: "pipeline_job"
};
option (google.api.method_signature) = "parent,pipeline_job,pipeline_job_id";
}
// Gets a PipelineJob.
rpc GetPipelineJob(GetPipelineJobRequest) returns (PipelineJob) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}"
};
option (google.api.method_signature) = "name";
}
// Lists PipelineJobs in a Location.
rpc ListPipelineJobs(ListPipelineJobsRequest) returns (ListPipelineJobsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/pipelineJobs"
};
option (google.api.method_signature) = "parent";
}
// Deletes a PipelineJob.
rpc DeletePipelineJob(DeletePipelineJobRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Cancels a PipelineJob.
// Starts asynchronous cancellation on the PipelineJob. The server
// makes a best effort to cancel the pipeline, but success is not
// guaranteed. Clients can use [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob] or
// other methods to check whether the cancellation succeeded or whether the
// pipeline completed despite cancellation. On successful cancellation,
// the PipelineJob is not deleted; instead it becomes a pipeline with
// a [PipelineJob.error][google.cloud.aiplatform.v1beta1.PipelineJob.error] value with a [google.rpc.Status.code][google.rpc.Status.code] of 1,
// corresponding to `Code.CANCELLED`, and [PipelineJob.state][google.cloud.aiplatform.v1beta1.PipelineJob.state] is set to
// `CANCELLED`.
rpc CancelPipelineJob(CancelPipelineJobRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
post: "/v1beta1/{name=projects/*/locations/*/pipelineJobs/*}:cancel"
body: "*"
};
option (google.api.method_signature) = "name";
}
}
// Request message for [PipelineService.CreateTrainingPipeline][google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline].
@ -197,3 +253,108 @@ message CancelTrainingPipelineRequest {
}
];
}
// Request message for [PipelineService.CreatePipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob].
message CreatePipelineJobRequest {
// Required. The resource name of the Location to create the PipelineJob in.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// Required. The PipelineJob to create.
PipelineJob pipeline_job = 2 [(google.api.field_behavior) = REQUIRED];
// The ID to use for the PipelineJob, which will become the final component of
// the PipelineJob name. If not provided, an ID will be automatically
// generated.
//
// This value should be less than 128 characters, and valid characters
// are /[a-z][0-9]-/.
string pipeline_job_id = 3;
}
// Request message for [PipelineService.GetPipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob].
message GetPipelineJobRequest {
// Required. The name of the PipelineJob resource.
// Format:
// `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/PipelineJob"
}
];
}
// Request message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs].
message ListPipelineJobsRequest {
// Required. The resource name of the Location to list the PipelineJobs from.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "locations.googleapis.com/Location"
}
];
// The standard list filter.
// Supported fields:
// * `display_name` supports = and !=.
// * `state` supports = and !=.
//
// Some examples of using the filter are:
// * `state="PIPELINE_STATE_SUCCEEDED" AND display_name="my_pipeline"`
// * `state="PIPELINE_STATE_RUNNING" OR display_name="my_pipeline"`
// * `NOT display_name="my_pipeline"`
// * `state="PIPELINE_STATE_FAILED"`
string filter = 2;
// The standard list page size.
int32 page_size = 3;
// The standard list page token.
// Typically obtained via
// [ListPipelineJobsResponse.next_page_token][google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse.next_page_token] of the previous
// [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs] call.
string page_token = 4;
}
// Response message for [PipelineService.ListPipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs]
message ListPipelineJobsResponse {
// List of PipelineJobs in the requested page.
repeated PipelineJob pipeline_jobs = 1;
// A token to retrieve the next page of results.
// Pass to [ListPipelineJobsRequest.page_token][google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest.page_token] to obtain that page.
string next_page_token = 2;
}
// Request message for [PipelineService.DeletePipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob].
message DeletePipelineJobRequest {
// Required. The name of the PipelineJob resource to be deleted.
// Format:
// `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/PipelineJob"
}
];
}
// Request message for [PipelineService.CancelPipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob].
message CancelPipelineJobRequest {
// Required. The name of the PipelineJob to cancel.
// Format:
// `projects/{project}/locations/{location}/pipelineJobs/{pipeline_job}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/PipelineJob"
}
];
}

@ -135,12 +135,31 @@ message Trial {
// Output only. The final measurement containing the objective value.
Measurement final_measurement = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A list of measurements that are strictly lexicographically
// ordered by their induced tuples (steps, elapsed_duration).
// These are used for early stopping computations.
repeated Measurement measurements = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when the Trial was started.
google.protobuf.Timestamp start_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Time when the Trial's status changed to `SUCCEEDED` or `INFEASIBLE`.
google.protobuf.Timestamp end_time = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The identifier of the client that originally requested this Trial.
// Each client is identified by a unique client_id. When a client
// asks for a suggestion, Vizier will assign it a Trial. The client should
// evaluate the Trial, complete it, and report back to Vizier.
// If suggestion is asked again by same client_id before the Trial is
// completed, the same Trial will be returned. Multiple clients with
// different client_ids can ask for suggestions simultaneously, each of them
// will get their own Trial.
string client_id = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. A human readable string describing why the Trial is
// infeasible. This is set only if Trial state is `INFEASIBLE`.
string infeasible_reason = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The CustomJob name linked to the Trial.
// It's set for a HyperparameterTuningJob's Trial.
string custom_job = 11 [
@ -465,6 +484,9 @@ message Measurement {
double value = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// Output only. Time that the Trial has been running at the point of this Measurement.
google.protobuf.Duration elapsed_duration = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The number of steps the machine learning model has been trained for.
// Must be non-negative.
int64 step_count = 2 [(google.api.field_behavior) = OUTPUT_ONLY];

@ -0,0 +1,84 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/encryption_spec.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Tensorboard is a physical database that stores users training metrics.
// A default Tensorboard is provided in each region of a GCP project.
// If needed users can also create extra Tensorboards in their projects.
message Tensorboard {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/Tensorboard"
pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}"
};
// Output only. Name of the Tensorboard.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. User provided name of this Tensorboard.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Description of this Tensorboard.
string description = 3;
// Customer-managed encryption key spec for a Tensorboard. If set, this
// Tensorboard and all sub-resources of this Tensorboard will be secured by
// this key.
EncryptionSpec encryption_spec = 11;
// Output only. Consumer project Cloud Storage path prefix used to store blob data, which
// can either be a bucket or directory. Does not end with a '/'.
string blob_storage_path_prefix = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The number of Runs stored in this Tensorboard.
int32 run_count = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Tensorboard was created.
google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this Tensorboard was last updated.
google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
// The labels with user-defined metadata to organize your Tensorboards.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Tensorboard
// (System labels are excluded).
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// and are immutable.
map<string, string> labels = 8;
// Used to perform a consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 9;
}

@ -0,0 +1,99 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardDataProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// All the data stored in a TensorboardTimeSeries.
message TimeSeriesData {
// Required. The ID of the TensorboardTimeSeries, which will become the final component
// of the TensorboardTimeSeries' resource name
string tensorboard_time_series_id = 1 [(google.api.field_behavior) = REQUIRED];
// Required. Immutable. The value type of this time series. All the values in this time series data
// must match this value type.
TensorboardTimeSeries.ValueType value_type = 2 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// Required. Data points in this time series.
repeated TimeSeriesDataPoint values = 3 [(google.api.field_behavior) = REQUIRED];
}
// A TensorboardTimeSeries data point.
message TimeSeriesDataPoint {
// Value of this time series data point.
oneof value {
// A scalar value.
Scalar scalar = 3;
// A tensor value.
TensorboardTensor tensor = 4;
// A blob sequence value.
TensorboardBlobSequence blobs = 5;
}
// Wall clock timestamp when this data point is generated by the end user.
google.protobuf.Timestamp wall_time = 1;
// Step index of this data point within the run.
int64 step = 2;
}
// One point viewable on a scalar metric plot.
message Scalar {
// Value of the point at this step / timestamp.
double value = 1;
}
// One point viewable on a tensor metric plot.
message TensorboardTensor {
// Required. Serialized form of
// https://github.com/tensorflow/tensorflow/blob/master/tensorflow/core/framework/tensor.proto
bytes value = 1 [(google.api.field_behavior) = REQUIRED];
// Optional. Version number of TensorProto used to serialize [value][google.cloud.aiplatform.v1beta1.TensorboardTensor.value].
int32 version_number = 2 [(google.api.field_behavior) = OPTIONAL];
}
// One point viewable on a blob metric plot, but mostly just a wrapper message
// to work around repeated fields can't be used directly within `oneof` fields.
message TensorboardBlobSequence {
// List of blobs contained within the sequence.
repeated TensorboardBlob values = 1;
}
// One blob (e.g, image, graph) viewable on a blob metric plot.
message TensorboardBlob {
// Output only. A URI safe key uniquely identifying a blob. Can be used to locate the blob
// stored in the Cloud Storage bucket of the consumer project.
string id = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Optional. The bytes of the blob is not present unless it's returned by the
// ReadTensorboardBlobData endpoint.
bytes data = 2 [(google.api.field_behavior) = OPTIONAL];
}

@ -0,0 +1,76 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardExperimentProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A TensorboardExperiment is a group of TensorboardRuns, that are typically the
// results of a training job run, in a Tensorboard.
message TensorboardExperiment {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/TensorboardExperiment"
pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}"
};
// Output only. Name of the TensorboardExperiment.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// User provided name of this TensorboardExperiment.
string display_name = 2;
// Description of this TensorboardExperiment.
string description = 3;
// Output only. Timestamp when this TensorboardExperiment was created.
google.protobuf.Timestamp create_time = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this TensorboardExperiment was last updated.
google.protobuf.Timestamp update_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// The labels with user-defined metadata to organize your Datasets.
//
// Label keys and values can be no longer than 64 characters
// (Unicode codepoints), can only contain lowercase letters, numeric
// characters, underscores and dashes. International characters are allowed.
// No more than 64 user labels can be associated with one Dataset (System
// labels are excluded).
//
// See https://goo.gl/xmQnxf for more information and examples of labels.
// System reserved label keys are prefixed with "aiplatform.googleapis.com/"
// and are immutable. Following system labels exist for each Dataset:
// * "aiplatform.googleapis.com/dataset_metadata_schema":
// - output only, its value is the
// [metadata_schema's][metadata_schema_uri] title.
map<string, string> labels = 6;
// Used to perform consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 7;
// Immutable. Source of the TensorboardExperiment. Example: a custom training job.
string source = 8 [(google.api.field_behavior) = IMMUTABLE];
}

@ -0,0 +1,61 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardRunProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// TensorboardRun maps to a specific execution of a training job with a given
// set of hyperparameter values, model definition, dataset, etc
message TensorboardRun {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/TensorboardRun"
pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}"
};
// Output only. Name of the TensorboardRun.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. User provided name of this TensorboardRun.
// This value must be unique among all TensorboardRuns
// belonging to the same parent TensorboardExperiment.
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Description of this TensorboardRun.
string description = 3;
// Output only. Timestamp when this TensorboardRun was created.
google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this TensorboardRun was last updated.
google.protobuf.Timestamp update_time = 7 [(google.api.field_behavior) = OUTPUT_ONLY];
map<string, string> labels = 8;
// Used to perform a consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 9;
}

@ -0,0 +1,856 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
import "google/api/client.proto";
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/aiplatform/v1beta1/operation.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard_data.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard_experiment.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard_run.proto";
import "google/cloud/aiplatform/v1beta1/tensorboard_time_series.proto";
import "google/longrunning/operations.proto";
import "google/protobuf/field_mask.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardServiceProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// TensorboardService
service TensorboardService {
option (google.api.default_host) = "aiplatform.googleapis.com";
option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
// Creates a Tensorboard.
rpc CreateTensorboard(CreateTensorboardRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*}/tensorboards"
body: "tensorboard"
};
option (google.api.method_signature) = "parent,tensorboard";
option (google.longrunning.operation_info) = {
response_type: "Tensorboard"
metadata_type: "CreateTensorboardOperationMetadata"
};
}
// Gets a Tensorboard.
rpc GetTensorboard(GetTensorboardRequest) returns (Tensorboard) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}"
};
option (google.api.method_signature) = "name";
}
// Updates a Tensorboard.
rpc UpdateTensorboard(UpdateTensorboardRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
patch: "/v1beta1/{tensorboard.name=projects/*/locations/*/tensorboards/*}"
body: "tensorboard"
};
option (google.api.method_signature) = "tensorboard,update_mask";
option (google.longrunning.operation_info) = {
response_type: "Tensorboard"
metadata_type: "UpdateTensorboardOperationMetadata"
};
}
// Lists Tensorboards in a Location.
rpc ListTensorboards(ListTensorboardsRequest) returns (ListTensorboardsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*}/tensorboards"
};
option (google.api.method_signature) = "parent";
}
// Deletes a Tensorboard.
rpc DeleteTensorboard(DeleteTensorboardRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Creates a TensorboardExperiment.
rpc CreateTensorboardExperiment(CreateTensorboardExperimentRequest) returns (TensorboardExperiment) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments"
body: "tensorboard_experiment"
};
option (google.api.method_signature) = "parent,tensorboard_experiment,tensorboard_experiment_id";
}
// Gets a TensorboardExperiment.
rpc GetTensorboardExperiment(GetTensorboardExperimentRequest) returns (TensorboardExperiment) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}"
};
option (google.api.method_signature) = "name";
}
// Updates a TensorboardExperiment.
rpc UpdateTensorboardExperiment(UpdateTensorboardExperimentRequest) returns (TensorboardExperiment) {
option (google.api.http) = {
patch: "/v1beta1/{tensorboard_experiment.name=projects/*/locations/*/tensorboards/*/experiments/*}"
body: "tensorboard_experiment"
};
option (google.api.method_signature) = "tensorboard_experiment,update_mask";
}
// Lists TensorboardExperiments in a Location.
rpc ListTensorboardExperiments(ListTensorboardExperimentsRequest) returns (ListTensorboardExperimentsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*}/experiments"
};
option (google.api.method_signature) = "parent";
}
// Deletes a TensorboardExperiment.
rpc DeleteTensorboardExperiment(DeleteTensorboardExperimentRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Creates a TensorboardRun.
rpc CreateTensorboardRun(CreateTensorboardRunRequest) returns (TensorboardRun) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs"
body: "tensorboard_run"
};
option (google.api.method_signature) = "parent,tensorboard_run,tensorboard_run_id";
}
// Gets a TensorboardRun.
rpc GetTensorboardRun(GetTensorboardRunRequest) returns (TensorboardRun) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}"
};
option (google.api.method_signature) = "name";
}
// Updates a TensorboardRun.
rpc UpdateTensorboardRun(UpdateTensorboardRunRequest) returns (TensorboardRun) {
option (google.api.http) = {
patch: "/v1beta1/{tensorboard_run.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}"
body: "tensorboard_run"
};
option (google.api.method_signature) = "tensorboard_run,update_mask";
}
// Lists TensorboardRuns in a Location.
rpc ListTensorboardRuns(ListTensorboardRunsRequest) returns (ListTensorboardRunsResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*}/runs"
};
option (google.api.method_signature) = "parent";
}
// Deletes a TensorboardRun.
rpc DeleteTensorboardRun(DeleteTensorboardRunRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Creates a TensorboardTimeSeries.
rpc CreateTensorboardTimeSeries(CreateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) {
option (google.api.http) = {
post: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries"
body: "tensorboard_time_series"
};
option (google.api.method_signature) = "parent,tensorboard_time_series";
}
// Gets a TensorboardTimeSeries.
rpc GetTensorboardTimeSeries(GetTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) {
option (google.api.http) = {
get: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}"
};
option (google.api.method_signature) = "name";
}
// Updates a TensorboardTimeSeries.
rpc UpdateTensorboardTimeSeries(UpdateTensorboardTimeSeriesRequest) returns (TensorboardTimeSeries) {
option (google.api.http) = {
patch: "/v1beta1/{tensorboard_time_series.name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}"
body: "tensorboard_time_series"
};
option (google.api.method_signature) = "tensorboard_time_series,update_mask";
}
// Lists TensorboardTimeSeries in a Location.
rpc ListTensorboardTimeSeries(ListTensorboardTimeSeriesRequest) returns (ListTensorboardTimeSeriesResponse) {
option (google.api.http) = {
get: "/v1beta1/{parent=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}/timeSeries"
};
option (google.api.method_signature) = "parent";
}
// Deletes a TensorboardTimeSeries.
rpc DeleteTensorboardTimeSeries(DeleteTensorboardTimeSeriesRequest) returns (google.longrunning.Operation) {
option (google.api.http) = {
delete: "/v1beta1/{name=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}"
};
option (google.api.method_signature) = "name";
option (google.longrunning.operation_info) = {
response_type: "google.protobuf.Empty"
metadata_type: "DeleteOperationMetadata"
};
}
// Reads a TensorboardTimeSeries' data. Data is returned in paginated
// responses. By default, if the number of data points stored is less than
// 1000, all data will be returned. Otherwise, 1000 data points will be
// randomly selected from this time series and returned. This value can be
// changed by changing max_data_points.
rpc ReadTensorboardTimeSeriesData(ReadTensorboardTimeSeriesDataRequest) returns (ReadTensorboardTimeSeriesDataResponse) {
option (google.api.http) = {
get: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:read"
};
option (google.api.method_signature) = "tensorboard_time_series";
}
// Gets bytes of TensorboardBlobs.
// This is to allow reading blob data stored in consumer project's Cloud
// Storage bucket without users having to obtain Cloud Storage access
// permission.
rpc ReadTensorboardBlobData(ReadTensorboardBlobDataRequest) returns (stream ReadTensorboardBlobDataResponse) {
option (google.api.http) = {
get: "/v1beta1/{time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:readBlobData"
};
option (google.api.method_signature) = "time_series";
}
// Write time series data points into multiple TensorboardTimeSeries under
// a TensorboardRun. If any data fail to be ingested, an error will be
// returned.
rpc WriteTensorboardRunData(WriteTensorboardRunDataRequest) returns (WriteTensorboardRunDataResponse) {
option (google.api.http) = {
post: "/v1beta1/{tensorboard_run=projects/*/locations/*/tensorboards/*/experiments/*/runs/*}:write"
body: "*"
};
option (google.api.method_signature) = "tensorboard_run,time_series_data";
}
// Exports a TensorboardTimeSeries' data. Data is returned in paginated
// responses.
rpc ExportTensorboardTimeSeriesData(ExportTensorboardTimeSeriesDataRequest) returns (ExportTensorboardTimeSeriesDataResponse) {
option (google.api.http) = {
post: "/v1beta1/{tensorboard_time_series=projects/*/locations/*/tensorboards/*/experiments/*/runs/*/timeSeries/*}:exportTensorboardTimeSeries"
body: "*"
};
option (google.api.method_signature) = "tensorboard_time_series";
}
}
// Request message for [TensorboardService.CreateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboard].
message CreateTensorboardRequest {
// Required. The resource name of the Location to create the Tensorboard in.
// Format: `projects/{project}/locations/{location}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Tensorboard"
}
];
// Required. The Tensorboard to create.
Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.GetTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboard].
message GetTensorboardRequest {
// Required. The name of the Tensorboard resource.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Tensorboard"
}
];
}
// Request message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards].
message ListTensorboardsRequest {
// Required. The resource name of the Location to list Tensorboards.
// Format:
// 'projects/{project}/locations/{location}'
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/Tensorboard"
}
];
// Lists the Tensorboards that match the filter expression.
string filter = 2;
// The maximum number of Tensorboards to return. The service may return
// fewer than this value. If unspecified, at most 100 Tensorboards will be
// returned. The maximum value is 100; values above 100 will be coerced to
// 100.
int32 page_size = 3;
// A page token, received from a previous
// [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards] must
// match the call that provided the page token.
string page_token = 4;
// Field to use to sort the list.
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [TensorboardService.ListTensorboards][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboards].
message ListTensorboardsResponse {
// The Tensorboards mathching the request.
repeated Tensorboard tensorboards = 1;
// A token, which can be sent as [ListTensorboardsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardsRequest.page_token]
// to retrieve the next page. If this field is omitted, there are no
// subsequent pages.
string next_page_token = 2;
}
// Request message for [TensorboardService.UpdateTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboard].
message UpdateTensorboardRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// Tensorboard resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten if new
// values are specified.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The Tensorboard's `name` field is used to identify the
// Tensorboard to be updated. Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
Tensorboard tensorboard = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.DeleteTensorboard][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboard].
message DeleteTensorboardRequest {
// Required. The name of the Tensorboard to be deleted.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/Tensorboard"
}
];
}
// Request message for [TensorboardService.CreateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardExperiment].
message CreateTensorboardExperimentRequest {
// Required. The resource name of the Tensorboard to create the TensorboardExperiment
// in. Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardExperiment"
}
];
// The TensorboardExperiment to create.
TensorboardExperiment tensorboard_experiment = 2;
// Required. The ID to use for the Tensorboard experiment, which will become the final
// component of the Tensorboard experiment's resource name.
//
// This value should be 1-128 characters, and valid characters
// are /[a-z][0-9]-/.
string tensorboard_experiment_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.GetTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardExperiment].
message GetTensorboardExperimentRequest {
// Required. The name of the TensorboardExperiment resource.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardExperiment"
}
];
}
// Request message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments].
message ListTensorboardExperimentsRequest {
// Required. The resource name of the Tensorboard to list TensorboardExperiments.
// Format:
// 'projects/{project}/locations/{location}/tensorboards/{tensorboard}'
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/TensorboardExperiment"
}
];
// Lists the TensorboardExperiments that match the filter expression.
string filter = 2;
// The maximum number of TensorboardExperiments to return. The service may
// return fewer than this value. If unspecified, at most 50
// TensorboardExperiments will be returned. The maximum value is 1000; values
// above 1000 will be coerced to 1000.
int32 page_size = 3;
// A page token, received from a previous
// [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments] must
// match the call that provided the page token.
string page_token = 4;
// Field to use to sort the list.
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [TensorboardService.ListTensorboardExperiments][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardExperiments].
message ListTensorboardExperimentsResponse {
// The TensorboardExperiments mathching the request.
repeated TensorboardExperiment tensorboard_experiments = 1;
// A token, which can be sent as
// [ListTensorboardExperimentsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardExperimentsRequest.page_token] to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [TensorboardService.UpdateTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardExperiment].
message UpdateTensorboardExperimentRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// TensorboardExperiment resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten if new
// values are specified.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The TensorboardExperiment's `name` field is used to identify the
// TensorboardExperiment to be updated. Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`
TensorboardExperiment tensorboard_experiment = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.DeleteTensorboardExperiment][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardExperiment].
message DeleteTensorboardExperimentRequest {
// Required. The name of the TensorboardExperiment to be deleted.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardExperiment"
}
];
}
// Request message for [TensorboardService.CreateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardRun].
message CreateTensorboardRunRequest {
// Required. The resource name of the Tensorboard to create the TensorboardRun in.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardRun"
}
];
// Required. The TensorboardRun to create.
TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED];
// Required. The ID to use for the Tensorboard run, which will become the final
// component of the Tensorboard run's resource name.
//
// This value should be 1-128 characters, and valid characters
// are /[a-z][0-9]-/.
string tensorboard_run_id = 3 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.GetTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardRun].
message GetTensorboardRunRequest {
// Required. The name of the TensorboardRun resource.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardRun"
}
];
}
// Request message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData].
message ReadTensorboardBlobDataRequest {
// Required. The resource name of the TensorboardTimeSeries to list Blobs.
// Format:
// 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}'
string time_series = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
// IDs of the blobs to read.
repeated string blob_ids = 2;
}
// Response message for [TensorboardService.ReadTensorboardBlobData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardBlobData].
message ReadTensorboardBlobDataResponse {
// Blob messages containing blob bytes.
repeated TensorboardBlob blobs = 1;
}
// Request message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns].
message ListTensorboardRunsRequest {
// Required. The resource name of the Tensorboard to list TensorboardRuns.
// Format:
// 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}'
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/TensorboardRun"
}
];
// Lists the TensorboardRuns that match the filter expression.
string filter = 2;
// The maximum number of TensorboardRuns to return. The service may return
// fewer than this value. If unspecified, at most 50 TensorboardRuns will be
// returned. The maximum value is 1000; values above 1000 will be coerced to
// 1000.
int32 page_size = 3;
// A page token, received from a previous
// [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns] must
// match the call that provided the page token.
string page_token = 4;
// Field to use to sort the list.
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [TensorboardService.ListTensorboardRuns][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardRuns].
message ListTensorboardRunsResponse {
// The TensorboardRuns mathching the request.
repeated TensorboardRun tensorboard_runs = 1;
// A token, which can be sent as [ListTensorboardRunsRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardRunsRequest.page_token] to
// retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [TensorboardService.UpdateTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardRun].
message UpdateTensorboardRunRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// TensorboardRun resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten if new
// values are specified.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The TensorboardRun's `name` field is used to identify the TensorboardRun to
// be updated. Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
TensorboardRun tensorboard_run = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.DeleteTensorboardRun][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardRun].
message DeleteTensorboardRunRequest {
// Required. The name of the TensorboardRun to be deleted.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardRun"
}
];
}
// Request message for [TensorboardService.CreateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.CreateTensorboardTimeSeries].
message CreateTensorboardTimeSeriesRequest {
// Required. The resource name of the TensorboardRun to create the
// TensorboardTimeSeries in.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
// Optional. The user specified unique ID to use for the TensorboardTimeSeries, which
// will become the final component of the TensorboardTimeSeries's resource
// name. Ref: go/ucaip-user-specified-id
//
// This value should match "[a-z0-9][a-z0-9-]{0, 127}"
string tensorboard_time_series_id = 3 [(google.api.field_behavior) = OPTIONAL];
// Required. The TensorboardTimeSeries to create.
TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.GetTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.GetTensorboardTimeSeries].
message GetTensorboardTimeSeriesRequest {
// Required. The name of the TensorboardTimeSeries resource.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
}
// Request message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries].
message ListTensorboardTimeSeriesRequest {
// Required. The resource name of the TensorboardRun to list TensorboardTimeSeries.
// Format:
// 'projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}'
string parent = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
child_type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
// Lists the TensorboardTimeSeries that match the filter expression.
string filter = 2;
// The maximum number of TensorboardTimeSeries to return. The service may
// return fewer than this value. If unspecified, at most 50
// TensorboardTimeSeries will be returned. The maximum value is 1000; values
// above 1000 will be coerced to 1000.
int32 page_size = 3;
// A page token, received from a previous
// [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries] must
// match the call that provided the page token.
string page_token = 4;
// Field to use to sort the list.
string order_by = 5;
// Mask specifying which fields to read.
google.protobuf.FieldMask read_mask = 6;
}
// Response message for [TensorboardService.ListTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.ListTensorboardTimeSeries].
message ListTensorboardTimeSeriesResponse {
// The TensorboardTimeSeries mathching the request.
repeated TensorboardTimeSeries tensorboard_time_series = 1;
// A token, which can be sent as
// [ListTensorboardTimeSeriesRequest.page_token][google.cloud.aiplatform.v1beta1.ListTensorboardTimeSeriesRequest.page_token] to retrieve the next page.
// If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Request message for [TensorboardService.UpdateTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.UpdateTensorboardTimeSeries].
message UpdateTensorboardTimeSeriesRequest {
// Required. Field mask is used to specify the fields to be overwritten in the
// TensorboardTimeSeries resource by the update.
// The fields specified in the update_mask are relative to the resource, not
// the full request. A field will be overwritten if it is in the mask. If the
// user does not provide a mask then all fields will be overwritten if new
// values are specified.
google.protobuf.FieldMask update_mask = 1 [(google.api.field_behavior) = REQUIRED];
// Required. The TensorboardTimeSeries' `name` field is used to identify the
// TensorboardTimeSeries to be updated.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`
TensorboardTimeSeries tensorboard_time_series = 2 [(google.api.field_behavior) = REQUIRED];
}
// Request message for [TensorboardService.DeleteTensorboardTimeSeries][google.cloud.aiplatform.v1beta1.TensorboardService.DeleteTensorboardTimeSeries].
message DeleteTensorboardTimeSeriesRequest {
// Required. The name of the TensorboardTimeSeries to be deleted.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`
string name = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
}
// Request message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData].
message ReadTensorboardTimeSeriesDataRequest {
// Required. The resource name of the TensorboardTimeSeries to read data from.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`
string tensorboard_time_series = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
// The maximum number of TensorboardTimeSeries' data to return.
//
// This value should be a positive integer.
// This value can be set to -1 to return all data.
int32 max_data_points = 2;
// Reads the TensorboardTimeSeries' data that match the filter expression.
string filter = 3;
}
// Response message for [TensorboardService.ReadTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ReadTensorboardTimeSeriesData].
message ReadTensorboardTimeSeriesDataResponse {
// The returned time series data.
TimeSeriesData time_series_data = 1;
}
// Request message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData].
message WriteTensorboardRunDataRequest {
// Required. The resource name of the TensorboardRun to write data to.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}`
string tensorboard_run = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardRun"
}
];
// Required. The TensorboardTimeSeries data to write.
// Values with in a time series are indexed by their step value.
// Repeated writes to the same step will overwrite the existing value for that
// step.
// The upper limit of data points per write request is 5000.
repeated TimeSeriesData time_series_data = 2 [(google.api.field_behavior) = REQUIRED];
}
// Response message for [TensorboardService.WriteTensorboardRunData][google.cloud.aiplatform.v1beta1.TensorboardService.WriteTensorboardRunData].
message WriteTensorboardRunDataResponse {
}
// Request message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData].
message ExportTensorboardTimeSeriesDataRequest {
// Required. The resource name of the TensorboardTimeSeries to export data from.
// Format:
// `projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}`
string tensorboard_time_series = 1 [
(google.api.field_behavior) = REQUIRED,
(google.api.resource_reference) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
}
];
// Exports the TensorboardTimeSeries' data that match the filter expression.
string filter = 2;
// The maximum number of data points to return per page.
// The default page_size will be 1000. Values must be between 1 and 10000.
// Values above 10000 will be coerced to 10000.
int32 page_size = 3;
// A page token, received from a previous
// [TensorboardService.ExportTensorboardTimeSeries][] call.
// Provide this to retrieve the subsequent page.
//
// When paginating, all other parameters provided to
// [TensorboardService.ExportTensorboardTimeSeries][] must
// match the call that provided the page token.
string page_token = 4;
// Field to use to sort the TensorboardTimeSeries' data.
// By default, TensorboardTimeSeries' data will be returned in a pseudo random
// order.
string order_by = 5;
}
// Response message for [TensorboardService.ExportTensorboardTimeSeriesData][google.cloud.aiplatform.v1beta1.TensorboardService.ExportTensorboardTimeSeriesData].
message ExportTensorboardTimeSeriesDataResponse {
// The returned time series data points.
repeated TimeSeriesDataPoint time_series_data_points = 1;
// A token, which can be sent as
// [ExportTensorboardTimeSeriesRequest.page_token][] to retrieve the next
// page. If this field is omitted, there are no subsequent pages.
string next_page_token = 2;
}
// Details of operations that perform create Tensorboard.
message CreateTensorboardOperationMetadata {
// Operation metadata for Tensorboard.
GenericOperationMetadata generic_metadata = 1;
}
// Details of operations that perform update Tensorboard.
message UpdateTensorboardOperationMetadata {
// Operation metadata for Tensorboard.
GenericOperationMetadata generic_metadata = 1;
}

@ -0,0 +1,104 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/protobuf/timestamp.proto";
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TensorboardTimeSeriesProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// TensorboardTimeSeries maps to times series produced in training runs
message TensorboardTimeSeries {
option (google.api.resource) = {
type: "aiplatform.googleapis.com/TensorboardTimeSeries"
pattern: "projects/{project}/locations/{location}/tensorboards/{tensorboard}/experiments/{experiment}/runs/{run}/timeSeries/{time_series}"
};
// Describes metadata for a TensorboardTimeSeries.
message Metadata {
// Output only. Max step index of all data points within a TensorboardTimeSeries.
int64 max_step = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Max wall clock timestamp of all data points within a
// TensorboardTimeSeries.
google.protobuf.Timestamp max_wall_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The largest blob sequence length (number of blobs) of all data points in
// this time series, if its ValueType is BLOB_SEQUENCE.
int64 max_blob_sequence_length = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
}
// An enum representing the value type of a TensorboardTimeSeries.
enum ValueType {
// The value type is unspecified.
VALUE_TYPE_UNSPECIFIED = 0;
// Used for TensorboardTimeSeries that is a list of scalars.
// E.g. accuracy of a model over epochs/time.
SCALAR = 1;
// Used for TensorboardTimeSeries that is a list of tensors.
// E.g. histograms of weights of layer in a model over epoch/time.
TENSOR = 2;
// Used for TensorboardTimeSeries that is a list of blob sequences.
// E.g. set of sample images with labels over epochs/time.
BLOB_SEQUENCE = 3;
}
// Output only. Name of the TensorboardTimeSeries.
string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
// Required. User provided name of this TensorboardTimeSeries.
// This value should be unique among all TensorboardTimeSeries resources
// belonging to the same TensorboardRun resource (parent resource).
string display_name = 2 [(google.api.field_behavior) = REQUIRED];
// Description of this TensorboardTimeSeries.
string description = 3;
// Required. Immutable. Type of TensorboardTimeSeries value.
ValueType value_type = 4 [
(google.api.field_behavior) = REQUIRED,
(google.api.field_behavior) = IMMUTABLE
];
// Output only. Timestamp when this TensorboardTimeSeries was created.
google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. Timestamp when this TensorboardTimeSeries was last updated.
google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY];
// Used to perform a consistent read-modify-write updates. If not set, a blind
// "overwrite" update happens.
string etag = 7;
// Immutable. Name of the plugin this time series pertain to. Such as Scalar, Tensor,
// Blob
string plugin_name = 8 [(google.api.field_behavior) = IMMUTABLE];
// Data of the current plugin, with the size limited to 65KB.
bytes plugin_data = 9;
// Output only. Scalar, Tensor, or Blob metadata for this TensorboardTimeSeries.
Metadata metadata = 10 [(google.api.field_behavior) = OUTPUT_ONLY];
}

@ -0,0 +1,48 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "TypesProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// A list of boolean values.
message BoolArray {
// A list of bool values.
repeated bool values = 1;
}
// A list of double values.
message DoubleArray {
// A list of bool values.
repeated double values = 1;
}
// A list of int64 values.
message Int64Array {
// A list of int64 values.
repeated int64 values = 1;
}
// A list of string values.
message StringArray {
// A list of string values.
repeated string values = 1;
}

@ -40,7 +40,7 @@ message UserActionReference {
string data_labeling_job = 2;
}
// The method name of the API call. For example,
// "/google.cloud.aiplatform.v1alpha1.DatasetService.CreateDataset"
// The method name of the API RPC call. For example,
// "/google.cloud.aiplatform.{apiVersion}.DatasetService.CreateDataset"
string method = 3;
}

@ -0,0 +1,38 @@
// Copyright 2021 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.aiplatform.v1beta1;
import "google/api/annotations.proto";
option go_package = "google.golang.org/genproto/googleapis/cloud/aiplatform/v1beta1;aiplatform";
option java_multiple_files = true;
option java_outer_classname = "ValueProto";
option java_package = "com.google.cloud.aiplatform.v1beta1";
// Value is the value of the field.
message Value {
oneof value {
// An integer value.
int64 int_value = 1;
// A double value.
double double_value = 2;
// A string value.
string string_value = 3;
}
}
Loading…
Cancel
Save