From f2b5cbb35da5a4eca937a1441b6a0f1b147e072b Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 15:30:16 +0000 Subject: [PATCH] feat(aiplatform): add ComputeTokens API (#8999) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 582473450 Source-Link: https://togithub.com/googleapis/googleapis/commit/a9e4e72e32b550a5451030feae99d1602ee40e0d Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/56ea7e1c067eed56256ba6310f44d6b94c67748a Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNTZlYTdlMWMwNjdlZWQ1NjI1NmJhNjMxMGY0NGQ2Yjk0YzY3NzQ4YSJ9 BEGIN_NESTED_COMMIT feat(filestore): Added REGIONAL tier support in the v1 API PiperOrigin-RevId: 582440290 Source-Link: https://togithub.com/googleapis/googleapis/commit/d30f933277432525fbcff1a33ebede1baa53f684 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/7872d2e759a679b8b35f93991abb6120102c9095 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNzg3MmQyZTc1OWE2NzliOGIzNWY5Mzk5MWFiYjYxMjAxMDJjOTA5NSJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(aiplatform): add deployment_timeout to UploadModel ModelContainerSpec feat: add shared_memory_size_mb to UploadModel ModelContainerSpec feat: add startup_probe, health_probe to UploadModel ModelContainerSpec PiperOrigin-RevId: 582390619 Source-Link: https://togithub.com/googleapis/googleapis/commit/49c44ef1f0959f7d5c44a88357b18a9a057c580b Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/7a1c0d15b82e062678a516d18551c67c1b0176aa Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiN2ExYzBkMTViODJlMDYyNjc4YTUxNmQxODU1MWM2N2MxYjAxNzZhYSJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(aiplatform): add deployment_timeout to UploadModel ModelContainerSpec feat: add shared_memory_size_mb to UploadModel ModelContainerSpec feat: add startup_probe, health_probe to UploadModel ModelContainerSpec PiperOrigin-RevId: 582381401 Source-Link: https://togithub.com/googleapis/googleapis/commit/92d962d3814b061a905437e05ea1e249f7a30c4d Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/c19c7a7fa3eac85508a2fe0afe177d76f510fcaf Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzE5YzdhN2ZhM2VhYzg1NTA4YTJmZTBhZmUxNzdkNzZmNTEwZmNhZiJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(aiplatform): add ComputeTokens and CountTokens API PiperOrigin-RevId: 582364082 Source-Link: https://togithub.com/googleapis/googleapis/commit/fdea53f759cb7a8e6167af8740ca9cfc850bfae9 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/295f8eab2a87743dccc65b88e73d71f480323023 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMjk1ZjhlYWIyYTg3NzQzZGNjYzY1Yjg4ZTczZDcxZjQ4MDMyMzAyMyJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT build(edgenetwork): Change language namespaces PiperOrigin-RevId: 582128758 Source-Link: https://togithub.com/googleapis/googleapis/commit/42350d80ea61393754b2b09a6f86530334a236e8 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/db41eec629647d7927f2c1de8ddb9cd30586d1bb Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZGI0MWVlYzYyOTY0N2Q3OTI3ZjJjMWRlOGRkYjljZDMwNTg2ZDFiYiJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(aiplatform): add protected_artifact_location_id to CustomJob feat: add value_type, version_column_name to Feature feat: add FeatureGroup, FeatureOnlineStore, FeatureOnlineStoreAdminService, FeatureOnlineStoreService, FeatureRegistryService, FeatureView, FeatureViewSync feat: add NumericRestriction to Index feat: add tpu_topology to MachineSpec chore: change DeleteOperationMetadata to DeleteModelVersionOperationMetadata in ModelService feat: add CountTokensRequest to PredictionService feat: add StudyTimeConstraint to Study PiperOrigin-RevId: 581306827 Source-Link: https://togithub.com/googleapis/googleapis/commit/01af66acc8111ec1e4d6831e31952dabe530c694 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/842299dec7a7f5d7622b2a918aaa1888812d80dc Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiODQyMjk5ZGVjN2E3ZjVkNzYyMmIyYTkxOGFhYTE4ODg4MTJkODBkYyJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(aiplatform): add protected_artifact_location_id to CustomJob chore: add comment fixes to Feature and FeaturestoreService feat!: add FeatureViewDataFormat, FeatureViewDataKey to FeatureOnlineStoreService feat: add NumericRestriction to Index feat: add tpu_topology to MachineResources feat: add BatchDeletePipelineJobs, BatchDeletePipelineJobsRequest and BatchDeletePipelineJobsResponse to PipelineService feat: add StudyTimeConstraint to Study PiperOrigin-RevId: 581306075 Source-Link: https://togithub.com/googleapis/googleapis/commit/7603960c7cf66ab44c4c3c75156f25dbceffc3f1 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/9d03dc661bc2b672029b6cc640a4d7f3561466e7 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOWQwM2RjNjYxYmMyYjY3MjAyOWI2Y2M2NDBhNGQ3ZjM1NjE0NjZlNyJ9 END_NESTED_COMMIT BEGIN_NESTED_COMMIT feat(confidentialcomputing): Add a new field `token_type` to `TokenOptions` message proto chore: remove backend configuration from the service config PiperOrigin-RevId: 581042395 Source-Link: https://togithub.com/googleapis/googleapis/commit/2a4cbb9766ba13cd435d47ac91af4138d4821d22 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/a8d92b254cf89d1c310ae58167fdd1fd3d1d4d03 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYThkOTJiMjU0Y2Y4OWQxYzMxMGFlNTgxNjdmZGQxZmQzZDFkNGQwMyJ9 END_NESTED_COMMIT --- .../apiv1/aiplatformpb/custom_job.pb.go | 213 +- aiplatform/apiv1/aiplatformpb/feature.pb.go | 218 +- .../apiv1/aiplatformpb/feature_group.pb.go | 403 ++ .../aiplatformpb/feature_online_store.pb.go | 552 ++ .../feature_online_store_admin_service.pb.go | 2840 ++++++++ .../feature_online_store_service.pb.go | 788 ++ .../feature_registry_service.pb.go | 1622 +++++ .../apiv1/aiplatformpb/feature_view.pb.go | 645 ++ .../aiplatformpb/feature_view_sync.pb.go | 249 + .../aiplatformpb/featurestore_service.pb.go | 39 +- aiplatform/apiv1/aiplatformpb/index.pb.go | 388 +- .../apiv1/aiplatformpb/index_endpoint.pb.go | 9 +- .../aiplatformpb/llm_utility_service.pb.go | 531 ++ .../aiplatformpb/machine_resources.pb.go | 181 +- aiplatform/apiv1/aiplatformpb/model.pb.go | 391 +- .../aiplatformpb/prediction_service.pb.go | 234 +- aiplatform/apiv1/aiplatformpb/study.pb.go | 1217 ++-- aiplatform/apiv1/auxiliary.go | 915 ++- .../feature_online_store_admin_client.go | 1051 +++ ..._online_store_admin_client_example_test.go | 672 ++ .../apiv1/feature_online_store_client.go | 523 ++ ...eature_online_store_client_example_test.go | 328 + aiplatform/apiv1/feature_registry_client.go | 944 +++ .../feature_registry_client_example_test.go | 591 ++ aiplatform/apiv1/gapic_metadata.json | 366 + aiplatform/apiv1/llm_utility_client.go | 553 ++ .../apiv1/llm_utility_client_example_test.go | 353 + .../apiv1beta1/aiplatformpb/custom_job.pb.go | 223 +- .../apiv1beta1/aiplatformpb/feature.pb.go | 55 +- .../aiplatformpb/feature_online_store.pb.go | 2 +- .../feature_online_store_service.pb.go | 678 +- .../aiplatformpb/featurestore_service.pb.go | 18 +- .../apiv1beta1/aiplatformpb/index.pb.go | 395 +- .../aiplatformpb/index_endpoint.pb.go | 9 +- .../aiplatformpb/llm_utility_service.pb.go | 470 ++ .../aiplatformpb/machine_resources.pb.go | 184 +- .../apiv1beta1/aiplatformpb/model.pb.go | 397 +- .../aiplatformpb/pipeline_service.pb.go | 642 +- .../aiplatformpb/prediction_service.pb.go | 2 +- .../apiv1beta1/aiplatformpb/study.pb.go | 1318 ++-- aiplatform/apiv1beta1/auxiliary.go | 64 + aiplatform/apiv1beta1/gapic_metadata.json | 134 + aiplatform/apiv1beta1/llm_utility_client.go | 1304 ++++ .../llm_utility_client_example_test.go | 345 + aiplatform/apiv1beta1/pipeline_client.go | 223 +- .../pipeline_client_example_test.go | 30 + .../confidentialcomputingpb/service.pb.go | 397 +- .../apiv1/edgenetworkpb/resources.pb.go | 22 +- edgenetwork/apiv1/edgenetworkpb/service.pb.go | 22 +- filestore/apiv1/auxiliary.go | 160 + .../apiv1/cloud_filestore_manager_client.go | 783 +- ...d_filestore_manager_client_example_test.go | 190 + .../filestorepb/cloud_filestore_service.pb.go | 1497 ++-- filestore/apiv1/gapic_metadata.json | 70 + .../CancelOperation/main.go | 51 + .../CreateFeatureOnlineStore/main.go | 58 + .../CreateFeatureView/main.go | 58 + .../DeleteFeatureOnlineStore/main.go | 56 + .../DeleteFeatureView/main.go | 56 + .../DeleteOperation/main.go | 51 + .../GetFeatureOnlineStore/main.go | 53 + .../GetFeatureView/main.go | 53 + .../GetFeatureViewSync/main.go | 53 + .../GetIamPolicy/main.go | 53 + .../GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../ListFeatureOnlineStores/main.go | 60 + .../ListFeatureViewSyncs/main.go | 60 + .../ListFeatureViews/main.go | 60 + .../ListLocations/main.go | 60 + .../ListOperations/main.go | 60 + .../SetIamPolicy/main.go | 53 + .../SyncFeatureView/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../UpdateFeatureOnlineStore/main.go | 58 + .../UpdateFeatureView/main.go | 58 + .../WaitOperation/main.go | 53 + .../CancelOperation/main.go | 51 + .../DeleteOperation/main.go | 51 + .../FetchFeatureValues/main.go | 53 + .../GetIamPolicy/main.go | 53 + .../GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../ListLocations/main.go | 60 + .../ListOperations/main.go | 60 + .../SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../WaitOperation/main.go | 53 + .../CancelOperation/main.go | 51 + .../CreateFeature/main.go | 58 + .../CreateFeatureGroup/main.go | 58 + .../DeleteFeature/main.go | 56 + .../DeleteFeatureGroup/main.go | 56 + .../DeleteOperation/main.go | 51 + .../FeatureRegistryClient/GetFeature/main.go | 53 + .../GetFeatureGroup/main.go | 53 + .../GetIamPolicy/main.go | 53 + .../FeatureRegistryClient/GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../ListFeatureGroups/main.go | 60 + .../ListFeatures/main.go | 60 + .../ListLocations/main.go | 60 + .../ListOperations/main.go | 60 + .../SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../UpdateFeature/main.go | 58 + .../UpdateFeatureGroup/main.go | 58 + .../WaitOperation/main.go | 53 + .../LlmUtilityClient/CancelOperation/main.go | 51 + .../LlmUtilityClient/ComputeTokens/main.go | 53 + .../LlmUtilityClient/CountTokens/main.go | 53 + .../LlmUtilityClient/DeleteOperation/main.go | 51 + .../LlmUtilityClient/GetIamPolicy/main.go | 53 + .../LlmUtilityClient/GetLocation/main.go | 53 + .../LlmUtilityClient/GetOperation/main.go | 53 + .../LlmUtilityClient/ListLocations/main.go | 60 + .../LlmUtilityClient/ListOperations/main.go | 60 + .../LlmUtilityClient/SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../LlmUtilityClient/WaitOperation/main.go | 53 + ...t_metadata.google.cloud.aiplatform.v1.json | 6350 ++++++++++++----- .../LlmUtilityClient/CancelOperation/main.go | 51 + .../LlmUtilityClient/ComputeTokens/main.go | 53 + .../LlmUtilityClient/DeleteOperation/main.go | 51 + .../LlmUtilityClient/GetIamPolicy/main.go | 53 + .../LlmUtilityClient/GetLocation/main.go | 53 + .../LlmUtilityClient/GetOperation/main.go | 53 + .../LlmUtilityClient/ListLocations/main.go | 60 + .../LlmUtilityClient/ListOperations/main.go | 60 + .../LlmUtilityClient/SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../LlmUtilityClient/WaitOperation/main.go | 53 + .../BatchDeletePipelineJobs/main.go | 58 + ...adata.google.cloud.aiplatform.v1beta1.json | 552 +- ...ppet_metadata.google.cloud.alloydb.v1.json | 2 +- ...metadata.google.cloud.alloydb.v1alpha.json | 2 +- ..._metadata.google.cloud.alloydb.v1beta.json | 2 +- ...etadata.google.devtools.cloudbuild.v1.json | 2 +- ...etadata.google.devtools.cloudbuild.v2.json | 2 +- ...google.cloud.contactcenterinsights.v1.json | 2 +- .../snippet_metadata.google.container.v1.json | 2 +- ..._metadata.google.cloud.datacatalog.v1.json | 2 +- ...data.google.cloud.datacatalog.v1beta1.json | 2 +- ...a.google.cloud.datacatalog.lineage.v1.json | 2 +- ...pet_metadata.google.cloud.dataplex.v1.json | 2 +- ...pet_metadata.google.cloud.dataproc.v1.json | 2 +- ...ippet_metadata.google.cloud.deploy.v1.json | 2 +- ..._metadata.google.cloud.edgenetwork.v1.json | 2 +- .../CancelOperation/main.go | 51 + .../DeleteOperation/main.go | 51 + .../GetLocation/main.go | 53 + .../GetOperation/main.go | 53 + .../ListLocations/main.go | 60 + .../ListOperations/main.go | 60 + .../RevertInstance/main.go | 58 + ...et_metadata.google.cloud.filestore.v1.json | 320 + ...et_metadata.google.cloud.scheduler.v1.json | 2 +- ...tadata.google.cloud.scheduler.v1beta1.json | 2 +- ...ippet_metadata.google.cloud.speech.v1.json | 2 +- ...etadata.google.cloud.speech.v1p1beta1.json | 2 +- ...ippet_metadata.google.cloud.speech.v2.json | 2 +- 161 files changed, 33502 insertions(+), 4870 deletions(-) create mode 100755 aiplatform/apiv1/aiplatformpb/feature_group.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_online_store.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_online_store_admin_service.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_online_store_service.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_registry_service.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_view.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/feature_view_sync.pb.go create mode 100755 aiplatform/apiv1/aiplatformpb/llm_utility_service.pb.go create mode 100755 aiplatform/apiv1/feature_online_store_admin_client.go create mode 100644 aiplatform/apiv1/feature_online_store_admin_client_example_test.go create mode 100755 aiplatform/apiv1/feature_online_store_client.go create mode 100644 aiplatform/apiv1/feature_online_store_client_example_test.go create mode 100755 aiplatform/apiv1/feature_registry_client.go create mode 100644 aiplatform/apiv1/feature_registry_client_example_test.go create mode 100755 aiplatform/apiv1/llm_utility_client.go create mode 100644 aiplatform/apiv1/llm_utility_client_example_test.go create mode 100755 aiplatform/apiv1beta1/aiplatformpb/llm_utility_service.pb.go create mode 100755 aiplatform/apiv1beta1/llm_utility_client.go create mode 100644 aiplatform/apiv1beta1/llm_utility_client_example_test.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureOnlineStore/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureView/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureOnlineStore/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureView/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureOnlineStore/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureView/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureViewSync/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetLocation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureOnlineStores/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViewSyncs/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViews/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListLocations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListOperations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SyncFeatureView/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureOnlineStore/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureView/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/WaitOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/FetchFeatureValues/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetLocation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListLocations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListOperations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/WaitOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeature/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeatureGroup/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeature/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeatureGroup/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeature/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeatureGroup/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetLocation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatureGroups/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatures/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListLocations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListOperations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeature/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeatureGroup/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/WaitOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ComputeTokens/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CountTokens/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetLocation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListLocations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListOperations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/WaitOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ComputeTokens/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetLocation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListLocations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListOperations/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/WaitOperation/main.go create mode 100644 internal/generated/snippets/aiplatform/apiv1beta1/PipelineClient/BatchDeletePipelineJobs/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetLocation/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetOperation/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListLocations/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListOperations/main.go create mode 100644 internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/RevertInstance/main.go diff --git a/aiplatform/apiv1/aiplatformpb/custom_job.pb.go b/aiplatform/apiv1/aiplatformpb/custom_job.pb.go index 9282f7f04372..0f2508778c15 100755 --- a/aiplatform/apiv1/aiplatformpb/custom_job.pb.go +++ b/aiplatform/apiv1/aiplatformpb/custom_job.pb.go @@ -277,6 +277,11 @@ type CustomJobSpec struct { // * AIP_CHECKPOINT_DIR = `//checkpoints/` // * AIP_TENSORBOARD_LOG_DIR = `//logs/` BaseOutputDirectory *GcsDestination `protobuf:"bytes,6,opt,name=base_output_directory,json=baseOutputDirectory,proto3" json:"base_output_directory,omitempty"` + // The ID of the location to store protected artifacts. e.g. us-central1. + // Populate only when the location is different than CustomJob location. + // List of supported locations: + // https://cloud.google.com/vertex-ai/docs/general/locations + ProtectedArtifactLocationId string `protobuf:"bytes,19,opt,name=protected_artifact_location_id,json=protectedArtifactLocationId,proto3" json:"protected_artifact_location_id,omitempty"` // Optional. The name of a Vertex AI // [Tensorboard][google.cloud.aiplatform.v1.Tensorboard] resource to which // this CustomJob will upload Tensorboard logs. Format: @@ -389,6 +394,13 @@ func (x *CustomJobSpec) GetBaseOutputDirectory() *GcsDestination { return nil } +func (x *CustomJobSpec) GetProtectedArtifactLocationId() string { + if x != nil { + return x.ProtectedArtifactLocationId + } + return "" +} + func (x *CustomJobSpec) GetTensorboard() string { if x != nil { return x.Tensorboard @@ -882,7 +894,7 @@ var file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc = []byte{ 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0x8e, 0x06, 0x0a, 0x0d, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0xd3, 0x06, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5b, 0x0a, 0x11, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, @@ -909,107 +921,112 @@ var file_google_cloud_aiplatform_v1_custom_job_proto_rawDesc = []byte{ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x4f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4f, - 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, - 0x72, 0x64, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, - 0x2f, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x3b, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x73, 0x68, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, - 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, - 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x65, 0x78, - 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x65, - 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x78, 0x70, - 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x22, 0xd8, 0x03, 0x0a, 0x0e, 0x57, - 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x52, 0x0a, - 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x5f, 0x0a, 0x13, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x79, 0x74, 0x68, - 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, - 0x11, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x48, 0x0a, 0x0a, 0x6e, 0x66, 0x73, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x09, 0x6e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x69, - 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, + 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, + 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, + 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, + 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x73, + 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, + 0x6f, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, + 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, + 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x22, + 0xd8, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x52, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x5f, 0x0a, 0x13, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, + 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x11, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, + 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x53, - 0x70, 0x65, 0x63, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x95, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0xe2, 0x01, - 0x0a, 0x11, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x0a, 0x6e, 0x66, 0x73, 0x5f, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x6e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, + 0x41, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x95, 0x01, 0x0a, 0x0d, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, - 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x28, - 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x79, 0x74, 0x68, - 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x03, - 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x03, + 0x65, 0x6e, 0x76, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, - 0x6e, 0x76, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, - 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x40, 0x0a, 0x1d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, - 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x4f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, - 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0xcc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, - 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, - 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, - 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x76, 0x22, 0xe2, 0x01, 0x0a, 0x11, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x6f, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x70, + 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, + 0x72, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0c, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, + 0x73, 0x12, 0x34, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, + 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x40, 0x0a, 0x1d, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, + 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x19, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x4f, 0x6e, + 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, + 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0xcc, 0x01, 0x0a, 0x1e, + 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/aiplatform/apiv1/aiplatformpb/feature.pb.go b/aiplatform/apiv1/aiplatformpb/feature.pb.go index 1e068787d3e0..e6e74f43bc8a 100755 --- a/aiplatform/apiv1/aiplatformpb/feature.pb.go +++ b/aiplatform/apiv1/aiplatformpb/feature.pb.go @@ -37,6 +37,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Only applicable for Vertex AI Legacy Feature Store. // An enum representing the value type of a feature. type Feature_ValueType int32 @@ -174,9 +175,8 @@ func (Feature_MonitoringStatsAnomaly_Objective) EnumDescriptor() ([]byte, []int) return file_google_cloud_aiplatform_v1_feature_proto_rawDescGZIP(), []int{0, 0, 0} } -// Feature Metadata information that describes an attribute of an entity type. -// For example, apple is an entity type, and color is a feature that describes -// apple. +// Feature Metadata information. +// For example, color is a feature that describes an apple. type Feature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -185,6 +185,7 @@ type Feature struct { // Immutable. Name of the Feature. // Format: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` + // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` // // The last part feature is assigned by the client. The feature can be up to // 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, @@ -193,11 +194,14 @@ type Feature struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Description of the Feature. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - // Required. Immutable. Type of Feature value. + // Immutable. Only applicable for Vertex AI Feature Store (Legacy). + // Type of Feature value. ValueType Feature_ValueType `protobuf:"varint,3,opt,name=value_type,json=valueType,proto3,enum=google.cloud.aiplatform.v1.Feature_ValueType" json:"value_type,omitempty"` - // Output only. Timestamp when this EntityType was created. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // Timestamp when this EntityType was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` - // Output only. Timestamp when this EntityType was most recently updated. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // Timestamp when this EntityType was most recently updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Optional. The labels with user-defined metadata to organize your Features. // @@ -214,17 +218,23 @@ type Feature struct { // Used to perform a consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` - // Optional. If not set, use the monitoring_config defined for the EntityType - // this Feature belongs to. Only Features with type + // Optional. Only applicable for Vertex AI Feature Store (Legacy). + // If not set, use the monitoring_config defined for the EntityType this + // Feature belongs to. + // Only Features with type // ([Feature.ValueType][google.cloud.aiplatform.v1.Feature.ValueType]) BOOL, // STRING, DOUBLE or INT64 can enable monitoring. // // If set to true, all types of data monitoring are disabled despite the // config on EntityType. DisableMonitoring bool `protobuf:"varint,12,opt,name=disable_monitoring,json=disableMonitoring,proto3" json:"disable_monitoring,omitempty"` - // Output only. The list of historical stats and anomalies with specified - // objectives. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // The list of historical stats and anomalies with specified objectives. MonitoringStatsAnomalies []*Feature_MonitoringStatsAnomaly `protobuf:"bytes,11,rep,name=monitoring_stats_anomalies,json=monitoringStatsAnomalies,proto3" json:"monitoring_stats_anomalies,omitempty"` + // Only applicable for Vertex AI Feature Store. + // The name of the BigQuery Table/View columnn hosting data for this version. + // If no value is provided, will use feature_id. + VersionColumnName string `protobuf:"bytes,106,opt,name=version_column_name,json=versionColumnName,proto3" json:"version_column_name,omitempty"` } func (x *Feature) Reset() { @@ -322,6 +332,13 @@ func (x *Feature) GetMonitoringStatsAnomalies() []*Feature_MonitoringStatsAnomal return nil } +func (x *Feature) GetVersionColumnName() string { + if x != nil { + return x.VersionColumnName + } + return "" +} + // A list of historical // [SnapshotAnalysis][google.cloud.aiplatform.v1.FeaturestoreMonitoringConfig.SnapshotAnalysis] // or @@ -402,101 +419,110 @@ var file_google_cloud_aiplatform_v1_feature_proto_rawDesc = []byte{ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfc, - 0x09, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96, + 0x0b, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, - 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, - 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, - 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x4c, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, - 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, - 0x67, 0x12, 0x32, 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, - 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x7d, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, - 0x69, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, - 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, - 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x69, + 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x09, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4c, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x65, 0x74, + 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x32, + 0x0a, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x6e, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, + 0x6e, 0x67, 0x12, 0x7d, 0x0a, 0x1a, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, + 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, - 0x6c, 0x69, 0x65, 0x73, 0x1a, 0xc7, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x12, - 0x67, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x2e, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x68, 0x0a, 0x15, 0x66, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x66, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, - 0x6c, 0x79, 0x22, 0x5a, 0x0a, 0x09, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, - 0x19, 0x0a, 0x15, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4d, - 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x4e, 0x41, - 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4e, 0x41, 0x50, 0x53, - 0x48, 0x4f, 0x54, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x02, 0x1a, 0x39, - 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x09, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x41, 0x4c, 0x55, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x42, 0x4f, 0x4f, 0x4c, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x4f, 0x55, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x49, - 0x4e, 0x54, 0x36, 0x34, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x5f, - 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, - 0x47, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, - 0x52, 0x41, 0x59, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0d, - 0x3a, 0x9a, 0x01, 0xea, 0x41, 0x96, 0x01, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x71, 0x70, 0x72, 0x6f, 0x6a, + 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, + 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x1a, 0xc7, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x12, 0x67, 0x0a, 0x09, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x2e, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x68, 0x0a, 0x15, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x61, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, + 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x22, + 0x5a, 0x0a, 0x09, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x19, 0x0a, 0x15, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x49, 0x4d, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, + 0x49, 0x53, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x4e, 0x41, 0x50, 0x53, 0x48, 0x4f, 0x54, + 0x5f, 0x41, 0x4e, 0x41, 0x4c, 0x59, 0x53, 0x49, 0x53, 0x10, 0x02, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa4, 0x01, 0x0a, 0x09, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x4f, + 0x4f, 0x4c, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, + 0x55, 0x42, 0x4c, 0x45, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, + 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, + 0x34, 0x10, 0x09, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x5f, 0x41, 0x52, 0x52, + 0x41, 0x59, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x0b, + 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x52, 0x52, 0x41, 0x59, + 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x0d, 0x3a, 0x87, 0x02, + 0xea, 0x41, 0x83, 0x02, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x71, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, + 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x7d, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, - 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x7b, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x7d, 0x42, 0xca, 0x01, - 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x42, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, - 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x7d, 0x2a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x32, 0x07, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0xca, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/aiplatform/apiv1/aiplatformpb/feature_group.pb.go b/aiplatform/apiv1/aiplatformpb/feature_group.pb.go new file mode 100755 index 000000000000..a90f9f3ae6e2 --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_group.pb.go @@ -0,0 +1,403 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_group.proto + +package aiplatformpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Vertex AI Feature Group. +type FeatureGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Source: + // *FeatureGroup_BigQuery_ + Source isFeatureGroup_Source `protobuf_oneof:"source"` + // Output only. Name of the FeatureGroup. Format: + // `projects/{project}/locations/{location}/featureGroups/{featureGroup}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Timestamp when this FeatureGroup was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Timestamp when this FeatureGroup was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Used to perform consistent read-modify-write updates. If not set, + // a blind "overwrite" update happens. + Etag string `protobuf:"bytes,4,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. The labels with user-defined metadata to organize your + // FeatureGroup. + // + // 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 + // FeatureGroup(System labels are excluded)." System reserved label keys + // are prefixed with "aiplatform.googleapis.com/" and are immutable. + Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Description of the FeatureGroup. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *FeatureGroup) Reset() { + *x = FeatureGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureGroup) ProtoMessage() {} + +func (x *FeatureGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureGroup.ProtoReflect.Descriptor instead. +func (*FeatureGroup) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_group_proto_rawDescGZIP(), []int{0} +} + +func (m *FeatureGroup) GetSource() isFeatureGroup_Source { + if m != nil { + return m.Source + } + return nil +} + +func (x *FeatureGroup) GetBigQuery() *FeatureGroup_BigQuery { + if x, ok := x.GetSource().(*FeatureGroup_BigQuery_); ok { + return x.BigQuery + } + return nil +} + +func (x *FeatureGroup) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FeatureGroup) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *FeatureGroup) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *FeatureGroup) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *FeatureGroup) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *FeatureGroup) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type isFeatureGroup_Source interface { + isFeatureGroup_Source() +} + +type FeatureGroup_BigQuery_ struct { + // Indicates that features for this group come from BigQuery Table/View. + // By default treats the source as a sparse time series source, which is + // required to have an entity_id and a feature_timestamp column in the + // source. + BigQuery *FeatureGroup_BigQuery `protobuf:"bytes,7,opt,name=big_query,json=bigQuery,proto3,oneof"` +} + +func (*FeatureGroup_BigQuery_) isFeatureGroup_Source() {} + +// Input source type for BigQuery Tables and Views. +type FeatureGroup_BigQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Immutable. The BigQuery source URI that points to either a + // BigQuery Table or View. + BigQuerySource *BigQuerySource `protobuf:"bytes,1,opt,name=big_query_source,json=bigQuerySource,proto3" json:"big_query_source,omitempty"` + // Optional. Columns to construct entity_id / row keys. Currently only + // supports 1 entity_id_column. If not provided defaults to `entity_id`. + EntityIdColumns []string `protobuf:"bytes,2,rep,name=entity_id_columns,json=entityIdColumns,proto3" json:"entity_id_columns,omitempty"` +} + +func (x *FeatureGroup_BigQuery) Reset() { + *x = FeatureGroup_BigQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureGroup_BigQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureGroup_BigQuery) ProtoMessage() {} + +func (x *FeatureGroup_BigQuery) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureGroup_BigQuery.ProtoReflect.Descriptor instead. +func (*FeatureGroup_BigQuery) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_group_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *FeatureGroup_BigQuery) GetBigQuerySource() *BigQuerySource { + if x != nil { + return x.BigQuerySource + } + return nil +} + +func (x *FeatureGroup_BigQuery) GetEntityIdColumns() []string { + if x != nil { + return x.EntityIdColumns + } + return nil +} + +var File_google_cloud_aiplatform_v1_feature_group_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_group_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, + 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, + 0x06, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x50, 0x0a, 0x09, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x69, 0x67, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x48, 0x00, 0x52, 0x08, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, + 0x0a, 0x04, 0x65, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x51, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x1a, 0x99, 0x01, 0x0a, 0x08, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x5c, + 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x05, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x62, 0x69, + 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2f, 0x0a, 0x11, + 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x1a, 0x39, 0x0a, + 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x90, 0x01, 0xea, 0x41, 0x8c, 0x01, 0x0a, + 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x45, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x7b, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x7d, 0x2a, 0x0d, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x32, 0x0c, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0xcf, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_group_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_group_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_group_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_group_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_group_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_group_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_group_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_aiplatform_v1_feature_group_proto_goTypes = []interface{}{ + (*FeatureGroup)(nil), // 0: google.cloud.aiplatform.v1.FeatureGroup + (*FeatureGroup_BigQuery)(nil), // 1: google.cloud.aiplatform.v1.FeatureGroup.BigQuery + nil, // 2: google.cloud.aiplatform.v1.FeatureGroup.LabelsEntry + (*timestamppb.Timestamp)(nil), // 3: google.protobuf.Timestamp + (*BigQuerySource)(nil), // 4: google.cloud.aiplatform.v1.BigQuerySource +} +var file_google_cloud_aiplatform_v1_feature_group_proto_depIdxs = []int32{ + 1, // 0: google.cloud.aiplatform.v1.FeatureGroup.big_query:type_name -> google.cloud.aiplatform.v1.FeatureGroup.BigQuery + 3, // 1: google.cloud.aiplatform.v1.FeatureGroup.create_time:type_name -> google.protobuf.Timestamp + 3, // 2: google.cloud.aiplatform.v1.FeatureGroup.update_time:type_name -> google.protobuf.Timestamp + 2, // 3: google.cloud.aiplatform.v1.FeatureGroup.labels:type_name -> google.cloud.aiplatform.v1.FeatureGroup.LabelsEntry + 4, // 4: google.cloud.aiplatform.v1.FeatureGroup.BigQuery.big_query_source:type_name -> google.cloud.aiplatform.v1.BigQuerySource + 5, // [5:5] is the sub-list for method output_type + 5, // [5:5] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_group_proto_init() } +func file_google_cloud_aiplatform_v1_feature_group_proto_init() { + if File_google_cloud_aiplatform_v1_feature_group_proto != nil { + return + } + file_google_cloud_aiplatform_v1_io_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureGroup_BigQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FeatureGroup_BigQuery_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_group_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_group_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_feature_group_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_group_proto = out.File + file_google_cloud_aiplatform_v1_feature_group_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_group_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_group_proto_depIdxs = nil +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_online_store.pb.go b/aiplatform/apiv1/aiplatformpb/feature_online_store.pb.go new file mode 100755 index 000000000000..e3d6bedd6c4d --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_online_store.pb.go @@ -0,0 +1,552 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_online_store.proto + +package aiplatformpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Possible states a featureOnlineStore can have. +type FeatureOnlineStore_State int32 + +const ( + // Default value. This value is unused. + FeatureOnlineStore_STATE_UNSPECIFIED FeatureOnlineStore_State = 0 + // State when the featureOnlineStore configuration is not being updated and + // the fields reflect the current configuration of the featureOnlineStore. + // The featureOnlineStore is usable in this state. + FeatureOnlineStore_STABLE FeatureOnlineStore_State = 1 + // The state of the featureOnlineStore configuration when it is being + // updated. During an update, the fields reflect either the original + // configuration or the updated configuration of the featureOnlineStore. The + // featureOnlineStore is still usable in this state. + FeatureOnlineStore_UPDATING FeatureOnlineStore_State = 2 +) + +// Enum value maps for FeatureOnlineStore_State. +var ( + FeatureOnlineStore_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "STABLE", + 2: "UPDATING", + } + FeatureOnlineStore_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "STABLE": 1, + "UPDATING": 2, + } +) + +func (x FeatureOnlineStore_State) Enum() *FeatureOnlineStore_State { + p := new(FeatureOnlineStore_State) + *p = x + return p +} + +func (x FeatureOnlineStore_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FeatureOnlineStore_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1_feature_online_store_proto_enumTypes[0].Descriptor() +} + +func (FeatureOnlineStore_State) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1_feature_online_store_proto_enumTypes[0] +} + +func (x FeatureOnlineStore_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FeatureOnlineStore_State.Descriptor instead. +func (FeatureOnlineStore_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescGZIP(), []int{0, 0} +} + +// Vertex AI Feature Online Store provides a centralized repository for serving +// ML features and embedding indexes at low latency. The Feature Online Store is +// a top-level container. +type FeatureOnlineStore struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to StorageType: + // *FeatureOnlineStore_Bigtable_ + StorageType isFeatureOnlineStore_StorageType `protobuf_oneof:"storage_type"` + // Output only. Name of the FeatureOnlineStore. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Timestamp when this FeatureOnlineStore was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Timestamp when this FeatureOnlineStore was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Used to perform consistent read-modify-write updates. If not set, + // a blind "overwrite" update happens. + Etag string `protobuf:"bytes,5,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. The labels with user-defined metadata to organize your + // FeatureOnlineStore. + // + // 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 + // FeatureOnlineStore(System labels are excluded)." System reserved label keys + // are prefixed with "aiplatform.googleapis.com/" and are immutable. + Labels map[string]string `protobuf:"bytes,6,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. State of the featureOnlineStore. + State FeatureOnlineStore_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.aiplatform.v1.FeatureOnlineStore_State" json:"state,omitempty"` +} + +func (x *FeatureOnlineStore) Reset() { + *x = FeatureOnlineStore{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureOnlineStore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureOnlineStore) ProtoMessage() {} + +func (x *FeatureOnlineStore) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureOnlineStore.ProtoReflect.Descriptor instead. +func (*FeatureOnlineStore) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescGZIP(), []int{0} +} + +func (m *FeatureOnlineStore) GetStorageType() isFeatureOnlineStore_StorageType { + if m != nil { + return m.StorageType + } + return nil +} + +func (x *FeatureOnlineStore) GetBigtable() *FeatureOnlineStore_Bigtable { + if x, ok := x.GetStorageType().(*FeatureOnlineStore_Bigtable_); ok { + return x.Bigtable + } + return nil +} + +func (x *FeatureOnlineStore) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FeatureOnlineStore) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *FeatureOnlineStore) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *FeatureOnlineStore) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *FeatureOnlineStore) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *FeatureOnlineStore) GetState() FeatureOnlineStore_State { + if x != nil { + return x.State + } + return FeatureOnlineStore_STATE_UNSPECIFIED +} + +type isFeatureOnlineStore_StorageType interface { + isFeatureOnlineStore_StorageType() +} + +type FeatureOnlineStore_Bigtable_ struct { + // Contains settings for the Cloud Bigtable instance that will be created + // to serve featureValues for all FeatureViews under this + // FeatureOnlineStore. + Bigtable *FeatureOnlineStore_Bigtable `protobuf:"bytes,8,opt,name=bigtable,proto3,oneof"` +} + +func (*FeatureOnlineStore_Bigtable_) isFeatureOnlineStore_StorageType() {} + +type FeatureOnlineStore_Bigtable struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Autoscaling config applied to Bigtable Instance. + AutoScaling *FeatureOnlineStore_Bigtable_AutoScaling `protobuf:"bytes,1,opt,name=auto_scaling,json=autoScaling,proto3" json:"auto_scaling,omitempty"` +} + +func (x *FeatureOnlineStore_Bigtable) Reset() { + *x = FeatureOnlineStore_Bigtable{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureOnlineStore_Bigtable) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureOnlineStore_Bigtable) ProtoMessage() {} + +func (x *FeatureOnlineStore_Bigtable) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureOnlineStore_Bigtable.ProtoReflect.Descriptor instead. +func (*FeatureOnlineStore_Bigtable) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *FeatureOnlineStore_Bigtable) GetAutoScaling() *FeatureOnlineStore_Bigtable_AutoScaling { + if x != nil { + return x.AutoScaling + } + return nil +} + +type FeatureOnlineStore_Bigtable_AutoScaling struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The minimum number of nodes to scale down to. Must be greater + // than or equal to 1. + MinNodeCount int32 `protobuf:"varint,1,opt,name=min_node_count,json=minNodeCount,proto3" json:"min_node_count,omitempty"` + // Required. The maximum number of nodes to scale up to. Must be greater + // than or equal to min_node_count, and less than or equal to 10 times of + // 'min_node_count'. + MaxNodeCount int32 `protobuf:"varint,2,opt,name=max_node_count,json=maxNodeCount,proto3" json:"max_node_count,omitempty"` + // Optional. A percentage of the cluster's CPU capacity. Can be from 10% + // to 80%. When a cluster's CPU utilization exceeds the target that you + // have set, Bigtable immediately adds nodes to the cluster. When CPU + // utilization is substantially lower than the target, Bigtable removes + // nodes. If not set will default to 50%. + CpuUtilizationTarget int32 `protobuf:"varint,3,opt,name=cpu_utilization_target,json=cpuUtilizationTarget,proto3" json:"cpu_utilization_target,omitempty"` +} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) Reset() { + *x = FeatureOnlineStore_Bigtable_AutoScaling{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureOnlineStore_Bigtable_AutoScaling) ProtoMessage() {} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureOnlineStore_Bigtable_AutoScaling.ProtoReflect.Descriptor instead. +func (*FeatureOnlineStore_Bigtable_AutoScaling) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescGZIP(), []int{0, 0, 0} +} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) GetMinNodeCount() int32 { + if x != nil { + return x.MinNodeCount + } + return 0 +} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) GetMaxNodeCount() int32 { + if x != nil { + return x.MaxNodeCount + } + return 0 +} + +func (x *FeatureOnlineStore_Bigtable_AutoScaling) GetCpuUtilizationTarget() int32 { + if x != nil { + return x.CpuUtilizationTarget + } + return 0 +} + +var File_google_cloud_aiplatform_v1_feature_online_store_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDesc = []byte{ + 0x0a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x22, 0xf4, 0x07, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x55, 0x0a, 0x08, 0x62, 0x69, 0x67, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x48, 0x00, 0x52, 0x08, 0x62, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x65, + 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, + 0x65, 0x74, 0x61, 0x67, 0x12, 0x57, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x4f, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x98, + 0x02, 0x0a, 0x08, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x6b, 0x0a, 0x0c, 0x61, + 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x42, 0x69, 0x67, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x53, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x75, 0x74, + 0x6f, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x1a, 0x9e, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x74, + 0x6f, 0x53, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x29, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x16, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x14, 0x63, 0x70, 0x75, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x38, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x3a, 0x86, + 0x01, 0xea, 0x41, 0x82, 0x01, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x12, 0x52, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, + 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x42, 0x0e, 0x0a, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0xd5, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_online_store_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_google_cloud_aiplatform_v1_feature_online_store_proto_goTypes = []interface{}{ + (FeatureOnlineStore_State)(0), // 0: google.cloud.aiplatform.v1.FeatureOnlineStore.State + (*FeatureOnlineStore)(nil), // 1: google.cloud.aiplatform.v1.FeatureOnlineStore + (*FeatureOnlineStore_Bigtable)(nil), // 2: google.cloud.aiplatform.v1.FeatureOnlineStore.Bigtable + nil, // 3: google.cloud.aiplatform.v1.FeatureOnlineStore.LabelsEntry + (*FeatureOnlineStore_Bigtable_AutoScaling)(nil), // 4: google.cloud.aiplatform.v1.FeatureOnlineStore.Bigtable.AutoScaling + (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp +} +var file_google_cloud_aiplatform_v1_feature_online_store_proto_depIdxs = []int32{ + 2, // 0: google.cloud.aiplatform.v1.FeatureOnlineStore.bigtable:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore.Bigtable + 5, // 1: google.cloud.aiplatform.v1.FeatureOnlineStore.create_time:type_name -> google.protobuf.Timestamp + 5, // 2: google.cloud.aiplatform.v1.FeatureOnlineStore.update_time:type_name -> google.protobuf.Timestamp + 3, // 3: google.cloud.aiplatform.v1.FeatureOnlineStore.labels:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore.LabelsEntry + 0, // 4: google.cloud.aiplatform.v1.FeatureOnlineStore.state:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore.State + 4, // 5: google.cloud.aiplatform.v1.FeatureOnlineStore.Bigtable.auto_scaling:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore.Bigtable.AutoScaling + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_online_store_proto_init() } +func file_google_cloud_aiplatform_v1_feature_online_store_proto_init() { + if File_google_cloud_aiplatform_v1_feature_online_store_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureOnlineStore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureOnlineStore_Bigtable); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureOnlineStore_Bigtable_AutoScaling); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FeatureOnlineStore_Bigtable_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDesc, + NumEnums: 1, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_online_store_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_online_store_proto_depIdxs, + EnumInfos: file_google_cloud_aiplatform_v1_feature_online_store_proto_enumTypes, + MessageInfos: file_google_cloud_aiplatform_v1_feature_online_store_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_online_store_proto = out.File + file_google_cloud_aiplatform_v1_feature_online_store_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_online_store_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_online_store_proto_depIdxs = nil +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_online_store_admin_service.pb.go b/aiplatform/apiv1/aiplatformpb/feature_online_store_admin_service.pb.go new file mode 100755 index 000000000000..d3688cf346ea --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_online_store_admin_service.pb.go @@ -0,0 +1,2840 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_online_store_admin_service.proto + +package aiplatformpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Request message for +// [FeatureOnlineStoreAdminService.CreateFeatureOnlineStore][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureOnlineStore]. +type CreateFeatureOnlineStoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Location to create FeatureOnlineStores. + // Format: + // `projects/{project}/locations/{location}'` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The FeatureOnlineStore to create. + FeatureOnlineStore *FeatureOnlineStore `protobuf:"bytes,2,opt,name=feature_online_store,json=featureOnlineStore,proto3" json:"feature_online_store,omitempty"` + // Required. The ID to use for this FeatureOnlineStore, which will become the + // final component of the FeatureOnlineStore's resource name. + // + // This value may be up to 60 characters, and valid characters are + // `[a-z0-9_]`. The first character cannot be a number. + // + // The value must be unique within the project and location. + FeatureOnlineStoreId string `protobuf:"bytes,3,opt,name=feature_online_store_id,json=featureOnlineStoreId,proto3" json:"feature_online_store_id,omitempty"` +} + +func (x *CreateFeatureOnlineStoreRequest) Reset() { + *x = CreateFeatureOnlineStoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureOnlineStoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureOnlineStoreRequest) ProtoMessage() {} + +func (x *CreateFeatureOnlineStoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureOnlineStoreRequest.ProtoReflect.Descriptor instead. +func (*CreateFeatureOnlineStoreRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateFeatureOnlineStoreRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateFeatureOnlineStoreRequest) GetFeatureOnlineStore() *FeatureOnlineStore { + if x != nil { + return x.FeatureOnlineStore + } + return nil +} + +func (x *CreateFeatureOnlineStoreRequest) GetFeatureOnlineStoreId() string { + if x != nil { + return x.FeatureOnlineStoreId + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.GetFeatureOnlineStore][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureOnlineStore]. +type GetFeatureOnlineStoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureOnlineStore resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFeatureOnlineStoreRequest) Reset() { + *x = GetFeatureOnlineStoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFeatureOnlineStoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureOnlineStoreRequest) ProtoMessage() {} + +func (x *GetFeatureOnlineStoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureOnlineStoreRequest.ProtoReflect.Descriptor instead. +func (*GetFeatureOnlineStoreRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{1} +} + +func (x *GetFeatureOnlineStoreRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.ListFeatureOnlineStores][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores]. +type ListFeatureOnlineStoresRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Location to list FeatureOnlineStores. + // Format: + // `projects/{project}/locations/{location}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Lists the FeatureOnlineStores that match the filter expression. The + // following fields are supported: + // + // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be + // in RFC 3339 format. + // * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be + // in RFC 3339 format. + // * `labels`: Supports key-value equality and key presence. + // + // Examples: + // + // * `create_time > "2020-01-01" OR update_time > "2020-01-01"` + // FeatureOnlineStores created or updated after 2020-01-01. + // * `labels.env = "prod"` + // FeatureOnlineStores with label "env" set to "prod". + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The maximum number of FeatureOnlineStores to return. The service may return + // fewer than this value. If unspecified, at most 100 FeatureOnlineStores will + // be returned. The maximum value is 100; any value greater than 100 will be + // coerced to 100. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous + // [FeatureOnlineStoreAdminService.ListFeatureOnlineStores][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [FeatureOnlineStoreAdminService.ListFeatureOnlineStores][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores] + // must match the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported Fields: + // + // * `create_time` + // * `update_time` + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFeatureOnlineStoresRequest) Reset() { + *x = ListFeatureOnlineStoresRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureOnlineStoresRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureOnlineStoresRequest) ProtoMessage() {} + +func (x *ListFeatureOnlineStoresRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureOnlineStoresRequest.ProtoReflect.Descriptor instead. +func (*ListFeatureOnlineStoresRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ListFeatureOnlineStoresRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListFeatureOnlineStoresRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFeatureOnlineStoresRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFeatureOnlineStoresRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFeatureOnlineStoresRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for +// [FeatureOnlineStoreAdminService.ListFeatureOnlineStores][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores]. +type ListFeatureOnlineStoresResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The FeatureOnlineStores matching the request. + FeatureOnlineStores []*FeatureOnlineStore `protobuf:"bytes,1,rep,name=feature_online_stores,json=featureOnlineStores,proto3" json:"feature_online_stores,omitempty"` + // A token, which can be sent as + // [ListFeatureOnlineStoresRequest.page_token][google.cloud.aiplatform.v1.ListFeatureOnlineStoresRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFeatureOnlineStoresResponse) Reset() { + *x = ListFeatureOnlineStoresResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureOnlineStoresResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureOnlineStoresResponse) ProtoMessage() {} + +func (x *ListFeatureOnlineStoresResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureOnlineStoresResponse.ProtoReflect.Descriptor instead. +func (*ListFeatureOnlineStoresResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ListFeatureOnlineStoresResponse) GetFeatureOnlineStores() []*FeatureOnlineStore { + if x != nil { + return x.FeatureOnlineStores + } + return nil +} + +func (x *ListFeatureOnlineStoresResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.UpdateFeatureOnlineStore][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureOnlineStore]. +type UpdateFeatureOnlineStoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The FeatureOnlineStore's `name` field is used to identify the + // FeatureOnlineStore to be updated. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}` + FeatureOnlineStore *FeatureOnlineStore `protobuf:"bytes,1,opt,name=feature_online_store,json=featureOnlineStore,proto3" json:"feature_online_store,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // FeatureOnlineStore 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 only the non-empty fields present in the + // request will be overwritten. Set the update_mask to `*` to override all + // fields. + // + // Updatable fields: + // + // * `big_query_source` + // * `labels` + // * `sync_config` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateFeatureOnlineStoreRequest) Reset() { + *x = UpdateFeatureOnlineStoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureOnlineStoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureOnlineStoreRequest) ProtoMessage() {} + +func (x *UpdateFeatureOnlineStoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureOnlineStoreRequest.ProtoReflect.Descriptor instead. +func (*UpdateFeatureOnlineStoreRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateFeatureOnlineStoreRequest) GetFeatureOnlineStore() *FeatureOnlineStore { + if x != nil { + return x.FeatureOnlineStore + } + return nil +} + +func (x *UpdateFeatureOnlineStoreRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for +// [FeatureOnlineStoreAdminService.DeleteFeatureOnlineStore][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureOnlineStore]. +type DeleteFeatureOnlineStoreRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureOnlineStore to be deleted. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If set to true, any FeatureViews and Features for this FeatureOnlineStore + // will also be deleted. (Otherwise, the request will only work if the + // FeatureOnlineStore has no FeatureViews.) + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *DeleteFeatureOnlineStoreRequest) Reset() { + *x = DeleteFeatureOnlineStoreRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFeatureOnlineStoreRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFeatureOnlineStoreRequest) ProtoMessage() {} + +func (x *DeleteFeatureOnlineStoreRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFeatureOnlineStoreRequest.ProtoReflect.Descriptor instead. +func (*DeleteFeatureOnlineStoreRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteFeatureOnlineStoreRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteFeatureOnlineStoreRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// Request message for +// [FeatureOnlineStoreAdminService.CreateFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureView]. +type CreateFeatureViewRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the FeatureOnlineStore to create + // FeatureViews. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The FeatureView to create. + FeatureView *FeatureView `protobuf:"bytes,2,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"` + // Required. The ID to use for the FeatureView, which will become the final + // component of the FeatureView's resource name. + // + // This value may be up to 60 characters, and valid characters are + // `[a-z0-9_]`. The first character cannot be a number. + // + // The value must be unique within a FeatureOnlineStore. + FeatureViewId string `protobuf:"bytes,3,opt,name=feature_view_id,json=featureViewId,proto3" json:"feature_view_id,omitempty"` + // Immutable. If set to true, one on demand sync will be run immediately, + // regardless whether the + // [FeatureView.sync_config][google.cloud.aiplatform.v1.FeatureView.sync_config] + // is configured or not. + RunSyncImmediately bool `protobuf:"varint,4,opt,name=run_sync_immediately,json=runSyncImmediately,proto3" json:"run_sync_immediately,omitempty"` +} + +func (x *CreateFeatureViewRequest) Reset() { + *x = CreateFeatureViewRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureViewRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureViewRequest) ProtoMessage() {} + +func (x *CreateFeatureViewRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureViewRequest.ProtoReflect.Descriptor instead. +func (*CreateFeatureViewRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateFeatureViewRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateFeatureViewRequest) GetFeatureView() *FeatureView { + if x != nil { + return x.FeatureView + } + return nil +} + +func (x *CreateFeatureViewRequest) GetFeatureViewId() string { + if x != nil { + return x.FeatureViewId + } + return "" +} + +func (x *CreateFeatureViewRequest) GetRunSyncImmediately() bool { + if x != nil { + return x.RunSyncImmediately + } + return false +} + +// Request message for +// [FeatureOnlineStoreAdminService.GetFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureView]. +type GetFeatureViewRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureView resource. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFeatureViewRequest) Reset() { + *x = GetFeatureViewRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFeatureViewRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureViewRequest) ProtoMessage() {} + +func (x *GetFeatureViewRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureViewRequest.ProtoReflect.Descriptor instead. +func (*GetFeatureViewRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{7} +} + +func (x *GetFeatureViewRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.ListFeatureViews][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews]. +type ListFeatureViewsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the FeatureOnlineStore to list FeatureViews. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Lists the FeatureViews that match the filter expression. The following + // filters are supported: + // + // * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. + // Values must be in RFC 3339 format. + // * `update_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. + // Values must be in RFC 3339 format. + // * `labels`: Supports key-value equality as well as key presence. + // + // Examples: + // + // * `create_time > \"2020-01-31T15:30:00.000000Z\" OR + // update_time > \"2020-01-31T15:30:00.000000Z\"` --> FeatureViews + // created or updated after 2020-01-31T15:30:00.000000Z. + // * `labels.active = yes AND labels.env = prod` --> FeatureViews having both + // (active: yes) and (env: prod) labels. + // * `labels.env: *` --> Any FeatureView which has a label with 'env' as the + // key. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The maximum number of FeatureViews to return. The service may return fewer + // than this value. If unspecified, at most 1000 FeatureViews will be + // returned. The maximum value is 1000; any value greater than 1000 will be + // coerced to 1000. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous + // [FeatureOnlineStoreAdminService.ListFeatureViews][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [FeatureOnlineStoreAdminService.ListFeatureViews][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews] + // must match the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // + // Supported fields: + // + // * `feature_view_id` + // * `create_time` + // * `update_time` + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFeatureViewsRequest) Reset() { + *x = ListFeatureViewsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureViewsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureViewsRequest) ProtoMessage() {} + +func (x *ListFeatureViewsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureViewsRequest.ProtoReflect.Descriptor instead. +func (*ListFeatureViewsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{8} +} + +func (x *ListFeatureViewsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListFeatureViewsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFeatureViewsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFeatureViewsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFeatureViewsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for +// [FeatureOnlineStoreAdminService.ListFeatureViews][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews]. +type ListFeatureViewsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The FeatureViews matching the request. + FeatureViews []*FeatureView `protobuf:"bytes,1,rep,name=feature_views,json=featureViews,proto3" json:"feature_views,omitempty"` + // A token, which can be sent as + // [ListFeatureViewsRequest.page_token][google.cloud.aiplatform.v1.ListFeatureViewsRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFeatureViewsResponse) Reset() { + *x = ListFeatureViewsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureViewsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureViewsResponse) ProtoMessage() {} + +func (x *ListFeatureViewsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureViewsResponse.ProtoReflect.Descriptor instead. +func (*ListFeatureViewsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{9} +} + +func (x *ListFeatureViewsResponse) GetFeatureViews() []*FeatureView { + if x != nil { + return x.FeatureViews + } + return nil +} + +func (x *ListFeatureViewsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.UpdateFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureView]. +type UpdateFeatureViewRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The FeatureView's `name` field is used to identify the + // FeatureView to be updated. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + FeatureView *FeatureView `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // FeatureView 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 only the non-empty fields present in the + // request will be overwritten. Set the update_mask to `*` to override all + // fields. + // + // Updatable fields: + // + // * `labels` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateFeatureViewRequest) Reset() { + *x = UpdateFeatureViewRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureViewRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureViewRequest) ProtoMessage() {} + +func (x *UpdateFeatureViewRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureViewRequest.ProtoReflect.Descriptor instead. +func (*UpdateFeatureViewRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateFeatureViewRequest) GetFeatureView() *FeatureView { + if x != nil { + return x.FeatureView + } + return nil +} + +func (x *UpdateFeatureViewRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for [FeatureOnlineStoreAdminService.DeleteFeatureViews][]. +type DeleteFeatureViewRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureView to be deleted. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteFeatureViewRequest) Reset() { + *x = DeleteFeatureViewRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFeatureViewRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFeatureViewRequest) ProtoMessage() {} + +func (x *DeleteFeatureViewRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFeatureViewRequest.ProtoReflect.Descriptor instead. +func (*DeleteFeatureViewRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteFeatureViewRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Details of operations that perform create FeatureOnlineStore. +type CreateFeatureOnlineStoreOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureOnlineStore. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *CreateFeatureOnlineStoreOperationMetadata) Reset() { + *x = CreateFeatureOnlineStoreOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureOnlineStoreOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureOnlineStoreOperationMetadata) ProtoMessage() {} + +func (x *CreateFeatureOnlineStoreOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureOnlineStoreOperationMetadata.ProtoReflect.Descriptor instead. +func (*CreateFeatureOnlineStoreOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{12} +} + +func (x *CreateFeatureOnlineStoreOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform update FeatureOnlineStore. +type UpdateFeatureOnlineStoreOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureOnlineStore. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *UpdateFeatureOnlineStoreOperationMetadata) Reset() { + *x = UpdateFeatureOnlineStoreOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureOnlineStoreOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureOnlineStoreOperationMetadata) ProtoMessage() {} + +func (x *UpdateFeatureOnlineStoreOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureOnlineStoreOperationMetadata.ProtoReflect.Descriptor instead. +func (*UpdateFeatureOnlineStoreOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{13} +} + +func (x *UpdateFeatureOnlineStoreOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform create FeatureView. +type CreateFeatureViewOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureView Create. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *CreateFeatureViewOperationMetadata) Reset() { + *x = CreateFeatureViewOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureViewOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureViewOperationMetadata) ProtoMessage() {} + +func (x *CreateFeatureViewOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureViewOperationMetadata.ProtoReflect.Descriptor instead. +func (*CreateFeatureViewOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{14} +} + +func (x *CreateFeatureViewOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform update FeatureView. +type UpdateFeatureViewOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureView Update. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *UpdateFeatureViewOperationMetadata) Reset() { + *x = UpdateFeatureViewOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureViewOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureViewOperationMetadata) ProtoMessage() {} + +func (x *UpdateFeatureViewOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureViewOperationMetadata.ProtoReflect.Descriptor instead. +func (*UpdateFeatureViewOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{15} +} + +func (x *UpdateFeatureViewOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Request message for +// [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView]. +type SyncFeatureViewRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"` +} + +func (x *SyncFeatureViewRequest) Reset() { + *x = SyncFeatureViewRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncFeatureViewRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncFeatureViewRequest) ProtoMessage() {} + +func (x *SyncFeatureViewRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncFeatureViewRequest.ProtoReflect.Descriptor instead. +func (*SyncFeatureViewRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{16} +} + +func (x *SyncFeatureViewRequest) GetFeatureView() string { + if x != nil { + return x.FeatureView + } + return "" +} + +// Respose message for +// [FeatureOnlineStoreAdminService.SyncFeatureView][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView]. +type SyncFeatureViewResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` + FeatureViewSync string `protobuf:"bytes,1,opt,name=feature_view_sync,json=featureViewSync,proto3" json:"feature_view_sync,omitempty"` +} + +func (x *SyncFeatureViewResponse) Reset() { + *x = SyncFeatureViewResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SyncFeatureViewResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncFeatureViewResponse) ProtoMessage() {} + +func (x *SyncFeatureViewResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncFeatureViewResponse.ProtoReflect.Descriptor instead. +func (*SyncFeatureViewResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{17} +} + +func (x *SyncFeatureViewResponse) GetFeatureViewSync() string { + if x != nil { + return x.FeatureViewSync + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.GetFeatureViewSync][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureViewSync]. +type GetFeatureViewSyncRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureViewSync resource. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFeatureViewSyncRequest) Reset() { + *x = GetFeatureViewSyncRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFeatureViewSyncRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureViewSyncRequest) ProtoMessage() {} + +func (x *GetFeatureViewSyncRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureViewSyncRequest.ProtoReflect.Descriptor instead. +func (*GetFeatureViewSyncRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{18} +} + +func (x *GetFeatureViewSyncRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for +// [FeatureOnlineStoreAdminService.ListFeatureViewSyncs][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs]. +type ListFeatureViewSyncsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the FeatureView to list FeatureViewSyncs. + // Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Lists the FeatureViewSyncs that match the filter expression. The following + // filters are supported: + // + // * `create_time`: Supports `=`, `!=`, `<`, `>`, `>=`, and `<=` comparisons. + // Values must be in RFC 3339 format. + // + // Examples: + // + // * `create_time > \"2020-01-31T15:30:00.000000Z\"` --> FeatureViewSyncs + // created after 2020-01-31T15:30:00.000000Z. + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The maximum number of FeatureViewSyncs to return. The service may return + // fewer than this value. If unspecified, at most 1000 FeatureViewSyncs will + // be returned. The maximum value is 1000; any value greater than 1000 will be + // coerced to 1000. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous + // [FeatureOnlineStoreAdminService.ListFeatureViewSyncs][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs] + // call. Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [FeatureOnlineStoreAdminService.ListFeatureViewSyncs][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs] + // must match the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // + // Supported fields: + // + // * `create_time` + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFeatureViewSyncsRequest) Reset() { + *x = ListFeatureViewSyncsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureViewSyncsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureViewSyncsRequest) ProtoMessage() {} + +func (x *ListFeatureViewSyncsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureViewSyncsRequest.ProtoReflect.Descriptor instead. +func (*ListFeatureViewSyncsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{19} +} + +func (x *ListFeatureViewSyncsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListFeatureViewSyncsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFeatureViewSyncsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFeatureViewSyncsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFeatureViewSyncsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for +// [FeatureOnlineStoreAdminService.ListFeatureViewSyncs][google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs]. +type ListFeatureViewSyncsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The FeatureViewSyncs matching the request. + FeatureViewSyncs []*FeatureViewSync `protobuf:"bytes,1,rep,name=feature_view_syncs,json=featureViewSyncs,proto3" json:"feature_view_syncs,omitempty"` + // A token, which can be sent as + // [ListFeatureViewSyncsRequest.page_token][google.cloud.aiplatform.v1.ListFeatureViewSyncsRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFeatureViewSyncsResponse) Reset() { + *x = ListFeatureViewSyncsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureViewSyncsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureViewSyncsResponse) ProtoMessage() {} + +func (x *ListFeatureViewSyncsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureViewSyncsResponse.ProtoReflect.Descriptor instead. +func (*ListFeatureViewSyncsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP(), []int{20} +} + +func (x *ListFeatureViewSyncsResponse) GetFeatureViewSyncs() []*FeatureViewSync { + if x != nil { + return x.FeatureViewSyncs + } + return nil +} + +func (x *ListFeatureViewSyncsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +var File_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDesc = []byte{ + 0x0a, 0x43, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, + 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2d, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x32, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x92, + 0x02, 0x0a, 0x1f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x65, 0x0a, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3a, 0x0a, 0x17, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdd, 0x01, + 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x12, 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0xad, 0x01, + 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x62, 0x0a, 0x15, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x52, 0x13, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xc5, 0x01, + 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x65, 0x0a, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x81, 0x01, 0x0a, 0x1f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x48, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, + 0x2c, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0x9d, 0x02, 0x0a, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2e, 0x0a, 0x2c, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x49, 0x64, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x75, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x5f, 0x69, + 0x6d, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x12, 0x72, 0x75, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x49, 0x6d, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x6c, 0x79, 0x22, 0x5a, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x12, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x90, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4f, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x5d, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x29, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, + 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x8c, 0x01, 0x0a, 0x29, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x85, 0x01, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, + 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x01, 0x0a, 0x22, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x6a, 0x0a, 0x16, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0c, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x22, 0x45, + 0x0a, 0x17, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x62, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x45, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x31, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x2b, 0x0a, 0x29, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, + 0x79, 0x6e, 0x63, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, 0x0a, 0x1b, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, + 0xa1, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x59, 0x0a, 0x12, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, + 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x52, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x32, 0xd0, 0x1a, 0x0a, 0x1e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc6, 0x02, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xcd, 0x01, 0xca, 0x41, 0x3f, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x29, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x33, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, + 0x3a, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x22, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, + 0xc9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x22, 0x46, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x48, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x39, 0x12, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x12, 0xc8, 0x02, 0x0a, 0x18, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xcf, 0x01, 0xca, 0x41, 0x3f, 0x0a, 0x12, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x29, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, + 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x20, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x64, 0x3a, 0x14, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x32, 0x4c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf7, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7f, + 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x2c, 0x66, 0x6f, 0x72, 0x63, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xa1, 0x02, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb6, 0x01, 0xca, 0x41, 0x31, + 0x0a, 0x0b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x22, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x0c, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x22, 0x46, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x73, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x22, 0x55, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x48, 0x12, 0x46, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd6, 0x01, 0x0a, 0x10, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x33, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x57, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x12, 0x46, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x73, 0x12, 0xa3, 0x02, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, + 0xca, 0x41, 0x31, 0x0a, 0x0b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, + 0x12, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x18, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x63, 0x3a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x32, 0x53, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, + 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf3, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x88, 0x01, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x2a, 0x46, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe9, + 0x01, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6d, 0xda, 0x41, 0x0c, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x58, 0x3a, 0x01, 0x2a, 0x22, 0x53, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x79, 0x6e, 0x63, 0x12, 0xe2, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, + 0x63, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, + 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x53, 0x79, 0x6e, 0x63, 0x22, 0x68, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x59, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xf5, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, + 0x6e, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6a, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x12, 0x59, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xe1, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x23, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes = make([]protoimpl.MessageInfo, 21) +var file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_goTypes = []interface{}{ + (*CreateFeatureOnlineStoreRequest)(nil), // 0: google.cloud.aiplatform.v1.CreateFeatureOnlineStoreRequest + (*GetFeatureOnlineStoreRequest)(nil), // 1: google.cloud.aiplatform.v1.GetFeatureOnlineStoreRequest + (*ListFeatureOnlineStoresRequest)(nil), // 2: google.cloud.aiplatform.v1.ListFeatureOnlineStoresRequest + (*ListFeatureOnlineStoresResponse)(nil), // 3: google.cloud.aiplatform.v1.ListFeatureOnlineStoresResponse + (*UpdateFeatureOnlineStoreRequest)(nil), // 4: google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreRequest + (*DeleteFeatureOnlineStoreRequest)(nil), // 5: google.cloud.aiplatform.v1.DeleteFeatureOnlineStoreRequest + (*CreateFeatureViewRequest)(nil), // 6: google.cloud.aiplatform.v1.CreateFeatureViewRequest + (*GetFeatureViewRequest)(nil), // 7: google.cloud.aiplatform.v1.GetFeatureViewRequest + (*ListFeatureViewsRequest)(nil), // 8: google.cloud.aiplatform.v1.ListFeatureViewsRequest + (*ListFeatureViewsResponse)(nil), // 9: google.cloud.aiplatform.v1.ListFeatureViewsResponse + (*UpdateFeatureViewRequest)(nil), // 10: google.cloud.aiplatform.v1.UpdateFeatureViewRequest + (*DeleteFeatureViewRequest)(nil), // 11: google.cloud.aiplatform.v1.DeleteFeatureViewRequest + (*CreateFeatureOnlineStoreOperationMetadata)(nil), // 12: google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata + (*UpdateFeatureOnlineStoreOperationMetadata)(nil), // 13: google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreOperationMetadata + (*CreateFeatureViewOperationMetadata)(nil), // 14: google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata + (*UpdateFeatureViewOperationMetadata)(nil), // 15: google.cloud.aiplatform.v1.UpdateFeatureViewOperationMetadata + (*SyncFeatureViewRequest)(nil), // 16: google.cloud.aiplatform.v1.SyncFeatureViewRequest + (*SyncFeatureViewResponse)(nil), // 17: google.cloud.aiplatform.v1.SyncFeatureViewResponse + (*GetFeatureViewSyncRequest)(nil), // 18: google.cloud.aiplatform.v1.GetFeatureViewSyncRequest + (*ListFeatureViewSyncsRequest)(nil), // 19: google.cloud.aiplatform.v1.ListFeatureViewSyncsRequest + (*ListFeatureViewSyncsResponse)(nil), // 20: google.cloud.aiplatform.v1.ListFeatureViewSyncsResponse + (*FeatureOnlineStore)(nil), // 21: google.cloud.aiplatform.v1.FeatureOnlineStore + (*fieldmaskpb.FieldMask)(nil), // 22: google.protobuf.FieldMask + (*FeatureView)(nil), // 23: google.cloud.aiplatform.v1.FeatureView + (*GenericOperationMetadata)(nil), // 24: google.cloud.aiplatform.v1.GenericOperationMetadata + (*FeatureViewSync)(nil), // 25: google.cloud.aiplatform.v1.FeatureViewSync + (*longrunningpb.Operation)(nil), // 26: google.longrunning.Operation +} +var file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_depIdxs = []int32{ + 21, // 0: google.cloud.aiplatform.v1.CreateFeatureOnlineStoreRequest.feature_online_store:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore + 21, // 1: google.cloud.aiplatform.v1.ListFeatureOnlineStoresResponse.feature_online_stores:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore + 21, // 2: google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreRequest.feature_online_store:type_name -> google.cloud.aiplatform.v1.FeatureOnlineStore + 22, // 3: google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreRequest.update_mask:type_name -> google.protobuf.FieldMask + 23, // 4: google.cloud.aiplatform.v1.CreateFeatureViewRequest.feature_view:type_name -> google.cloud.aiplatform.v1.FeatureView + 23, // 5: google.cloud.aiplatform.v1.ListFeatureViewsResponse.feature_views:type_name -> google.cloud.aiplatform.v1.FeatureView + 23, // 6: google.cloud.aiplatform.v1.UpdateFeatureViewRequest.feature_view:type_name -> google.cloud.aiplatform.v1.FeatureView + 22, // 7: google.cloud.aiplatform.v1.UpdateFeatureViewRequest.update_mask:type_name -> google.protobuf.FieldMask + 24, // 8: google.cloud.aiplatform.v1.CreateFeatureOnlineStoreOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 24, // 9: google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 24, // 10: google.cloud.aiplatform.v1.CreateFeatureViewOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 24, // 11: google.cloud.aiplatform.v1.UpdateFeatureViewOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 25, // 12: google.cloud.aiplatform.v1.ListFeatureViewSyncsResponse.feature_view_syncs:type_name -> google.cloud.aiplatform.v1.FeatureViewSync + 0, // 13: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureOnlineStore:input_type -> google.cloud.aiplatform.v1.CreateFeatureOnlineStoreRequest + 1, // 14: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureOnlineStore:input_type -> google.cloud.aiplatform.v1.GetFeatureOnlineStoreRequest + 2, // 15: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores:input_type -> google.cloud.aiplatform.v1.ListFeatureOnlineStoresRequest + 4, // 16: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureOnlineStore:input_type -> google.cloud.aiplatform.v1.UpdateFeatureOnlineStoreRequest + 5, // 17: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureOnlineStore:input_type -> google.cloud.aiplatform.v1.DeleteFeatureOnlineStoreRequest + 6, // 18: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureView:input_type -> google.cloud.aiplatform.v1.CreateFeatureViewRequest + 7, // 19: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureView:input_type -> google.cloud.aiplatform.v1.GetFeatureViewRequest + 8, // 20: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews:input_type -> google.cloud.aiplatform.v1.ListFeatureViewsRequest + 10, // 21: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureView:input_type -> google.cloud.aiplatform.v1.UpdateFeatureViewRequest + 11, // 22: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureView:input_type -> google.cloud.aiplatform.v1.DeleteFeatureViewRequest + 16, // 23: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView:input_type -> google.cloud.aiplatform.v1.SyncFeatureViewRequest + 18, // 24: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureViewSync:input_type -> google.cloud.aiplatform.v1.GetFeatureViewSyncRequest + 19, // 25: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs:input_type -> google.cloud.aiplatform.v1.ListFeatureViewSyncsRequest + 26, // 26: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureOnlineStore:output_type -> google.longrunning.Operation + 21, // 27: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureOnlineStore:output_type -> google.cloud.aiplatform.v1.FeatureOnlineStore + 3, // 28: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores:output_type -> google.cloud.aiplatform.v1.ListFeatureOnlineStoresResponse + 26, // 29: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureOnlineStore:output_type -> google.longrunning.Operation + 26, // 30: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureOnlineStore:output_type -> google.longrunning.Operation + 26, // 31: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureView:output_type -> google.longrunning.Operation + 23, // 32: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureView:output_type -> google.cloud.aiplatform.v1.FeatureView + 9, // 33: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews:output_type -> google.cloud.aiplatform.v1.ListFeatureViewsResponse + 26, // 34: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureView:output_type -> google.longrunning.Operation + 26, // 35: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureView:output_type -> google.longrunning.Operation + 17, // 36: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView:output_type -> google.cloud.aiplatform.v1.SyncFeatureViewResponse + 25, // 37: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureViewSync:output_type -> google.cloud.aiplatform.v1.FeatureViewSync + 20, // 38: google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs:output_type -> google.cloud.aiplatform.v1.ListFeatureViewSyncsResponse + 26, // [26:39] is the sub-list for method output_type + 13, // [13:26] is the sub-list for method input_type + 13, // [13:13] is the sub-list for extension type_name + 13, // [13:13] is the sub-list for extension extendee + 0, // [0:13] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_init() } +func file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_init() { + if File_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto != nil { + return + } + file_google_cloud_aiplatform_v1_feature_online_store_proto_init() + file_google_cloud_aiplatform_v1_feature_view_proto_init() + file_google_cloud_aiplatform_v1_feature_view_sync_proto_init() + file_google_cloud_aiplatform_v1_operation_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureOnlineStoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeatureOnlineStoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureOnlineStoresRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureOnlineStoresResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureOnlineStoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFeatureOnlineStoreRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureViewRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeatureViewRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureViewsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureViewsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureViewRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFeatureViewRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureOnlineStoreOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureOnlineStoreOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureViewOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureViewOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncFeatureViewRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SyncFeatureViewResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeatureViewSyncRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureViewSyncsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureViewSyncsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 21, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto = out.File + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_online_store_admin_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// FeatureOnlineStoreAdminServiceClient is the client API for FeatureOnlineStoreAdminService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeatureOnlineStoreAdminServiceClient interface { + // Creates a new FeatureOnlineStore in a given project and location. + CreateFeatureOnlineStore(ctx context.Context, in *CreateFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets details of a single FeatureOnlineStore. + GetFeatureOnlineStore(ctx context.Context, in *GetFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*FeatureOnlineStore, error) + // Lists FeatureOnlineStores in a given project and location. + ListFeatureOnlineStores(ctx context.Context, in *ListFeatureOnlineStoresRequest, opts ...grpc.CallOption) (*ListFeatureOnlineStoresResponse, error) + // Updates the parameters of a single FeatureOnlineStore. + UpdateFeatureOnlineStore(ctx context.Context, in *UpdateFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single FeatureOnlineStore. The FeatureOnlineStore must not + // contain any FeatureViews. + DeleteFeatureOnlineStore(ctx context.Context, in *DeleteFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a new FeatureView in a given FeatureOnlineStore. + CreateFeatureView(ctx context.Context, in *CreateFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets details of a single FeatureView. + GetFeatureView(ctx context.Context, in *GetFeatureViewRequest, opts ...grpc.CallOption) (*FeatureView, error) + // Lists FeatureViews in a given FeatureOnlineStore. + ListFeatureViews(ctx context.Context, in *ListFeatureViewsRequest, opts ...grpc.CallOption) (*ListFeatureViewsResponse, error) + // Updates the parameters of a single FeatureView. + UpdateFeatureView(ctx context.Context, in *UpdateFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single FeatureView. + DeleteFeatureView(ctx context.Context, in *DeleteFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Triggers on-demand sync for the FeatureView. + SyncFeatureView(ctx context.Context, in *SyncFeatureViewRequest, opts ...grpc.CallOption) (*SyncFeatureViewResponse, error) + // Gets details of a single FeatureViewSync. + GetFeatureViewSync(ctx context.Context, in *GetFeatureViewSyncRequest, opts ...grpc.CallOption) (*FeatureViewSync, error) + // Lists FeatureViewSyncs in a given FeatureView. + ListFeatureViewSyncs(ctx context.Context, in *ListFeatureViewSyncsRequest, opts ...grpc.CallOption) (*ListFeatureViewSyncsResponse, error) +} + +type featureOnlineStoreAdminServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFeatureOnlineStoreAdminServiceClient(cc grpc.ClientConnInterface) FeatureOnlineStoreAdminServiceClient { + return &featureOnlineStoreAdminServiceClient{cc} +} + +func (c *featureOnlineStoreAdminServiceClient) CreateFeatureOnlineStore(ctx context.Context, in *CreateFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/CreateFeatureOnlineStore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) GetFeatureOnlineStore(ctx context.Context, in *GetFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*FeatureOnlineStore, error) { + out := new(FeatureOnlineStore) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureOnlineStore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) ListFeatureOnlineStores(ctx context.Context, in *ListFeatureOnlineStoresRequest, opts ...grpc.CallOption) (*ListFeatureOnlineStoresResponse, error) { + out := new(ListFeatureOnlineStoresResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureOnlineStores", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) UpdateFeatureOnlineStore(ctx context.Context, in *UpdateFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/UpdateFeatureOnlineStore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) DeleteFeatureOnlineStore(ctx context.Context, in *DeleteFeatureOnlineStoreRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/DeleteFeatureOnlineStore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) CreateFeatureView(ctx context.Context, in *CreateFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/CreateFeatureView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) GetFeatureView(ctx context.Context, in *GetFeatureViewRequest, opts ...grpc.CallOption) (*FeatureView, error) { + out := new(FeatureView) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) ListFeatureViews(ctx context.Context, in *ListFeatureViewsRequest, opts ...grpc.CallOption) (*ListFeatureViewsResponse, error) { + out := new(ListFeatureViewsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureViews", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) UpdateFeatureView(ctx context.Context, in *UpdateFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/UpdateFeatureView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) DeleteFeatureView(ctx context.Context, in *DeleteFeatureViewRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/DeleteFeatureView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) SyncFeatureView(ctx context.Context, in *SyncFeatureViewRequest, opts ...grpc.CallOption) (*SyncFeatureViewResponse, error) { + out := new(SyncFeatureViewResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/SyncFeatureView", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) GetFeatureViewSync(ctx context.Context, in *GetFeatureViewSyncRequest, opts ...grpc.CallOption) (*FeatureViewSync, error) { + out := new(FeatureViewSync) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureViewSync", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureOnlineStoreAdminServiceClient) ListFeatureViewSyncs(ctx context.Context, in *ListFeatureViewSyncsRequest, opts ...grpc.CallOption) (*ListFeatureViewSyncsResponse, error) { + out := new(ListFeatureViewSyncsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureViewSyncs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeatureOnlineStoreAdminServiceServer is the server API for FeatureOnlineStoreAdminService service. +type FeatureOnlineStoreAdminServiceServer interface { + // Creates a new FeatureOnlineStore in a given project and location. + CreateFeatureOnlineStore(context.Context, *CreateFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) + // Gets details of a single FeatureOnlineStore. + GetFeatureOnlineStore(context.Context, *GetFeatureOnlineStoreRequest) (*FeatureOnlineStore, error) + // Lists FeatureOnlineStores in a given project and location. + ListFeatureOnlineStores(context.Context, *ListFeatureOnlineStoresRequest) (*ListFeatureOnlineStoresResponse, error) + // Updates the parameters of a single FeatureOnlineStore. + UpdateFeatureOnlineStore(context.Context, *UpdateFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) + // Deletes a single FeatureOnlineStore. The FeatureOnlineStore must not + // contain any FeatureViews. + DeleteFeatureOnlineStore(context.Context, *DeleteFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) + // Creates a new FeatureView in a given FeatureOnlineStore. + CreateFeatureView(context.Context, *CreateFeatureViewRequest) (*longrunningpb.Operation, error) + // Gets details of a single FeatureView. + GetFeatureView(context.Context, *GetFeatureViewRequest) (*FeatureView, error) + // Lists FeatureViews in a given FeatureOnlineStore. + ListFeatureViews(context.Context, *ListFeatureViewsRequest) (*ListFeatureViewsResponse, error) + // Updates the parameters of a single FeatureView. + UpdateFeatureView(context.Context, *UpdateFeatureViewRequest) (*longrunningpb.Operation, error) + // Deletes a single FeatureView. + DeleteFeatureView(context.Context, *DeleteFeatureViewRequest) (*longrunningpb.Operation, error) + // Triggers on-demand sync for the FeatureView. + SyncFeatureView(context.Context, *SyncFeatureViewRequest) (*SyncFeatureViewResponse, error) + // Gets details of a single FeatureViewSync. + GetFeatureViewSync(context.Context, *GetFeatureViewSyncRequest) (*FeatureViewSync, error) + // Lists FeatureViewSyncs in a given FeatureView. + ListFeatureViewSyncs(context.Context, *ListFeatureViewSyncsRequest) (*ListFeatureViewSyncsResponse, error) +} + +// UnimplementedFeatureOnlineStoreAdminServiceServer can be embedded to have forward compatible implementations. +type UnimplementedFeatureOnlineStoreAdminServiceServer struct { +} + +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) CreateFeatureOnlineStore(context.Context, *CreateFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFeatureOnlineStore not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) GetFeatureOnlineStore(context.Context, *GetFeatureOnlineStoreRequest) (*FeatureOnlineStore, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFeatureOnlineStore not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) ListFeatureOnlineStores(context.Context, *ListFeatureOnlineStoresRequest) (*ListFeatureOnlineStoresResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFeatureOnlineStores not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) UpdateFeatureOnlineStore(context.Context, *UpdateFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureOnlineStore not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) DeleteFeatureOnlineStore(context.Context, *DeleteFeatureOnlineStoreRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFeatureOnlineStore not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) CreateFeatureView(context.Context, *CreateFeatureViewRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFeatureView not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) GetFeatureView(context.Context, *GetFeatureViewRequest) (*FeatureView, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFeatureView not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) ListFeatureViews(context.Context, *ListFeatureViewsRequest) (*ListFeatureViewsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFeatureViews not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) UpdateFeatureView(context.Context, *UpdateFeatureViewRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureView not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) DeleteFeatureView(context.Context, *DeleteFeatureViewRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFeatureView not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) SyncFeatureView(context.Context, *SyncFeatureViewRequest) (*SyncFeatureViewResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SyncFeatureView not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) GetFeatureViewSync(context.Context, *GetFeatureViewSyncRequest) (*FeatureViewSync, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFeatureViewSync not implemented") +} +func (*UnimplementedFeatureOnlineStoreAdminServiceServer) ListFeatureViewSyncs(context.Context, *ListFeatureViewSyncsRequest) (*ListFeatureViewSyncsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFeatureViewSyncs not implemented") +} + +func RegisterFeatureOnlineStoreAdminServiceServer(s *grpc.Server, srv FeatureOnlineStoreAdminServiceServer) { + s.RegisterService(&_FeatureOnlineStoreAdminService_serviceDesc, srv) +} + +func _FeatureOnlineStoreAdminService_CreateFeatureOnlineStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFeatureOnlineStoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).CreateFeatureOnlineStore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/CreateFeatureOnlineStore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).CreateFeatureOnlineStore(ctx, req.(*CreateFeatureOnlineStoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_GetFeatureOnlineStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeatureOnlineStoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureOnlineStore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureOnlineStore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureOnlineStore(ctx, req.(*GetFeatureOnlineStoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_ListFeatureOnlineStores_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFeatureOnlineStoresRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureOnlineStores(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureOnlineStores", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureOnlineStores(ctx, req.(*ListFeatureOnlineStoresRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_UpdateFeatureOnlineStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFeatureOnlineStoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).UpdateFeatureOnlineStore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/UpdateFeatureOnlineStore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).UpdateFeatureOnlineStore(ctx, req.(*UpdateFeatureOnlineStoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_DeleteFeatureOnlineStore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFeatureOnlineStoreRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).DeleteFeatureOnlineStore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/DeleteFeatureOnlineStore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).DeleteFeatureOnlineStore(ctx, req.(*DeleteFeatureOnlineStoreRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_CreateFeatureView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFeatureViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).CreateFeatureView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/CreateFeatureView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).CreateFeatureView(ctx, req.(*CreateFeatureViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_GetFeatureView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeatureViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureView(ctx, req.(*GetFeatureViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_ListFeatureViews_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFeatureViewsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureViews(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureViews", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureViews(ctx, req.(*ListFeatureViewsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_UpdateFeatureView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFeatureViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).UpdateFeatureView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/UpdateFeatureView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).UpdateFeatureView(ctx, req.(*UpdateFeatureViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_DeleteFeatureView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFeatureViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).DeleteFeatureView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/DeleteFeatureView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).DeleteFeatureView(ctx, req.(*DeleteFeatureViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_SyncFeatureView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SyncFeatureViewRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).SyncFeatureView(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/SyncFeatureView", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).SyncFeatureView(ctx, req.(*SyncFeatureViewRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_GetFeatureViewSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeatureViewSyncRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureViewSync(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/GetFeatureViewSync", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).GetFeatureViewSync(ctx, req.(*GetFeatureViewSyncRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureOnlineStoreAdminService_ListFeatureViewSyncs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFeatureViewSyncsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureViewSyncs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService/ListFeatureViewSyncs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreAdminServiceServer).ListFeatureViewSyncs(ctx, req.(*ListFeatureViewSyncsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeatureOnlineStoreAdminService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService", + HandlerType: (*FeatureOnlineStoreAdminServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateFeatureOnlineStore", + Handler: _FeatureOnlineStoreAdminService_CreateFeatureOnlineStore_Handler, + }, + { + MethodName: "GetFeatureOnlineStore", + Handler: _FeatureOnlineStoreAdminService_GetFeatureOnlineStore_Handler, + }, + { + MethodName: "ListFeatureOnlineStores", + Handler: _FeatureOnlineStoreAdminService_ListFeatureOnlineStores_Handler, + }, + { + MethodName: "UpdateFeatureOnlineStore", + Handler: _FeatureOnlineStoreAdminService_UpdateFeatureOnlineStore_Handler, + }, + { + MethodName: "DeleteFeatureOnlineStore", + Handler: _FeatureOnlineStoreAdminService_DeleteFeatureOnlineStore_Handler, + }, + { + MethodName: "CreateFeatureView", + Handler: _FeatureOnlineStoreAdminService_CreateFeatureView_Handler, + }, + { + MethodName: "GetFeatureView", + Handler: _FeatureOnlineStoreAdminService_GetFeatureView_Handler, + }, + { + MethodName: "ListFeatureViews", + Handler: _FeatureOnlineStoreAdminService_ListFeatureViews_Handler, + }, + { + MethodName: "UpdateFeatureView", + Handler: _FeatureOnlineStoreAdminService_UpdateFeatureView_Handler, + }, + { + MethodName: "DeleteFeatureView", + Handler: _FeatureOnlineStoreAdminService_DeleteFeatureView_Handler, + }, + { + MethodName: "SyncFeatureView", + Handler: _FeatureOnlineStoreAdminService_SyncFeatureView_Handler, + }, + { + MethodName: "GetFeatureViewSync", + Handler: _FeatureOnlineStoreAdminService_GetFeatureViewSync_Handler, + }, + { + MethodName: "ListFeatureViewSyncs", + Handler: _FeatureOnlineStoreAdminService_ListFeatureViewSyncs_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/aiplatform/v1/feature_online_store_admin_service.proto", +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_online_store_service.pb.go b/aiplatform/apiv1/aiplatformpb/feature_online_store_service.pb.go new file mode 100755 index 000000000000..6aa772879d8f --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_online_store_service.pb.go @@ -0,0 +1,788 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_online_store_service.proto + +package aiplatformpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Format of the data in the Feature View. +type FeatureViewDataFormat int32 + +const ( + // Not set. Will be treated as the KeyValue format. + FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED FeatureViewDataFormat = 0 + // Return response data in key-value format. + FeatureViewDataFormat_KEY_VALUE FeatureViewDataFormat = 1 + // Return response data in proto Struct format. + FeatureViewDataFormat_PROTO_STRUCT FeatureViewDataFormat = 2 +) + +// Enum value maps for FeatureViewDataFormat. +var ( + FeatureViewDataFormat_name = map[int32]string{ + 0: "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED", + 1: "KEY_VALUE", + 2: "PROTO_STRUCT", + } + FeatureViewDataFormat_value = map[string]int32{ + "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED": 0, + "KEY_VALUE": 1, + "PROTO_STRUCT": 2, + } +) + +func (x FeatureViewDataFormat) Enum() *FeatureViewDataFormat { + p := new(FeatureViewDataFormat) + *p = x + return p +} + +func (x FeatureViewDataFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FeatureViewDataFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[0].Descriptor() +} + +func (FeatureViewDataFormat) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes[0] +} + +func (x FeatureViewDataFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FeatureViewDataFormat.Descriptor instead. +func (FeatureViewDataFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{0} +} + +// Lookup key for a feature view. +type FeatureViewDataKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to KeyOneof: + // *FeatureViewDataKey_Key + KeyOneof isFeatureViewDataKey_KeyOneof `protobuf_oneof:"key_oneof"` +} + +func (x *FeatureViewDataKey) Reset() { + *x = FeatureViewDataKey{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureViewDataKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureViewDataKey) ProtoMessage() {} + +func (x *FeatureViewDataKey) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureViewDataKey.ProtoReflect.Descriptor instead. +func (*FeatureViewDataKey) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{0} +} + +func (m *FeatureViewDataKey) GetKeyOneof() isFeatureViewDataKey_KeyOneof { + if m != nil { + return m.KeyOneof + } + return nil +} + +func (x *FeatureViewDataKey) GetKey() string { + if x, ok := x.GetKeyOneof().(*FeatureViewDataKey_Key); ok { + return x.Key + } + return "" +} + +type isFeatureViewDataKey_KeyOneof interface { + isFeatureViewDataKey_KeyOneof() +} + +type FeatureViewDataKey_Key struct { + // String key to use for lookup. + Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"` +} + +func (*FeatureViewDataKey_Key) isFeatureViewDataKey_KeyOneof() {} + +// Request message for +// [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues]. +// All the features under the requested feature view will be returned. +type FetchFeatureValuesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. FeatureView resource format + // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}` + FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"` + // Optional. The request key to fetch feature values for. + DataKey *FeatureViewDataKey `protobuf:"bytes,6,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"` + // Optional. Response data format. If not set, + // [FeatureViewDataFormat.KEY_VALUE][google.cloud.aiplatform.v1.FeatureViewDataFormat.KEY_VALUE] + // will be used. + DataFormat FeatureViewDataFormat `protobuf:"varint,7,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.aiplatform.v1.FeatureViewDataFormat" json:"data_format,omitempty"` +} + +func (x *FetchFeatureValuesRequest) Reset() { + *x = FetchFeatureValuesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchFeatureValuesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchFeatureValuesRequest) ProtoMessage() {} + +func (x *FetchFeatureValuesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchFeatureValuesRequest.ProtoReflect.Descriptor instead. +func (*FetchFeatureValuesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{1} +} + +func (x *FetchFeatureValuesRequest) GetFeatureView() string { + if x != nil { + return x.FeatureView + } + return "" +} + +func (x *FetchFeatureValuesRequest) GetDataKey() *FeatureViewDataKey { + if x != nil { + return x.DataKey + } + return nil +} + +func (x *FetchFeatureValuesRequest) GetDataFormat() FeatureViewDataFormat { + if x != nil { + return x.DataFormat + } + return FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED +} + +// Response message for +// [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues] +type FetchFeatureValuesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Format: + // *FetchFeatureValuesResponse_KeyValues + // *FetchFeatureValuesResponse_ProtoStruct + Format isFetchFeatureValuesResponse_Format `protobuf_oneof:"format"` +} + +func (x *FetchFeatureValuesResponse) Reset() { + *x = FetchFeatureValuesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchFeatureValuesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchFeatureValuesResponse) ProtoMessage() {} + +func (x *FetchFeatureValuesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchFeatureValuesResponse.ProtoReflect.Descriptor instead. +func (*FetchFeatureValuesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2} +} + +func (m *FetchFeatureValuesResponse) GetFormat() isFetchFeatureValuesResponse_Format { + if m != nil { + return m.Format + } + return nil +} + +func (x *FetchFeatureValuesResponse) GetKeyValues() *FetchFeatureValuesResponse_FeatureNameValuePairList { + if x, ok := x.GetFormat().(*FetchFeatureValuesResponse_KeyValues); ok { + return x.KeyValues + } + return nil +} + +func (x *FetchFeatureValuesResponse) GetProtoStruct() *structpb.Struct { + if x, ok := x.GetFormat().(*FetchFeatureValuesResponse_ProtoStruct); ok { + return x.ProtoStruct + } + return nil +} + +type isFetchFeatureValuesResponse_Format interface { + isFetchFeatureValuesResponse_Format() +} + +type FetchFeatureValuesResponse_KeyValues struct { + // Feature values in KeyValue format. + KeyValues *FetchFeatureValuesResponse_FeatureNameValuePairList `protobuf:"bytes,3,opt,name=key_values,json=keyValues,proto3,oneof"` +} + +type FetchFeatureValuesResponse_ProtoStruct struct { + // Feature values in proto Struct format. + ProtoStruct *structpb.Struct `protobuf:"bytes,2,opt,name=proto_struct,json=protoStruct,proto3,oneof"` +} + +func (*FetchFeatureValuesResponse_KeyValues) isFetchFeatureValuesResponse_Format() {} + +func (*FetchFeatureValuesResponse_ProtoStruct) isFetchFeatureValuesResponse_Format() {} + +// Response structure in the format of key (feature name) and (feature) value +// pair. +type FetchFeatureValuesResponse_FeatureNameValuePairList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // List of feature names and values. + Features []*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair `protobuf:"bytes,1,rep,name=features,proto3" json:"features,omitempty"` +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) Reset() { + *x = FetchFeatureValuesResponse_FeatureNameValuePairList{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoMessage() {} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList.ProtoReflect.Descriptor instead. +func (*FetchFeatureValuesResponse_FeatureNameValuePairList) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0} +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) GetFeatures() []*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair { + if x != nil { + return x.Features + } + return nil +} + +// Feature name & value pair. +type FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Data: + // *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value + Data isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data `protobuf_oneof:"data"` + // Feature short name. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Reset() { + *x = FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoMessage() {} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair.ProtoReflect.Descriptor instead. +func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0, 0} +} + +func (m *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetData() isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data { + if m != nil { + return m.Data + } + return nil +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetValue() *FeatureValue { + if x, ok := x.GetData().(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value); ok { + return x.Value + } + return nil +} + +func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data interface { + isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data() +} + +type FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value struct { + // Feature value. + Value *FeatureValue `protobuf:"bytes,2,opt,name=value,proto3,oneof"` +} + +func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value) isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data() { +} + +var File_google_cloud_aiplatform_v1_feature_online_store_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc = []byte{ + 0x0a, 0x3d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x3c, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x12, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, + 0x12, 0x12, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, + 0x66, 0x22, 0x96, 0x02, 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x50, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, + 0x77, 0x12, 0x4e, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, + 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, + 0x79, 0x12, 0x57, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, + 0x64, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xec, 0x03, 0x0a, 0x1a, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x70, 0x0a, 0x0a, 0x6b, 0x65, 0x79, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, + 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x93, 0x02, 0x0a, 0x18, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, + 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, + 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x74, 0x0a, 0x14, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, + 0x72, 0x12, 0x40, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, + 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x2a, 0x62, 0x0a, 0x15, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x28, 0x0a, 0x24, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x56, 0x49, + 0x45, 0x57, 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, + 0x52, 0x4f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x02, 0x32, 0xf8, 0x02, + 0x0a, 0x19, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8b, 0x02, 0x0a, 0x12, + 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x85, 0x01, 0xda, 0x41, 0x16, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, + 0x69, 0x65, 0x77, 0x2c, 0x20, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x66, 0x3a, 0x01, 0x2a, 0x22, 0x61, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x66, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xdc, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x1e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes = []interface{}{ + (FeatureViewDataFormat)(0), // 0: google.cloud.aiplatform.v1.FeatureViewDataFormat + (*FeatureViewDataKey)(nil), // 1: google.cloud.aiplatform.v1.FeatureViewDataKey + (*FetchFeatureValuesRequest)(nil), // 2: google.cloud.aiplatform.v1.FetchFeatureValuesRequest + (*FetchFeatureValuesResponse)(nil), // 3: google.cloud.aiplatform.v1.FetchFeatureValuesResponse + (*FetchFeatureValuesResponse_FeatureNameValuePairList)(nil), // 4: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList + (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair)(nil), // 5: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair + (*structpb.Struct)(nil), // 6: google.protobuf.Struct + (*FeatureValue)(nil), // 7: google.cloud.aiplatform.v1.FeatureValue +} +var file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs = []int32{ + 1, // 0: google.cloud.aiplatform.v1.FetchFeatureValuesRequest.data_key:type_name -> google.cloud.aiplatform.v1.FeatureViewDataKey + 0, // 1: google.cloud.aiplatform.v1.FetchFeatureValuesRequest.data_format:type_name -> google.cloud.aiplatform.v1.FeatureViewDataFormat + 4, // 2: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.key_values:type_name -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList + 6, // 3: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.proto_struct:type_name -> google.protobuf.Struct + 5, // 4: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.features:type_name -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair + 7, // 5: google.cloud.aiplatform.v1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair.value:type_name -> google.cloud.aiplatform.v1.FeatureValue + 2, // 6: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues:input_type -> google.cloud.aiplatform.v1.FetchFeatureValuesRequest + 3, // 7: google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues:output_type -> google.cloud.aiplatform.v1.FetchFeatureValuesResponse + 7, // [7:8] is the sub-list for method output_type + 6, // [6:7] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_online_store_service_proto_init() } +func file_google_cloud_aiplatform_v1_feature_online_store_service_proto_init() { + if File_google_cloud_aiplatform_v1_feature_online_store_service_proto != nil { + return + } + file_google_cloud_aiplatform_v1_featurestore_online_service_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureViewDataKey); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchFeatureValuesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchFeatureValuesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FeatureViewDataKey_Key)(nil), + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*FetchFeatureValuesResponse_KeyValues)(nil), + (*FetchFeatureValuesResponse_ProtoStruct)(nil), + } + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes[4].OneofWrappers = []interface{}{ + (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs, + EnumInfos: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_enumTypes, + MessageInfos: file_google_cloud_aiplatform_v1_feature_online_store_service_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_online_store_service_proto = out.File + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_online_store_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// FeatureOnlineStoreServiceClient is the client API for FeatureOnlineStoreService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeatureOnlineStoreServiceClient interface { + // Fetch feature values under a FeatureView. + FetchFeatureValues(ctx context.Context, in *FetchFeatureValuesRequest, opts ...grpc.CallOption) (*FetchFeatureValuesResponse, error) +} + +type featureOnlineStoreServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFeatureOnlineStoreServiceClient(cc grpc.ClientConnInterface) FeatureOnlineStoreServiceClient { + return &featureOnlineStoreServiceClient{cc} +} + +func (c *featureOnlineStoreServiceClient) FetchFeatureValues(ctx context.Context, in *FetchFeatureValuesRequest, opts ...grpc.CallOption) (*FetchFeatureValuesResponse, error) { + out := new(FetchFeatureValuesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureOnlineStoreService/FetchFeatureValues", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeatureOnlineStoreServiceServer is the server API for FeatureOnlineStoreService service. +type FeatureOnlineStoreServiceServer interface { + // Fetch feature values under a FeatureView. + FetchFeatureValues(context.Context, *FetchFeatureValuesRequest) (*FetchFeatureValuesResponse, error) +} + +// UnimplementedFeatureOnlineStoreServiceServer can be embedded to have forward compatible implementations. +type UnimplementedFeatureOnlineStoreServiceServer struct { +} + +func (*UnimplementedFeatureOnlineStoreServiceServer) FetchFeatureValues(context.Context, *FetchFeatureValuesRequest) (*FetchFeatureValuesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method FetchFeatureValues not implemented") +} + +func RegisterFeatureOnlineStoreServiceServer(s *grpc.Server, srv FeatureOnlineStoreServiceServer) { + s.RegisterService(&_FeatureOnlineStoreService_serviceDesc, srv) +} + +func _FeatureOnlineStoreService_FetchFeatureValues_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FetchFeatureValuesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureOnlineStoreServiceServer).FetchFeatureValues(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureOnlineStoreService/FetchFeatureValues", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureOnlineStoreServiceServer).FetchFeatureValues(ctx, req.(*FetchFeatureValuesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeatureOnlineStoreService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.aiplatform.v1.FeatureOnlineStoreService", + HandlerType: (*FeatureOnlineStoreServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "FetchFeatureValues", + Handler: _FeatureOnlineStoreService_FetchFeatureValues_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/aiplatform/v1/feature_online_store_service.proto", +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_registry_service.pb.go b/aiplatform/apiv1/aiplatformpb/feature_registry_service.pb.go new file mode 100755 index 000000000000..f6f0d60d248e --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_registry_service.pb.go @@ -0,0 +1,1622 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_registry_service.proto + +package aiplatformpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Request message for +// [FeatureRegistryService.CreateFeatureGroup][google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeatureGroup]. +type CreateFeatureGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Location to create FeatureGroups. + // Format: + // `projects/{project}/locations/{location}'` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The FeatureGroup to create. + FeatureGroup *FeatureGroup `protobuf:"bytes,2,opt,name=feature_group,json=featureGroup,proto3" json:"feature_group,omitempty"` + // Required. The ID to use for this FeatureGroup, which will become the final + // component of the FeatureGroup's resource name. + // + // This value may be up to 60 characters, and valid characters are + // `[a-z0-9_]`. The first character cannot be a number. + // + // The value must be unique within the project and location. + FeatureGroupId string `protobuf:"bytes,3,opt,name=feature_group_id,json=featureGroupId,proto3" json:"feature_group_id,omitempty"` +} + +func (x *CreateFeatureGroupRequest) Reset() { + *x = CreateFeatureGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureGroupRequest) ProtoMessage() {} + +func (x *CreateFeatureGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureGroupRequest.ProtoReflect.Descriptor instead. +func (*CreateFeatureGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateFeatureGroupRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateFeatureGroupRequest) GetFeatureGroup() *FeatureGroup { + if x != nil { + return x.FeatureGroup + } + return nil +} + +func (x *CreateFeatureGroupRequest) GetFeatureGroupId() string { + if x != nil { + return x.FeatureGroupId + } + return "" +} + +// Request message for +// [FeatureRegistryService.GetFeatureGroup][google.cloud.aiplatform.v1.FeatureRegistryService.GetFeatureGroup]. +type GetFeatureGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureGroup resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetFeatureGroupRequest) Reset() { + *x = GetFeatureGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFeatureGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureGroupRequest) ProtoMessage() {} + +func (x *GetFeatureGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureGroupRequest.ProtoReflect.Descriptor instead. +func (*GetFeatureGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{1} +} + +func (x *GetFeatureGroupRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for +// [FeatureRegistryService.ListFeatureGroups][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatureGroups]. +type ListFeatureGroupsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the Location to list FeatureGroups. + // Format: + // `projects/{project}/locations/{location}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Lists the FeatureGroups that match the filter expression. The + // following fields are supported: + // + // * `create_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be + // in RFC 3339 format. + // * `update_time`: Supports `=`, `!=`, `<`, `>`, `<=`, and `>=` comparisons. + // Values must be + // in RFC 3339 format. + // * `labels`: Supports key-value equality and key presence. + // + // Examples: + // + // * `create_time > "2020-01-01" OR update_time > "2020-01-01"` + // FeatureGroups created or updated after 2020-01-01. + // * `labels.env = "prod"` + // FeatureGroups with label "env" set to "prod". + Filter string `protobuf:"bytes,2,opt,name=filter,proto3" json:"filter,omitempty"` + // The maximum number of FeatureGroups to return. The service may return + // fewer than this value. If unspecified, at most 100 FeatureGroups will + // be returned. The maximum value is 100; any value greater than 100 will be + // coerced to 100. + PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous + // [FeatureGroupAdminService.ListFeatureGroups][] call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // [FeatureGroupAdminService.ListFeatureGroups][] must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // A comma-separated list of fields to order by, sorted in ascending order. + // Use "desc" after a field name for descending. + // Supported Fields: + // + // * `create_time` + // * `update_time` + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListFeatureGroupsRequest) Reset() { + *x = ListFeatureGroupsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureGroupsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureGroupsRequest) ProtoMessage() {} + +func (x *ListFeatureGroupsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureGroupsRequest.ProtoReflect.Descriptor instead. +func (*ListFeatureGroupsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ListFeatureGroupsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListFeatureGroupsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListFeatureGroupsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListFeatureGroupsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListFeatureGroupsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message for +// [FeatureRegistryService.ListFeatureGroups][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatureGroups]. +type ListFeatureGroupsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The FeatureGroups matching the request. + FeatureGroups []*FeatureGroup `protobuf:"bytes,1,rep,name=feature_groups,json=featureGroups,proto3" json:"feature_groups,omitempty"` + // A token, which can be sent as + // [ListFeatureGroupsRequest.page_token][google.cloud.aiplatform.v1.ListFeatureGroupsRequest.page_token] + // to retrieve the next page. If this field is omitted, there are no + // subsequent pages. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListFeatureGroupsResponse) Reset() { + *x = ListFeatureGroupsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListFeatureGroupsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListFeatureGroupsResponse) ProtoMessage() {} + +func (x *ListFeatureGroupsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListFeatureGroupsResponse.ProtoReflect.Descriptor instead. +func (*ListFeatureGroupsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{3} +} + +func (x *ListFeatureGroupsResponse) GetFeatureGroups() []*FeatureGroup { + if x != nil { + return x.FeatureGroups + } + return nil +} + +func (x *ListFeatureGroupsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for +// [FeatureRegistryService.UpdateFeatureGroup][google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeatureGroup]. +type UpdateFeatureGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The FeatureGroup's `name` field is used to identify the + // FeatureGroup to be updated. Format: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` + FeatureGroup *FeatureGroup `protobuf:"bytes,1,opt,name=feature_group,json=featureGroup,proto3" json:"feature_group,omitempty"` + // Field mask is used to specify the fields to be overwritten in the + // FeatureGroup 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 only the non-empty fields present in the + // request will be overwritten. Set the update_mask to `*` to override all + // fields. + // + // Updatable fields: + // + // * `labels` + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateFeatureGroupRequest) Reset() { + *x = UpdateFeatureGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureGroupRequest) ProtoMessage() {} + +func (x *UpdateFeatureGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureGroupRequest.ProtoReflect.Descriptor instead. +func (*UpdateFeatureGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateFeatureGroupRequest) GetFeatureGroup() *FeatureGroup { + if x != nil { + return x.FeatureGroup + } + return nil +} + +func (x *UpdateFeatureGroupRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for +// [FeatureRegistryService.DeleteFeatureGroup][google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeatureGroup]. +type DeleteFeatureGroupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the FeatureGroup to be deleted. + // Format: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If set to true, any Features under this FeatureGroup + // will also be deleted. (Otherwise, the request will only work if the + // FeatureGroup has no Features.) + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *DeleteFeatureGroupRequest) Reset() { + *x = DeleteFeatureGroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFeatureGroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFeatureGroupRequest) ProtoMessage() {} + +func (x *DeleteFeatureGroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFeatureGroupRequest.ProtoReflect.Descriptor instead. +func (*DeleteFeatureGroupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteFeatureGroupRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteFeatureGroupRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// Details of operations that perform create FeatureGroup. +type CreateFeatureGroupOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureGroup. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *CreateFeatureGroupOperationMetadata) Reset() { + *x = CreateFeatureGroupOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFeatureGroupOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFeatureGroupOperationMetadata) ProtoMessage() {} + +func (x *CreateFeatureGroupOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFeatureGroupOperationMetadata.ProtoReflect.Descriptor instead. +func (*CreateFeatureGroupOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{6} +} + +func (x *CreateFeatureGroupOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform update FeatureGroup. +type UpdateFeatureGroupOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for FeatureGroup. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *UpdateFeatureGroupOperationMetadata) Reset() { + *x = UpdateFeatureGroupOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureGroupOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureGroupOperationMetadata) ProtoMessage() {} + +func (x *UpdateFeatureGroupOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureGroupOperationMetadata.ProtoReflect.Descriptor instead. +func (*UpdateFeatureGroupOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{7} +} + +func (x *UpdateFeatureGroupOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform create FeatureGroup. +type CreateRegistryFeatureOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for Feature. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *CreateRegistryFeatureOperationMetadata) Reset() { + *x = CreateRegistryFeatureOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateRegistryFeatureOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateRegistryFeatureOperationMetadata) ProtoMessage() {} + +func (x *CreateRegistryFeatureOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateRegistryFeatureOperationMetadata.ProtoReflect.Descriptor instead. +func (*CreateRegistryFeatureOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{8} +} + +func (x *CreateRegistryFeatureOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +// Details of operations that perform update Feature. +type UpdateFeatureOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operation metadata for Feature Update. + GenericMetadata *GenericOperationMetadata `protobuf:"bytes,1,opt,name=generic_metadata,json=genericMetadata,proto3" json:"generic_metadata,omitempty"` +} + +func (x *UpdateFeatureOperationMetadata) Reset() { + *x = UpdateFeatureOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFeatureOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFeatureOperationMetadata) ProtoMessage() {} + +func (x *UpdateFeatureOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFeatureOperationMetadata.ProtoReflect.Descriptor instead. +func (*UpdateFeatureOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateFeatureOperationMetadata) GetGenericMetadata() *GenericOperationMetadata { + if x != nil { + return x.GenericMetadata + } + return nil +} + +var File_google_cloud_aiplatform_v1_feature_registry_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x28, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2a, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe6, 0x01, 0x0a, 0x19, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x28, 0x12, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x22, 0x5c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x28, 0x0a, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xd1, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x12, 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x22, 0x94, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xac, 0x01, + 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x52, 0x0a, 0x0d, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x75, 0x0a, 0x19, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2e, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x28, 0x0a, + 0x26, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x86, 0x01, 0x0a, + 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x89, 0x01, 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x81, 0x01, 0x0a, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x5f, 0x0a, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x0f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x69, 0x63, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x32, 0xc6, 0x12, 0x0a, 0x16, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x93, 0x02, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, + 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa6, 0x01, + 0xca, 0x41, 0x33, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x23, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x25, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x22, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0xb1, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x40, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x11, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xda, + 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x12, 0x95, 0x02, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, + 0x01, 0xca, 0x41, 0x33, 0x0a, 0x0c, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x19, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x0d, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x6e, 0x61, 0x6d, + 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x12, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0a, 0x6e, 0x61, + 0x6d, 0x65, 0x2c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xf8, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x95, 0x01, 0xca, 0x41, 0x29, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x12, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x07, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, 0x3c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0xad, 0x01, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x22, + 0x4b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x12, 0x3c, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc0, 0x01, 0x0a, + 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x2f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3e, 0x12, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, + 0xfa, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x97, 0x01, 0xca, 0x41, 0x29, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x1e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xda, 0x41, 0x13, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x07, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe0, 0x01, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x7e, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3e, 0x2a, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, + 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, + 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xd9, + 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x42, 0x1b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_google_cloud_aiplatform_v1_feature_registry_service_proto_goTypes = []interface{}{ + (*CreateFeatureGroupRequest)(nil), // 0: google.cloud.aiplatform.v1.CreateFeatureGroupRequest + (*GetFeatureGroupRequest)(nil), // 1: google.cloud.aiplatform.v1.GetFeatureGroupRequest + (*ListFeatureGroupsRequest)(nil), // 2: google.cloud.aiplatform.v1.ListFeatureGroupsRequest + (*ListFeatureGroupsResponse)(nil), // 3: google.cloud.aiplatform.v1.ListFeatureGroupsResponse + (*UpdateFeatureGroupRequest)(nil), // 4: google.cloud.aiplatform.v1.UpdateFeatureGroupRequest + (*DeleteFeatureGroupRequest)(nil), // 5: google.cloud.aiplatform.v1.DeleteFeatureGroupRequest + (*CreateFeatureGroupOperationMetadata)(nil), // 6: google.cloud.aiplatform.v1.CreateFeatureGroupOperationMetadata + (*UpdateFeatureGroupOperationMetadata)(nil), // 7: google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata + (*CreateRegistryFeatureOperationMetadata)(nil), // 8: google.cloud.aiplatform.v1.CreateRegistryFeatureOperationMetadata + (*UpdateFeatureOperationMetadata)(nil), // 9: google.cloud.aiplatform.v1.UpdateFeatureOperationMetadata + (*FeatureGroup)(nil), // 10: google.cloud.aiplatform.v1.FeatureGroup + (*fieldmaskpb.FieldMask)(nil), // 11: google.protobuf.FieldMask + (*GenericOperationMetadata)(nil), // 12: google.cloud.aiplatform.v1.GenericOperationMetadata + (*CreateFeatureRequest)(nil), // 13: google.cloud.aiplatform.v1.CreateFeatureRequest + (*GetFeatureRequest)(nil), // 14: google.cloud.aiplatform.v1.GetFeatureRequest + (*ListFeaturesRequest)(nil), // 15: google.cloud.aiplatform.v1.ListFeaturesRequest + (*UpdateFeatureRequest)(nil), // 16: google.cloud.aiplatform.v1.UpdateFeatureRequest + (*DeleteFeatureRequest)(nil), // 17: google.cloud.aiplatform.v1.DeleteFeatureRequest + (*longrunningpb.Operation)(nil), // 18: google.longrunning.Operation + (*Feature)(nil), // 19: google.cloud.aiplatform.v1.Feature + (*ListFeaturesResponse)(nil), // 20: google.cloud.aiplatform.v1.ListFeaturesResponse +} +var file_google_cloud_aiplatform_v1_feature_registry_service_proto_depIdxs = []int32{ + 10, // 0: google.cloud.aiplatform.v1.CreateFeatureGroupRequest.feature_group:type_name -> google.cloud.aiplatform.v1.FeatureGroup + 10, // 1: google.cloud.aiplatform.v1.ListFeatureGroupsResponse.feature_groups:type_name -> google.cloud.aiplatform.v1.FeatureGroup + 10, // 2: google.cloud.aiplatform.v1.UpdateFeatureGroupRequest.feature_group:type_name -> google.cloud.aiplatform.v1.FeatureGroup + 11, // 3: google.cloud.aiplatform.v1.UpdateFeatureGroupRequest.update_mask:type_name -> google.protobuf.FieldMask + 12, // 4: google.cloud.aiplatform.v1.CreateFeatureGroupOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 12, // 5: google.cloud.aiplatform.v1.UpdateFeatureGroupOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 12, // 6: google.cloud.aiplatform.v1.CreateRegistryFeatureOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 12, // 7: google.cloud.aiplatform.v1.UpdateFeatureOperationMetadata.generic_metadata:type_name -> google.cloud.aiplatform.v1.GenericOperationMetadata + 0, // 8: google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeatureGroup:input_type -> google.cloud.aiplatform.v1.CreateFeatureGroupRequest + 1, // 9: google.cloud.aiplatform.v1.FeatureRegistryService.GetFeatureGroup:input_type -> google.cloud.aiplatform.v1.GetFeatureGroupRequest + 2, // 10: google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatureGroups:input_type -> google.cloud.aiplatform.v1.ListFeatureGroupsRequest + 4, // 11: google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeatureGroup:input_type -> google.cloud.aiplatform.v1.UpdateFeatureGroupRequest + 5, // 12: google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeatureGroup:input_type -> google.cloud.aiplatform.v1.DeleteFeatureGroupRequest + 13, // 13: google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeature:input_type -> google.cloud.aiplatform.v1.CreateFeatureRequest + 14, // 14: google.cloud.aiplatform.v1.FeatureRegistryService.GetFeature:input_type -> google.cloud.aiplatform.v1.GetFeatureRequest + 15, // 15: google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures:input_type -> google.cloud.aiplatform.v1.ListFeaturesRequest + 16, // 16: google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeature:input_type -> google.cloud.aiplatform.v1.UpdateFeatureRequest + 17, // 17: google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeature:input_type -> google.cloud.aiplatform.v1.DeleteFeatureRequest + 18, // 18: google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeatureGroup:output_type -> google.longrunning.Operation + 10, // 19: google.cloud.aiplatform.v1.FeatureRegistryService.GetFeatureGroup:output_type -> google.cloud.aiplatform.v1.FeatureGroup + 3, // 20: google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatureGroups:output_type -> google.cloud.aiplatform.v1.ListFeatureGroupsResponse + 18, // 21: google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeatureGroup:output_type -> google.longrunning.Operation + 18, // 22: google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeatureGroup:output_type -> google.longrunning.Operation + 18, // 23: google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeature:output_type -> google.longrunning.Operation + 19, // 24: google.cloud.aiplatform.v1.FeatureRegistryService.GetFeature:output_type -> google.cloud.aiplatform.v1.Feature + 20, // 25: google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures:output_type -> google.cloud.aiplatform.v1.ListFeaturesResponse + 18, // 26: google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeature:output_type -> google.longrunning.Operation + 18, // 27: google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeature:output_type -> google.longrunning.Operation + 18, // [18:28] is the sub-list for method output_type + 8, // [8:18] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_registry_service_proto_init() } +func file_google_cloud_aiplatform_v1_feature_registry_service_proto_init() { + if File_google_cloud_aiplatform_v1_feature_registry_service_proto != nil { + return + } + file_google_cloud_aiplatform_v1_feature_proto_init() + file_google_cloud_aiplatform_v1_feature_group_proto_init() + file_google_cloud_aiplatform_v1_featurestore_service_proto_init() + file_google_cloud_aiplatform_v1_operation_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFeatureGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureGroupsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListFeatureGroupsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFeatureGroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateFeatureGroupOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureGroupOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateRegistryFeatureOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateFeatureOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_registry_service_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_registry_service_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_feature_registry_service_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_registry_service_proto = out.File + file_google_cloud_aiplatform_v1_feature_registry_service_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_registry_service_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_registry_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// FeatureRegistryServiceClient is the client API for FeatureRegistryService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type FeatureRegistryServiceClient interface { + // Creates a new FeatureGroup in a given project and location. + CreateFeatureGroup(ctx context.Context, in *CreateFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets details of a single FeatureGroup. + GetFeatureGroup(ctx context.Context, in *GetFeatureGroupRequest, opts ...grpc.CallOption) (*FeatureGroup, error) + // Lists FeatureGroups in a given project and location. + ListFeatureGroups(ctx context.Context, in *ListFeatureGroupsRequest, opts ...grpc.CallOption) (*ListFeatureGroupsResponse, error) + // Updates the parameters of a single FeatureGroup. + UpdateFeatureGroup(ctx context.Context, in *UpdateFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single FeatureGroup. + DeleteFeatureGroup(ctx context.Context, in *DeleteFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a new Feature in a given FeatureGroup. + CreateFeature(ctx context.Context, in *CreateFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets details of a single Feature. + GetFeature(ctx context.Context, in *GetFeatureRequest, opts ...grpc.CallOption) (*Feature, error) + // Lists Features in a given FeatureGroup. + ListFeatures(ctx context.Context, in *ListFeaturesRequest, opts ...grpc.CallOption) (*ListFeaturesResponse, error) + // Updates the parameters of a single Feature. + UpdateFeature(ctx context.Context, in *UpdateFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Feature. + DeleteFeature(ctx context.Context, in *DeleteFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type featureRegistryServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewFeatureRegistryServiceClient(cc grpc.ClientConnInterface) FeatureRegistryServiceClient { + return &featureRegistryServiceClient{cc} +} + +func (c *featureRegistryServiceClient) CreateFeatureGroup(ctx context.Context, in *CreateFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/CreateFeatureGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) GetFeatureGroup(ctx context.Context, in *GetFeatureGroupRequest, opts ...grpc.CallOption) (*FeatureGroup, error) { + out := new(FeatureGroup) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/GetFeatureGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) ListFeatureGroups(ctx context.Context, in *ListFeatureGroupsRequest, opts ...grpc.CallOption) (*ListFeatureGroupsResponse, error) { + out := new(ListFeatureGroupsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/ListFeatureGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) UpdateFeatureGroup(ctx context.Context, in *UpdateFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/UpdateFeatureGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) DeleteFeatureGroup(ctx context.Context, in *DeleteFeatureGroupRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/DeleteFeatureGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) CreateFeature(ctx context.Context, in *CreateFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/CreateFeature", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) GetFeature(ctx context.Context, in *GetFeatureRequest, opts ...grpc.CallOption) (*Feature, error) { + out := new(Feature) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/GetFeature", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) ListFeatures(ctx context.Context, in *ListFeaturesRequest, opts ...grpc.CallOption) (*ListFeaturesResponse, error) { + out := new(ListFeaturesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/ListFeatures", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) UpdateFeature(ctx context.Context, in *UpdateFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/UpdateFeature", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *featureRegistryServiceClient) DeleteFeature(ctx context.Context, in *DeleteFeatureRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.FeatureRegistryService/DeleteFeature", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// FeatureRegistryServiceServer is the server API for FeatureRegistryService service. +type FeatureRegistryServiceServer interface { + // Creates a new FeatureGroup in a given project and location. + CreateFeatureGroup(context.Context, *CreateFeatureGroupRequest) (*longrunningpb.Operation, error) + // Gets details of a single FeatureGroup. + GetFeatureGroup(context.Context, *GetFeatureGroupRequest) (*FeatureGroup, error) + // Lists FeatureGroups in a given project and location. + ListFeatureGroups(context.Context, *ListFeatureGroupsRequest) (*ListFeatureGroupsResponse, error) + // Updates the parameters of a single FeatureGroup. + UpdateFeatureGroup(context.Context, *UpdateFeatureGroupRequest) (*longrunningpb.Operation, error) + // Deletes a single FeatureGroup. + DeleteFeatureGroup(context.Context, *DeleteFeatureGroupRequest) (*longrunningpb.Operation, error) + // Creates a new Feature in a given FeatureGroup. + CreateFeature(context.Context, *CreateFeatureRequest) (*longrunningpb.Operation, error) + // Gets details of a single Feature. + GetFeature(context.Context, *GetFeatureRequest) (*Feature, error) + // Lists Features in a given FeatureGroup. + ListFeatures(context.Context, *ListFeaturesRequest) (*ListFeaturesResponse, error) + // Updates the parameters of a single Feature. + UpdateFeature(context.Context, *UpdateFeatureRequest) (*longrunningpb.Operation, error) + // Deletes a single Feature. + DeleteFeature(context.Context, *DeleteFeatureRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedFeatureRegistryServiceServer can be embedded to have forward compatible implementations. +type UnimplementedFeatureRegistryServiceServer struct { +} + +func (*UnimplementedFeatureRegistryServiceServer) CreateFeatureGroup(context.Context, *CreateFeatureGroupRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFeatureGroup not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) GetFeatureGroup(context.Context, *GetFeatureGroupRequest) (*FeatureGroup, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFeatureGroup not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) ListFeatureGroups(context.Context, *ListFeatureGroupsRequest) (*ListFeatureGroupsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFeatureGroups not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) UpdateFeatureGroup(context.Context, *UpdateFeatureGroupRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFeatureGroup not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) DeleteFeatureGroup(context.Context, *DeleteFeatureGroupRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFeatureGroup not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) CreateFeature(context.Context, *CreateFeatureRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateFeature not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) GetFeature(context.Context, *GetFeatureRequest) (*Feature, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFeature not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) ListFeatures(context.Context, *ListFeaturesRequest) (*ListFeaturesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListFeatures not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) UpdateFeature(context.Context, *UpdateFeatureRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateFeature not implemented") +} +func (*UnimplementedFeatureRegistryServiceServer) DeleteFeature(context.Context, *DeleteFeatureRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteFeature not implemented") +} + +func RegisterFeatureRegistryServiceServer(s *grpc.Server, srv FeatureRegistryServiceServer) { + s.RegisterService(&_FeatureRegistryService_serviceDesc, srv) +} + +func _FeatureRegistryService_CreateFeatureGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFeatureGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).CreateFeatureGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/CreateFeatureGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).CreateFeatureGroup(ctx, req.(*CreateFeatureGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_GetFeatureGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeatureGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).GetFeatureGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/GetFeatureGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).GetFeatureGroup(ctx, req.(*GetFeatureGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_ListFeatureGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFeatureGroupsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).ListFeatureGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/ListFeatureGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).ListFeatureGroups(ctx, req.(*ListFeatureGroupsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_UpdateFeatureGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFeatureGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).UpdateFeatureGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/UpdateFeatureGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).UpdateFeatureGroup(ctx, req.(*UpdateFeatureGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_DeleteFeatureGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFeatureGroupRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).DeleteFeatureGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/DeleteFeatureGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).DeleteFeatureGroup(ctx, req.(*DeleteFeatureGroupRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_CreateFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateFeatureRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).CreateFeature(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/CreateFeature", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).CreateFeature(ctx, req.(*CreateFeatureRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_GetFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFeatureRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).GetFeature(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/GetFeature", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).GetFeature(ctx, req.(*GetFeatureRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_ListFeatures_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListFeaturesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).ListFeatures(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/ListFeatures", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).ListFeatures(ctx, req.(*ListFeaturesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_UpdateFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateFeatureRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).UpdateFeature(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/UpdateFeature", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).UpdateFeature(ctx, req.(*UpdateFeatureRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _FeatureRegistryService_DeleteFeature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFeatureRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FeatureRegistryServiceServer).DeleteFeature(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.FeatureRegistryService/DeleteFeature", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FeatureRegistryServiceServer).DeleteFeature(ctx, req.(*DeleteFeatureRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _FeatureRegistryService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.aiplatform.v1.FeatureRegistryService", + HandlerType: (*FeatureRegistryServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateFeatureGroup", + Handler: _FeatureRegistryService_CreateFeatureGroup_Handler, + }, + { + MethodName: "GetFeatureGroup", + Handler: _FeatureRegistryService_GetFeatureGroup_Handler, + }, + { + MethodName: "ListFeatureGroups", + Handler: _FeatureRegistryService_ListFeatureGroups_Handler, + }, + { + MethodName: "UpdateFeatureGroup", + Handler: _FeatureRegistryService_UpdateFeatureGroup_Handler, + }, + { + MethodName: "DeleteFeatureGroup", + Handler: _FeatureRegistryService_DeleteFeatureGroup_Handler, + }, + { + MethodName: "CreateFeature", + Handler: _FeatureRegistryService_CreateFeature_Handler, + }, + { + MethodName: "GetFeature", + Handler: _FeatureRegistryService_GetFeature_Handler, + }, + { + MethodName: "ListFeatures", + Handler: _FeatureRegistryService_ListFeatures_Handler, + }, + { + MethodName: "UpdateFeature", + Handler: _FeatureRegistryService_UpdateFeature_Handler, + }, + { + MethodName: "DeleteFeature", + Handler: _FeatureRegistryService_DeleteFeature_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/aiplatform/v1/feature_registry_service.proto", +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_view.pb.go b/aiplatform/apiv1/aiplatformpb/feature_view.pb.go new file mode 100755 index 000000000000..594832c2a577 --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_view.pb.go @@ -0,0 +1,645 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_view.proto + +package aiplatformpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// FeatureView is representation of values that the FeatureOnlineStore will +// serve based on its syncConfig. +type FeatureView struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Source: + // *FeatureView_BigQuerySource_ + // *FeatureView_FeatureRegistrySource_ + Source isFeatureView_Source `protobuf_oneof:"source"` + // Output only. Name of the FeatureView. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Timestamp when this FeatureView was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Timestamp when this FeatureView was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Optional. Used to perform consistent read-modify-write updates. If not set, + // a blind "overwrite" update happens. + Etag string `protobuf:"bytes,4,opt,name=etag,proto3" json:"etag,omitempty"` + // Optional. The labels with user-defined metadata to organize your + // FeatureViews. + // + // 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 + // FeatureOnlineStore(System labels are excluded)." System reserved label keys + // are prefixed with "aiplatform.googleapis.com/" and are immutable. + Labels map[string]string `protobuf:"bytes,5,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Configures when data is to be synced/updated for this FeatureView. At the + // end of the sync the latest featureValues for each entityId of this + // FeatureView are made ready for online serving. + SyncConfig *FeatureView_SyncConfig `protobuf:"bytes,7,opt,name=sync_config,json=syncConfig,proto3" json:"sync_config,omitempty"` +} + +func (x *FeatureView) Reset() { + *x = FeatureView{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureView) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureView) ProtoMessage() {} + +func (x *FeatureView) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureView.ProtoReflect.Descriptor instead. +func (*FeatureView) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP(), []int{0} +} + +func (m *FeatureView) GetSource() isFeatureView_Source { + if m != nil { + return m.Source + } + return nil +} + +func (x *FeatureView) GetBigQuerySource() *FeatureView_BigQuerySource { + if x, ok := x.GetSource().(*FeatureView_BigQuerySource_); ok { + return x.BigQuerySource + } + return nil +} + +func (x *FeatureView) GetFeatureRegistrySource() *FeatureView_FeatureRegistrySource { + if x, ok := x.GetSource().(*FeatureView_FeatureRegistrySource_); ok { + return x.FeatureRegistrySource + } + return nil +} + +func (x *FeatureView) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FeatureView) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *FeatureView) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *FeatureView) GetEtag() string { + if x != nil { + return x.Etag + } + return "" +} + +func (x *FeatureView) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *FeatureView) GetSyncConfig() *FeatureView_SyncConfig { + if x != nil { + return x.SyncConfig + } + return nil +} + +type isFeatureView_Source interface { + isFeatureView_Source() +} + +type FeatureView_BigQuerySource_ struct { + // Optional. Configures how data is supposed to be extracted from a BigQuery + // source to be loaded onto the FeatureOnlineStore. + BigQuerySource *FeatureView_BigQuerySource `protobuf:"bytes,6,opt,name=big_query_source,json=bigQuerySource,proto3,oneof"` +} + +type FeatureView_FeatureRegistrySource_ struct { + // Optional. Configures the features from a Feature Registry source that + // need to be loaded onto the FeatureOnlineStore. + FeatureRegistrySource *FeatureView_FeatureRegistrySource `protobuf:"bytes,9,opt,name=feature_registry_source,json=featureRegistrySource,proto3,oneof"` +} + +func (*FeatureView_BigQuerySource_) isFeatureView_Source() {} + +func (*FeatureView_FeatureRegistrySource_) isFeatureView_Source() {} + +type FeatureView_BigQuerySource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The BigQuery view URI that will be materialized on each sync + // trigger based on FeatureView.SyncConfig. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // Required. Columns to construct entity_id / row keys. Start by supporting + // 1 only. + EntityIdColumns []string `protobuf:"bytes,2,rep,name=entity_id_columns,json=entityIdColumns,proto3" json:"entity_id_columns,omitempty"` +} + +func (x *FeatureView_BigQuerySource) Reset() { + *x = FeatureView_BigQuerySource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureView_BigQuerySource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureView_BigQuerySource) ProtoMessage() {} + +func (x *FeatureView_BigQuerySource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureView_BigQuerySource.ProtoReflect.Descriptor instead. +func (*FeatureView_BigQuerySource) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *FeatureView_BigQuerySource) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *FeatureView_BigQuerySource) GetEntityIdColumns() []string { + if x != nil { + return x.EntityIdColumns + } + return nil +} + +type FeatureView_SyncConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Cron schedule (https://en.wikipedia.org/wiki/Cron) to launch scheduled + // runs. To explicitly set a timezone to the cron tab, apply a prefix in + // the cron tab: "CRON_TZ=${IANA_TIME_ZONE}" or "TZ=${IANA_TIME_ZONE}". + // The ${IANA_TIME_ZONE} may only be a valid string from IANA time zone + // database. For example, "CRON_TZ=America/New_York 1 * * * *", or + // "TZ=America/New_York 1 * * * *". + Cron string `protobuf:"bytes,1,opt,name=cron,proto3" json:"cron,omitempty"` +} + +func (x *FeatureView_SyncConfig) Reset() { + *x = FeatureView_SyncConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureView_SyncConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureView_SyncConfig) ProtoMessage() {} + +func (x *FeatureView_SyncConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureView_SyncConfig.ProtoReflect.Descriptor instead. +func (*FeatureView_SyncConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *FeatureView_SyncConfig) GetCron() string { + if x != nil { + return x.Cron + } + return "" +} + +// A Feature Registry source for features that need to be synced to Online +// Store. +type FeatureView_FeatureRegistrySource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. List of features that need to be synced to Online Store. + FeatureGroups []*FeatureView_FeatureRegistrySource_FeatureGroup `protobuf:"bytes,1,rep,name=feature_groups,json=featureGroups,proto3" json:"feature_groups,omitempty"` +} + +func (x *FeatureView_FeatureRegistrySource) Reset() { + *x = FeatureView_FeatureRegistrySource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureView_FeatureRegistrySource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureView_FeatureRegistrySource) ProtoMessage() {} + +func (x *FeatureView_FeatureRegistrySource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureView_FeatureRegistrySource.ProtoReflect.Descriptor instead. +func (*FeatureView_FeatureRegistrySource) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *FeatureView_FeatureRegistrySource) GetFeatureGroups() []*FeatureView_FeatureRegistrySource_FeatureGroup { + if x != nil { + return x.FeatureGroups + } + return nil +} + +// Features belonging to a single feature group that will be +// synced to Online Store. +type FeatureView_FeatureRegistrySource_FeatureGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Identifier of the feature group. + FeatureGroupId string `protobuf:"bytes,1,opt,name=feature_group_id,json=featureGroupId,proto3" json:"feature_group_id,omitempty"` + // Required. Identifiers of features under the feature group. + FeatureIds []string `protobuf:"bytes,2,rep,name=feature_ids,json=featureIds,proto3" json:"feature_ids,omitempty"` +} + +func (x *FeatureView_FeatureRegistrySource_FeatureGroup) Reset() { + *x = FeatureView_FeatureRegistrySource_FeatureGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureView_FeatureRegistrySource_FeatureGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureView_FeatureRegistrySource_FeatureGroup) ProtoMessage() {} + +func (x *FeatureView_FeatureRegistrySource_FeatureGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureView_FeatureRegistrySource_FeatureGroup.ProtoReflect.Descriptor instead. +func (*FeatureView_FeatureRegistrySource_FeatureGroup) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP(), []int{0, 2, 0} +} + +func (x *FeatureView_FeatureRegistrySource_FeatureGroup) GetFeatureGroupId() string { + if x != nil { + return x.FeatureGroupId + } + return "" +} + +func (x *FeatureView_FeatureRegistrySource_FeatureGroup) GetFeatureIds() []string { + if x != nil { + return x.FeatureIds + } + return nil +} + +var File_google_cloud_aiplatform_v1_feature_view_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_view_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, + 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa7, 0x09, 0x0a, 0x0b, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x67, 0x0a, 0x10, 0x62, 0x69, 0x67, 0x5f, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x42, 0x69, 0x67, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x7c, 0x0a, 0x17, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x15, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x04, + 0x65, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x04, 0x65, 0x74, 0x61, 0x67, 0x12, 0x50, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x73, 0x79, 0x6e, 0x63, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x69, 0x65, 0x77, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x58, 0x0a, 0x0e, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x15, + 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x2f, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, + 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x73, 0x1a, 0x20, 0x0a, 0x0a, 0x53, 0x79, 0x6e, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x63, 0x72, 0x6f, 0x6e, 0x1a, 0xf4, 0x01, 0x0a, 0x15, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x79, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x63, 0x0a, 0x0c, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x2d, 0x0a, 0x10, 0x66, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x49, 0x64, 0x73, 0x1a, + 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x3a, 0x9b, 0x01, 0xea, 0x41, 0x97, + 0x01, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x6e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, + 0x74, 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, + 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x7d, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x42, 0xce, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_view_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_view_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_view_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_view_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_view_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_view_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_view_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_view_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_google_cloud_aiplatform_v1_feature_view_proto_goTypes = []interface{}{ + (*FeatureView)(nil), // 0: google.cloud.aiplatform.v1.FeatureView + (*FeatureView_BigQuerySource)(nil), // 1: google.cloud.aiplatform.v1.FeatureView.BigQuerySource + (*FeatureView_SyncConfig)(nil), // 2: google.cloud.aiplatform.v1.FeatureView.SyncConfig + (*FeatureView_FeatureRegistrySource)(nil), // 3: google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource + nil, // 4: google.cloud.aiplatform.v1.FeatureView.LabelsEntry + (*FeatureView_FeatureRegistrySource_FeatureGroup)(nil), // 5: google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.FeatureGroup + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp +} +var file_google_cloud_aiplatform_v1_feature_view_proto_depIdxs = []int32{ + 1, // 0: google.cloud.aiplatform.v1.FeatureView.big_query_source:type_name -> google.cloud.aiplatform.v1.FeatureView.BigQuerySource + 3, // 1: google.cloud.aiplatform.v1.FeatureView.feature_registry_source:type_name -> google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource + 6, // 2: google.cloud.aiplatform.v1.FeatureView.create_time:type_name -> google.protobuf.Timestamp + 6, // 3: google.cloud.aiplatform.v1.FeatureView.update_time:type_name -> google.protobuf.Timestamp + 4, // 4: google.cloud.aiplatform.v1.FeatureView.labels:type_name -> google.cloud.aiplatform.v1.FeatureView.LabelsEntry + 2, // 5: google.cloud.aiplatform.v1.FeatureView.sync_config:type_name -> google.cloud.aiplatform.v1.FeatureView.SyncConfig + 5, // 6: google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.feature_groups:type_name -> google.cloud.aiplatform.v1.FeatureView.FeatureRegistrySource.FeatureGroup + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_view_proto_init() } +func file_google_cloud_aiplatform_v1_feature_view_proto_init() { + if File_google_cloud_aiplatform_v1_feature_view_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureView); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureView_BigQuerySource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureView_SyncConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureView_FeatureRegistrySource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureView_FeatureRegistrySource_FeatureGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*FeatureView_BigQuerySource_)(nil), + (*FeatureView_FeatureRegistrySource_)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_view_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_view_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_view_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_feature_view_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_view_proto = out.File + file_google_cloud_aiplatform_v1_feature_view_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_view_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_view_proto_depIdxs = nil +} diff --git a/aiplatform/apiv1/aiplatformpb/feature_view_sync.pb.go b/aiplatform/apiv1/aiplatformpb/feature_view_sync.pb.go new file mode 100755 index 000000000000..01779f00a7ec --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/feature_view_sync.pb.go @@ -0,0 +1,249 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/feature_view_sync.proto + +package aiplatformpb + +import ( + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + status "google.golang.org/genproto/googleapis/rpc/status" + interval "google.golang.org/genproto/googleapis/type/interval" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// FeatureViewSync is a representation of sync operation which copies data from +// data source to Feature View in Online Store. +type FeatureViewSync struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the FeatureViewSync. Format: + // `projects/{project}/locations/{location}/featureOnlineStores/{feature_online_store}/featureViews/{feature_view}/featureViewSyncs/{feature_view_sync}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. Time when this FeatureViewSync is created. Creation of a + // FeatureViewSync means that the job is pending / waiting for sufficient + // resources but may not have started the actual data transfer yet. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Time when this FeatureViewSync is finished. + RunTime *interval.Interval `protobuf:"bytes,5,opt,name=run_time,json=runTime,proto3" json:"run_time,omitempty"` + // Output only. Final status of the FeatureViewSync. + FinalStatus *status.Status `protobuf:"bytes,4,opt,name=final_status,json=finalStatus,proto3" json:"final_status,omitempty"` +} + +func (x *FeatureViewSync) Reset() { + *x = FeatureViewSync{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_feature_view_sync_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureViewSync) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureViewSync) ProtoMessage() {} + +func (x *FeatureViewSync) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_feature_view_sync_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureViewSync.ProtoReflect.Descriptor instead. +func (*FeatureViewSync) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescGZIP(), []int{0} +} + +func (x *FeatureViewSync) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *FeatureViewSync) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *FeatureViewSync) GetRunTime() *interval.Interval { + if x != nil { + return x.RunTime + } + return nil +} + +func (x *FeatureViewSync) GetFinalStatus() *status.Status { + if x != nil { + return x.FinalStatus + } + return nil +} + +var File_google_cloud_aiplatform_v1_feature_view_sync_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDesc = []byte{ + 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x22, 0xa5, 0x03, 0x0a, 0x0f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x07, 0x72, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x3a, 0xc3, 0x01, 0xea, 0x41, 0xbf, 0x01, 0x0a, 0x29, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, + 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x91, 0x01, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, + 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x65, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6f, 0x6e, + 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x7d, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x73, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x42, 0xd2, 0x01, 0x0a, 0x1e, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x14, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x53, 0x79, 0x6e, 0x63, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x41, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescData = file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_feature_view_sync_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_google_cloud_aiplatform_v1_feature_view_sync_proto_goTypes = []interface{}{ + (*FeatureViewSync)(nil), // 0: google.cloud.aiplatform.v1.FeatureViewSync + (*timestamppb.Timestamp)(nil), // 1: google.protobuf.Timestamp + (*interval.Interval)(nil), // 2: google.type.Interval + (*status.Status)(nil), // 3: google.rpc.Status +} +var file_google_cloud_aiplatform_v1_feature_view_sync_proto_depIdxs = []int32{ + 1, // 0: google.cloud.aiplatform.v1.FeatureViewSync.create_time:type_name -> google.protobuf.Timestamp + 2, // 1: google.cloud.aiplatform.v1.FeatureViewSync.run_time:type_name -> google.type.Interval + 3, // 2: google.cloud.aiplatform.v1.FeatureViewSync.final_status:type_name -> google.rpc.Status + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_feature_view_sync_proto_init() } +func file_google_cloud_aiplatform_v1_feature_view_sync_proto_init() { + if File_google_cloud_aiplatform_v1_feature_view_sync_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_feature_view_sync_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FeatureViewSync); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_aiplatform_v1_feature_view_sync_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_feature_view_sync_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_feature_view_sync_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_feature_view_sync_proto = out.File + file_google_cloud_aiplatform_v1_feature_view_sync_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_feature_view_sync_proto_goTypes = nil + file_google_cloud_aiplatform_v1_feature_view_sync_proto_depIdxs = nil +} diff --git a/aiplatform/apiv1/aiplatformpb/featurestore_service.pb.go b/aiplatform/apiv1/aiplatformpb/featurestore_service.pb.go index c280c4fe4911..76b37d187239 100755 --- a/aiplatform/apiv1/aiplatformpb/featurestore_service.pb.go +++ b/aiplatform/apiv1/aiplatformpb/featurestore_service.pb.go @@ -1800,14 +1800,18 @@ func (x *DeleteEntityTypeRequest) GetForce() bool { // Request message for // [FeaturestoreService.CreateFeature][google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature]. +// Request message for +// [FeatureRegistryService.CreateFeature][google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeature]. type CreateFeatureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Required. The resource name of the EntityType to create a Feature. - // Format: + // Required. The resource name of the EntityType or FeatureGroup to create a + // Feature. Format for entity_type as parent: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The Feature to create. Feature *Feature `protobuf:"bytes,2,opt,name=feature,proto3" json:"feature,omitempty"` @@ -1817,7 +1821,7 @@ type CreateFeatureRequest struct { // This value may be up to 128 characters, and valid characters are // `[a-z0-9_]`. The first character cannot be a number. // - // The value must be unique within an EntityType. + // The value must be unique within an EntityType/FeatureGroup. FeatureId string `protobuf:"bytes,3,opt,name=feature_id,json=featureId,proto3" json:"feature_id,omitempty"` } @@ -1991,14 +1995,18 @@ func (x *BatchCreateFeaturesResponse) GetFeatures() []*Feature { // Request message for // [FeaturestoreService.GetFeature][google.cloud.aiplatform.v1.FeaturestoreService.GetFeature]. +// Request message for +// [FeatureRegistryService.GetFeature][google.cloud.aiplatform.v1.FeatureRegistryService.GetFeature]. type GetFeatureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The name of the Feature resource. - // Format: + // Format for entity_type as parent: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } @@ -2043,14 +2051,18 @@ func (x *GetFeatureRequest) GetName() string { // Request message for // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures]. +// Request message for +// [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures]. type ListFeaturesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Required. The resource name of the Location to list Features. - // Format: + // Format for entity_type as parent: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Lists the Features that match the filter expression. The following // filters are supported: @@ -2080,10 +2092,14 @@ type ListFeaturesRequest struct { PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // A page token, received from a previous // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures] + // call or + // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures] // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures] + // or or + // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures] // must match the call that provided the page token. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A comma-separated list of fields to order by, sorted in ascending order. @@ -2091,12 +2107,13 @@ type ListFeaturesRequest struct { // Supported fields: // // * `feature_id` - // * `value_type` + // * `value_type` (Not supported for FeatureRegistry Feature) // * `create_time` // * `update_time` OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` // Mask specifying which fields to read. ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` + // Only applicable for Vertex AI Feature Store (Legacy). // If set, return the most recent // [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1.ListFeaturesRequest.latest_stats_count] // of stats for each Feature in response. Valid value is [0, 10]. If number of @@ -2189,6 +2206,8 @@ func (x *ListFeaturesRequest) GetLatestStatsCount() int32 { // Response message for // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures]. +// Response message for +// [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures]. type ListFeaturesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2468,6 +2487,8 @@ func (x *SearchFeaturesResponse) GetNextPageToken() string { // Request message for // [FeaturestoreService.UpdateFeature][google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature]. +// Request message for +// [FeatureRegistryService.UpdateFeature][google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeature]. type UpdateFeatureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2477,6 +2498,7 @@ type UpdateFeatureRequest struct { // updated. // Format: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` + // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` Feature *Feature `protobuf:"bytes,1,opt,name=feature,proto3" json:"feature,omitempty"` // Field mask is used to specify the fields to be overwritten in the // Features resource by the update. @@ -2490,7 +2512,7 @@ type UpdateFeatureRequest struct { // // * `description` // * `labels` - // * `disable_monitoring` + // * `disable_monitoring` (Not supported for FeatureRegistry Feature) UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } @@ -2542,6 +2564,8 @@ func (x *UpdateFeatureRequest) GetUpdateMask() *fieldmaskpb.FieldMask { // Request message for // [FeaturestoreService.DeleteFeature][google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature]. +// Request message for +// [FeatureRegistryService.DeleteFeature][google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeature]. type DeleteFeatureRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2550,6 +2574,7 @@ type DeleteFeatureRequest struct { // Required. The name of the Features to be deleted. // Format: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` + // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } diff --git a/aiplatform/apiv1/aiplatformpb/index.pb.go b/aiplatform/apiv1/aiplatformpb/index.pb.go index 6bc98a9751a1..5f450620b365 100755 --- a/aiplatform/apiv1/aiplatformpb/index.pb.go +++ b/aiplatform/apiv1/aiplatformpb/index.pb.go @@ -94,6 +94,75 @@ func (Index_IndexUpdateMethod) EnumDescriptor() ([]byte, []int) { return file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP(), []int{0, 0} } +// Which comparison operator to use. Should be specified for queries only; +// specifying this for a datapoint is an error. +// +// Datapoints for which Operator is true relative to the query's Value +// field will be allowlisted. +type IndexDatapoint_NumericRestriction_Operator int32 + +const ( + // Default value of the enum. + IndexDatapoint_NumericRestriction_OPERATOR_UNSPECIFIED IndexDatapoint_NumericRestriction_Operator = 0 + // Datapoints are eligible iff their value is < the query's. + IndexDatapoint_NumericRestriction_LESS IndexDatapoint_NumericRestriction_Operator = 1 + // Datapoints are eligible iff their value is <= the query's. + IndexDatapoint_NumericRestriction_LESS_EQUAL IndexDatapoint_NumericRestriction_Operator = 2 + // Datapoints are eligible iff their value is == the query's. + IndexDatapoint_NumericRestriction_EQUAL IndexDatapoint_NumericRestriction_Operator = 3 + // Datapoints are eligible iff their value is >= the query's. + IndexDatapoint_NumericRestriction_GREATER_EQUAL IndexDatapoint_NumericRestriction_Operator = 4 + // Datapoints are eligible iff their value is > the query's. + IndexDatapoint_NumericRestriction_GREATER IndexDatapoint_NumericRestriction_Operator = 5 +) + +// Enum value maps for IndexDatapoint_NumericRestriction_Operator. +var ( + IndexDatapoint_NumericRestriction_Operator_name = map[int32]string{ + 0: "OPERATOR_UNSPECIFIED", + 1: "LESS", + 2: "LESS_EQUAL", + 3: "EQUAL", + 4: "GREATER_EQUAL", + 5: "GREATER", + } + IndexDatapoint_NumericRestriction_Operator_value = map[string]int32{ + "OPERATOR_UNSPECIFIED": 0, + "LESS": 1, + "LESS_EQUAL": 2, + "EQUAL": 3, + "GREATER_EQUAL": 4, + "GREATER": 5, + } +) + +func (x IndexDatapoint_NumericRestriction_Operator) Enum() *IndexDatapoint_NumericRestriction_Operator { + p := new(IndexDatapoint_NumericRestriction_Operator) + *p = x + return p +} + +func (x IndexDatapoint_NumericRestriction_Operator) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IndexDatapoint_NumericRestriction_Operator) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1_index_proto_enumTypes[1].Descriptor() +} + +func (IndexDatapoint_NumericRestriction_Operator) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1_index_proto_enumTypes[1] +} + +func (x IndexDatapoint_NumericRestriction_Operator) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IndexDatapoint_NumericRestriction_Operator.Descriptor instead. +func (IndexDatapoint_NumericRestriction_Operator) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP(), []int{1, 1, 0} +} + // A representation of a collection of database items organized in a way that // allows for approximate nearest neighbor (a.k.a ANN) algorithms search. type Index struct { @@ -297,6 +366,10 @@ type IndexDatapoint struct { // eligible for matching. This uses categorical tokens. See: // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering Restricts []*IndexDatapoint_Restriction `protobuf:"bytes,4,rep,name=restricts,proto3" json:"restricts,omitempty"` + // Optional. List of Restrict of the datapoint, used to perform "restricted + // searches" where boolean rule are used to filter the subset of the database + // eligible for matching. This uses numeric comparisons. + NumericRestricts []*IndexDatapoint_NumericRestriction `protobuf:"bytes,6,rep,name=numeric_restricts,json=numericRestricts,proto3" json:"numeric_restricts,omitempty"` // Optional. CrowdingTag of the datapoint, the number of neighbors to return // in each crowding can be configured during query. CrowdingTag *IndexDatapoint_CrowdingTag `protobuf:"bytes,5,opt,name=crowding_tag,json=crowdingTag,proto3" json:"crowding_tag,omitempty"` @@ -355,6 +428,13 @@ func (x *IndexDatapoint) GetRestricts() []*IndexDatapoint_Restriction { return nil } +func (x *IndexDatapoint) GetNumericRestricts() []*IndexDatapoint_NumericRestriction { + if x != nil { + return x.NumericRestricts + } + return nil +} + func (x *IndexDatapoint) GetCrowdingTag() *IndexDatapoint_CrowdingTag { if x != nil { return x.CrowdingTag @@ -488,6 +568,127 @@ func (x *IndexDatapoint_Restriction) GetDenyList() []string { return nil } +// This field allows restricts to be based on numeric comparisons rather +// than categorical tokens. +type IndexDatapoint_NumericRestriction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of Value must be consistent for all datapoints with a given + // namespace name. This is verified at runtime. + // + // Types that are assignable to Value: + // *IndexDatapoint_NumericRestriction_ValueInt + // *IndexDatapoint_NumericRestriction_ValueFloat + // *IndexDatapoint_NumericRestriction_ValueDouble + Value isIndexDatapoint_NumericRestriction_Value `protobuf_oneof:"Value"` + // The namespace of this restriction. e.g.: cost. + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // This MUST be specified for queries and must NOT be specified for + // datapoints. + Op IndexDatapoint_NumericRestriction_Operator `protobuf:"varint,5,opt,name=op,proto3,enum=google.cloud.aiplatform.v1.IndexDatapoint_NumericRestriction_Operator" json:"op,omitempty"` +} + +func (x *IndexDatapoint_NumericRestriction) Reset() { + *x = IndexDatapoint_NumericRestriction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexDatapoint_NumericRestriction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexDatapoint_NumericRestriction) ProtoMessage() {} + +func (x *IndexDatapoint_NumericRestriction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexDatapoint_NumericRestriction.ProtoReflect.Descriptor instead. +func (*IndexDatapoint_NumericRestriction) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP(), []int{1, 1} +} + +func (m *IndexDatapoint_NumericRestriction) GetValue() isIndexDatapoint_NumericRestriction_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *IndexDatapoint_NumericRestriction) GetValueInt() int64 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueInt); ok { + return x.ValueInt + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetValueFloat() float32 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueFloat); ok { + return x.ValueFloat + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetValueDouble() float64 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueDouble); ok { + return x.ValueDouble + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *IndexDatapoint_NumericRestriction) GetOp() IndexDatapoint_NumericRestriction_Operator { + if x != nil { + return x.Op + } + return IndexDatapoint_NumericRestriction_OPERATOR_UNSPECIFIED +} + +type isIndexDatapoint_NumericRestriction_Value interface { + isIndexDatapoint_NumericRestriction_Value() +} + +type IndexDatapoint_NumericRestriction_ValueInt struct { + // Represents 64 bit integer. + ValueInt int64 `protobuf:"varint,2,opt,name=value_int,json=valueInt,proto3,oneof"` +} + +type IndexDatapoint_NumericRestriction_ValueFloat struct { + // Represents 32 bit float. + ValueFloat float32 `protobuf:"fixed32,3,opt,name=value_float,json=valueFloat,proto3,oneof"` +} + +type IndexDatapoint_NumericRestriction_ValueDouble struct { + // Represents 64 bit float. + ValueDouble float64 `protobuf:"fixed64,4,opt,name=value_double,json=valueDouble,proto3,oneof"` +} + +func (*IndexDatapoint_NumericRestriction_ValueInt) isIndexDatapoint_NumericRestriction_Value() {} + +func (*IndexDatapoint_NumericRestriction_ValueFloat) isIndexDatapoint_NumericRestriction_Value() {} + +func (*IndexDatapoint_NumericRestriction_ValueDouble) isIndexDatapoint_NumericRestriction_Value() {} + // Crowding tag is a constraint on a neighbor list produced by nearest // neighbor search requiring that no more than some value k' of the k // neighbors returned have the same value of crowding_attribute. @@ -507,7 +708,7 @@ type IndexDatapoint_CrowdingTag struct { func (x *IndexDatapoint_CrowdingTag) Reset() { *x = IndexDatapoint_CrowdingTag{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -520,7 +721,7 @@ func (x *IndexDatapoint_CrowdingTag) String() string { func (*IndexDatapoint_CrowdingTag) ProtoMessage() {} func (x *IndexDatapoint_CrowdingTag) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1_index_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -533,7 +734,7 @@ func (x *IndexDatapoint_CrowdingTag) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexDatapoint_CrowdingTag.ProtoReflect.Descriptor instead. func (*IndexDatapoint_CrowdingTag) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP(), []int{1, 1} + return file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP(), []int{1, 2} } func (x *IndexDatapoint_CrowdingTag) GetCrowdingAttribute() string { @@ -630,7 +831,7 @@ var file_google_cloud_aiplatform_v1_index_proto_rawDesc = []byte{ 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, - 0x64, 0x65, 0x78, 0x7d, 0x22, 0xc6, 0x03, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, + 0x64, 0x65, 0x78, 0x7d, 0x22, 0x9f, 0x07, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, @@ -642,42 +843,72 @@ var file_google_cloud_aiplatform_v1_index_proto_rawDesc = []byte{ 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x0c, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, - 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x6f, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, + 0x63, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x75, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, + 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x5e, 0x0a, 0x0c, 0x63, 0x72, 0x6f, 0x77, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, + 0x6e, 0x67, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x6f, 0x77, + 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x1a, 0x67, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, + 0x1a, 0xe5, 0x02, 0x0a, 0x12, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x49, 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, + 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x02, + 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x52, 0x02, 0x6f, 0x70, 0x22, 0x69, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x45, + 0x53, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x51, 0x55, + 0x41, 0x4c, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x03, 0x12, + 0x11, 0x0a, 0x0d, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, 0x4c, + 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x10, 0x05, 0x42, + 0x07, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x3c, 0x0a, 0x0b, 0x43, 0x72, 0x6f, 0x77, + 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x72, 0x6f, 0x77, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, + 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, + 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, - 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, - 0x67, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x6f, 0x77, 0x64, - 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x1a, 0x67, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x1a, - 0x3c, 0x0a, 0x0b, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x2d, - 0x0a, 0x12, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x72, 0x6f, 0x77, - 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x5e, 0x0a, - 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xc8, 0x01, - 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x42, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, - 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, - 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, - 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, + 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -692,37 +923,41 @@ func file_google_cloud_aiplatform_v1_index_proto_rawDescGZIP() []byte { return file_google_cloud_aiplatform_v1_index_proto_rawDescData } -var file_google_cloud_aiplatform_v1_index_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_aiplatform_v1_index_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_google_cloud_aiplatform_v1_index_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_aiplatform_v1_index_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_google_cloud_aiplatform_v1_index_proto_goTypes = []interface{}{ - (Index_IndexUpdateMethod)(0), // 0: google.cloud.aiplatform.v1.Index.IndexUpdateMethod - (*Index)(nil), // 1: google.cloud.aiplatform.v1.Index - (*IndexDatapoint)(nil), // 2: google.cloud.aiplatform.v1.IndexDatapoint - (*IndexStats)(nil), // 3: google.cloud.aiplatform.v1.IndexStats - nil, // 4: google.cloud.aiplatform.v1.Index.LabelsEntry - (*IndexDatapoint_Restriction)(nil), // 5: google.cloud.aiplatform.v1.IndexDatapoint.Restriction - (*IndexDatapoint_CrowdingTag)(nil), // 6: google.cloud.aiplatform.v1.IndexDatapoint.CrowdingTag - (*structpb.Value)(nil), // 7: google.protobuf.Value - (*DeployedIndexRef)(nil), // 8: google.cloud.aiplatform.v1.DeployedIndexRef - (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp - (*EncryptionSpec)(nil), // 10: google.cloud.aiplatform.v1.EncryptionSpec + (Index_IndexUpdateMethod)(0), // 0: google.cloud.aiplatform.v1.Index.IndexUpdateMethod + (IndexDatapoint_NumericRestriction_Operator)(0), // 1: google.cloud.aiplatform.v1.IndexDatapoint.NumericRestriction.Operator + (*Index)(nil), // 2: google.cloud.aiplatform.v1.Index + (*IndexDatapoint)(nil), // 3: google.cloud.aiplatform.v1.IndexDatapoint + (*IndexStats)(nil), // 4: google.cloud.aiplatform.v1.IndexStats + nil, // 5: google.cloud.aiplatform.v1.Index.LabelsEntry + (*IndexDatapoint_Restriction)(nil), // 6: google.cloud.aiplatform.v1.IndexDatapoint.Restriction + (*IndexDatapoint_NumericRestriction)(nil), // 7: google.cloud.aiplatform.v1.IndexDatapoint.NumericRestriction + (*IndexDatapoint_CrowdingTag)(nil), // 8: google.cloud.aiplatform.v1.IndexDatapoint.CrowdingTag + (*structpb.Value)(nil), // 9: google.protobuf.Value + (*DeployedIndexRef)(nil), // 10: google.cloud.aiplatform.v1.DeployedIndexRef + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*EncryptionSpec)(nil), // 12: google.cloud.aiplatform.v1.EncryptionSpec } var file_google_cloud_aiplatform_v1_index_proto_depIdxs = []int32{ - 7, // 0: google.cloud.aiplatform.v1.Index.metadata:type_name -> google.protobuf.Value - 8, // 1: google.cloud.aiplatform.v1.Index.deployed_indexes:type_name -> google.cloud.aiplatform.v1.DeployedIndexRef - 4, // 2: google.cloud.aiplatform.v1.Index.labels:type_name -> google.cloud.aiplatform.v1.Index.LabelsEntry - 9, // 3: google.cloud.aiplatform.v1.Index.create_time:type_name -> google.protobuf.Timestamp - 9, // 4: google.cloud.aiplatform.v1.Index.update_time:type_name -> google.protobuf.Timestamp - 3, // 5: google.cloud.aiplatform.v1.Index.index_stats:type_name -> google.cloud.aiplatform.v1.IndexStats + 9, // 0: google.cloud.aiplatform.v1.Index.metadata:type_name -> google.protobuf.Value + 10, // 1: google.cloud.aiplatform.v1.Index.deployed_indexes:type_name -> google.cloud.aiplatform.v1.DeployedIndexRef + 5, // 2: google.cloud.aiplatform.v1.Index.labels:type_name -> google.cloud.aiplatform.v1.Index.LabelsEntry + 11, // 3: google.cloud.aiplatform.v1.Index.create_time:type_name -> google.protobuf.Timestamp + 11, // 4: google.cloud.aiplatform.v1.Index.update_time:type_name -> google.protobuf.Timestamp + 4, // 5: google.cloud.aiplatform.v1.Index.index_stats:type_name -> google.cloud.aiplatform.v1.IndexStats 0, // 6: google.cloud.aiplatform.v1.Index.index_update_method:type_name -> google.cloud.aiplatform.v1.Index.IndexUpdateMethod - 10, // 7: google.cloud.aiplatform.v1.Index.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec - 5, // 8: google.cloud.aiplatform.v1.IndexDatapoint.restricts:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.Restriction - 6, // 9: google.cloud.aiplatform.v1.IndexDatapoint.crowding_tag:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.CrowdingTag - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 12, // 7: google.cloud.aiplatform.v1.Index.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec + 6, // 8: google.cloud.aiplatform.v1.IndexDatapoint.restricts:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.Restriction + 7, // 9: google.cloud.aiplatform.v1.IndexDatapoint.numeric_restricts:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.NumericRestriction + 8, // 10: google.cloud.aiplatform.v1.IndexDatapoint.crowding_tag:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.CrowdingTag + 1, // 11: google.cloud.aiplatform.v1.IndexDatapoint.NumericRestriction.op:type_name -> google.cloud.aiplatform.v1.IndexDatapoint.NumericRestriction.Operator + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_index_proto_init() } @@ -782,6 +1017,18 @@ func file_google_cloud_aiplatform_v1_index_proto_init() { } } file_google_cloud_aiplatform_v1_index_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexDatapoint_NumericRestriction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_index_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IndexDatapoint_CrowdingTag); i { case 0: return &v.state @@ -794,13 +1041,18 @@ func file_google_cloud_aiplatform_v1_index_proto_init() { } } } + file_google_cloud_aiplatform_v1_index_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*IndexDatapoint_NumericRestriction_ValueInt)(nil), + (*IndexDatapoint_NumericRestriction_ValueFloat)(nil), + (*IndexDatapoint_NumericRestriction_ValueDouble)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1_index_proto_rawDesc, - NumEnums: 1, - NumMessages: 6, + NumEnums: 2, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1/aiplatformpb/index_endpoint.pb.go b/aiplatform/apiv1/aiplatformpb/index_endpoint.pb.go index 75e156e1231a..00d4d0ebe423 100755 --- a/aiplatform/apiv1/aiplatformpb/index_endpoint.pb.go +++ b/aiplatform/apiv1/aiplatformpb/index_endpoint.pb.go @@ -297,10 +297,11 @@ type DeployedIndex struct { // 1000. AutomaticResources *AutomaticResources `protobuf:"bytes,7,opt,name=automatic_resources,json=automaticResources,proto3" json:"automatic_resources,omitempty"` // Optional. A description of resources that are dedicated to the - // DeployedIndex, and that need a higher degree of manual configuration. If - // min_replica_count is not set, the default value is 2 (we don't provide SLA - // when min_replica_count=1). If max_replica_count is not set, the default - // value is min_replica_count. The max allowed replica count is 1000. + // DeployedIndex, and that need a higher degree of manual configuration. The + // field min_replica_count must be set to a value strictly greater than 0, or + // else validation will fail. We don't provide SLA when min_replica_count=1. + // If max_replica_count is not set, the default value is min_replica_count. + // The max allowed replica count is 1000. // // Available machine types for SMALL shard: // e2-standard-2 and all machine types available for MEDIUM and LARGE shard. diff --git a/aiplatform/apiv1/aiplatformpb/llm_utility_service.pb.go b/aiplatform/apiv1/aiplatformpb/llm_utility_service.pb.go new file mode 100755 index 000000000000..9f8076c1dc5f --- /dev/null +++ b/aiplatform/apiv1/aiplatformpb/llm_utility_service.pb.go @@ -0,0 +1,531 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1/llm_utility_service.proto + +package aiplatformpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Request message for ComputeTokens RPC call. +type ComputeTokensRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the Endpoint requested to get lists of tokens and + // token ids. + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // Required. The instances that are the input to token computing API call. + // Schema is identical to the prediction schema of the text model, even for + // the non-text models, like chat models, or Codey models. + Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` +} + +func (x *ComputeTokensRequest) Reset() { + *x = ComputeTokensRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComputeTokensRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeTokensRequest) ProtoMessage() {} + +func (x *ComputeTokensRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeTokensRequest.ProtoReflect.Descriptor instead. +func (*ComputeTokensRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ComputeTokensRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *ComputeTokensRequest) GetInstances() []*structpb.Value { + if x != nil { + return x.Instances + } + return nil +} + +// Tokens info with a list of tokens and the corresponding list of token ids. +type TokensInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of tokens from the input. + Tokens [][]byte `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` + // A list of token ids from the input. + TokenIds []int64 `protobuf:"varint,2,rep,packed,name=token_ids,json=tokenIds,proto3" json:"token_ids,omitempty"` +} + +func (x *TokensInfo) Reset() { + *x = TokensInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokensInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokensInfo) ProtoMessage() {} + +func (x *TokensInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TokensInfo.ProtoReflect.Descriptor instead. +func (*TokensInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescGZIP(), []int{1} +} + +func (x *TokensInfo) GetTokens() [][]byte { + if x != nil { + return x.Tokens + } + return nil +} + +func (x *TokensInfo) GetTokenIds() []int64 { + if x != nil { + return x.TokenIds + } + return nil +} + +// Response message for ComputeTokens RPC call. +type ComputeTokensResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lists of tokens info from the input. A ComputeTokensRequest could have + // multiple instances with a prompt in each instance. We also need to return + // lists of tokens info for the request with multiple instances. + TokensInfo []*TokensInfo `protobuf:"bytes,1,rep,name=tokens_info,json=tokensInfo,proto3" json:"tokens_info,omitempty"` +} + +func (x *ComputeTokensResponse) Reset() { + *x = ComputeTokensResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComputeTokensResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeTokensResponse) ProtoMessage() {} + +func (x *ComputeTokensResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeTokensResponse.ProtoReflect.Descriptor instead. +func (*ComputeTokensResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ComputeTokensResponse) GetTokensInfo() []*TokensInfo { + if x != nil { + return x.TokensInfo + } + return nil +} + +var File_google_cloud_aiplatform_v1_llm_utility_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDesc = []byte{ + 0x0a, 0x34, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x6c, 0x6d, + 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, + 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x33, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x01, 0x0a, 0x14, 0x43, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, + 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x08, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x60, 0x0a, 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x47, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x32, 0xac, 0x05, 0x0a, 0x11, 0x4c, 0x6c, + 0x6d, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x9d, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xac, 0x01, 0xda, 0x41, 0x12, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x90, 0x01, 0x3a, + 0x01, 0x2a, 0x5a, 0x4c, 0x3a, 0x01, 0x2a, 0x22, 0x47, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x22, 0x3d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0xa7, 0x02, 0x0a, 0x0d, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb0, 0x01, 0xda, 0x41, 0x12, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x94, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x4e, 0x3a, 0x01, 0x2a, 0x22, 0x49, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, + 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, + 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xd4, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x16, 0x4c, 0x6c, 0x6d, + 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescData = file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_aiplatform_v1_llm_utility_service_proto_goTypes = []interface{}{ + (*ComputeTokensRequest)(nil), // 0: google.cloud.aiplatform.v1.ComputeTokensRequest + (*TokensInfo)(nil), // 1: google.cloud.aiplatform.v1.TokensInfo + (*ComputeTokensResponse)(nil), // 2: google.cloud.aiplatform.v1.ComputeTokensResponse + (*structpb.Value)(nil), // 3: google.protobuf.Value + (*CountTokensRequest)(nil), // 4: google.cloud.aiplatform.v1.CountTokensRequest + (*CountTokensResponse)(nil), // 5: google.cloud.aiplatform.v1.CountTokensResponse +} +var file_google_cloud_aiplatform_v1_llm_utility_service_proto_depIdxs = []int32{ + 3, // 0: google.cloud.aiplatform.v1.ComputeTokensRequest.instances:type_name -> google.protobuf.Value + 1, // 1: google.cloud.aiplatform.v1.ComputeTokensResponse.tokens_info:type_name -> google.cloud.aiplatform.v1.TokensInfo + 4, // 2: google.cloud.aiplatform.v1.LlmUtilityService.CountTokens:input_type -> google.cloud.aiplatform.v1.CountTokensRequest + 0, // 3: google.cloud.aiplatform.v1.LlmUtilityService.ComputeTokens:input_type -> google.cloud.aiplatform.v1.ComputeTokensRequest + 5, // 4: google.cloud.aiplatform.v1.LlmUtilityService.CountTokens:output_type -> google.cloud.aiplatform.v1.CountTokensResponse + 2, // 5: google.cloud.aiplatform.v1.LlmUtilityService.ComputeTokens:output_type -> google.cloud.aiplatform.v1.ComputeTokensResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1_llm_utility_service_proto_init() } +func file_google_cloud_aiplatform_v1_llm_utility_service_proto_init() { + if File_google_cloud_aiplatform_v1_llm_utility_service_proto != nil { + return + } + file_google_cloud_aiplatform_v1_prediction_service_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComputeTokensRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokensInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComputeTokensResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_aiplatform_v1_llm_utility_service_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1_llm_utility_service_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1_llm_utility_service_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1_llm_utility_service_proto = out.File + file_google_cloud_aiplatform_v1_llm_utility_service_proto_rawDesc = nil + file_google_cloud_aiplatform_v1_llm_utility_service_proto_goTypes = nil + file_google_cloud_aiplatform_v1_llm_utility_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// LlmUtilityServiceClient is the client API for LlmUtilityService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type LlmUtilityServiceClient interface { + // Perform a token counting. + CountTokens(ctx context.Context, in *CountTokensRequest, opts ...grpc.CallOption) (*CountTokensResponse, error) + // Return a list of tokens based on the input text. + ComputeTokens(ctx context.Context, in *ComputeTokensRequest, opts ...grpc.CallOption) (*ComputeTokensResponse, error) +} + +type llmUtilityServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewLlmUtilityServiceClient(cc grpc.ClientConnInterface) LlmUtilityServiceClient { + return &llmUtilityServiceClient{cc} +} + +func (c *llmUtilityServiceClient) CountTokens(ctx context.Context, in *CountTokensRequest, opts ...grpc.CallOption) (*CountTokensResponse, error) { + out := new(CountTokensResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.LlmUtilityService/CountTokens", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *llmUtilityServiceClient) ComputeTokens(ctx context.Context, in *ComputeTokensRequest, opts ...grpc.CallOption) (*ComputeTokensResponse, error) { + out := new(ComputeTokensResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1.LlmUtilityService/ComputeTokens", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LlmUtilityServiceServer is the server API for LlmUtilityService service. +type LlmUtilityServiceServer interface { + // Perform a token counting. + CountTokens(context.Context, *CountTokensRequest) (*CountTokensResponse, error) + // Return a list of tokens based on the input text. + ComputeTokens(context.Context, *ComputeTokensRequest) (*ComputeTokensResponse, error) +} + +// UnimplementedLlmUtilityServiceServer can be embedded to have forward compatible implementations. +type UnimplementedLlmUtilityServiceServer struct { +} + +func (*UnimplementedLlmUtilityServiceServer) CountTokens(context.Context, *CountTokensRequest) (*CountTokensResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method CountTokens not implemented") +} +func (*UnimplementedLlmUtilityServiceServer) ComputeTokens(context.Context, *ComputeTokensRequest) (*ComputeTokensResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComputeTokens not implemented") +} + +func RegisterLlmUtilityServiceServer(s *grpc.Server, srv LlmUtilityServiceServer) { + s.RegisterService(&_LlmUtilityService_serviceDesc, srv) +} + +func _LlmUtilityService_CountTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CountTokensRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LlmUtilityServiceServer).CountTokens(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.LlmUtilityService/CountTokens", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LlmUtilityServiceServer).CountTokens(ctx, req.(*CountTokensRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LlmUtilityService_ComputeTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComputeTokensRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LlmUtilityServiceServer).ComputeTokens(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1.LlmUtilityService/ComputeTokens", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LlmUtilityServiceServer).ComputeTokens(ctx, req.(*ComputeTokensRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _LlmUtilityService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.aiplatform.v1.LlmUtilityService", + HandlerType: (*LlmUtilityServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CountTokens", + Handler: _LlmUtilityService_CountTokens_Handler, + }, + { + MethodName: "ComputeTokens", + Handler: _LlmUtilityService_ComputeTokens_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/aiplatform/v1/llm_utility_service.proto", +} diff --git a/aiplatform/apiv1/aiplatformpb/machine_resources.pb.go b/aiplatform/apiv1/aiplatformpb/machine_resources.pb.go index c250da84db72..2edf0fc67713 100755 --- a/aiplatform/apiv1/aiplatformpb/machine_resources.pb.go +++ b/aiplatform/apiv1/aiplatformpb/machine_resources.pb.go @@ -62,6 +62,9 @@ type MachineSpec struct { AcceleratorType AcceleratorType `protobuf:"varint,2,opt,name=accelerator_type,json=acceleratorType,proto3,enum=google.cloud.aiplatform.v1.AcceleratorType" json:"accelerator_type,omitempty"` // The number of accelerators to attach to the machine. AcceleratorCount int32 `protobuf:"varint,3,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"` + // Immutable. The topology of the TPUs. Corresponds to the TPU topologies + // available from GKE. (Example: tpu_topology: "2x2x1"). + TpuTopology string `protobuf:"bytes,4,opt,name=tpu_topology,json=tpuTopology,proto3" json:"tpu_topology,omitempty"` } func (x *MachineSpec) Reset() { @@ -117,6 +120,13 @@ func (x *MachineSpec) GetAcceleratorCount() int32 { return 0 } +func (x *MachineSpec) GetTpuTopology() string { + if x != nil { + return x.TpuTopology + } + return "" +} + // A description of resources that are dedicated to a DeployedModel, and // that need a higher degree of manual configuration. type DedicatedResources struct { @@ -705,7 +715,7 @@ var file_google_cloud_aiplatform_v1_machine_resources_proto_rawDesc = []byte{ 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe7, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x5b, 0x0a, 0x10, @@ -717,89 +727,92 @@ var file_google_cloud_aiplatform_v1_machine_resources_proto_rawDesc = []byte{ 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbf, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x64, 0x69, 0x63, - 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x52, 0x0a, - 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, - 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x32, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x06, 0xe0, 0x41, - 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x70, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, - 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x05, - 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x73, 0x22, 0x76, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2f, - 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, - 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, - 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, - 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0c, - 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, - 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, - 0x12, 0x39, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, - 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, - 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3d, 0x0a, 0x11, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x68, 0x6f, 0x75, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, - 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x08, 0x44, - 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, - 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, - 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, - 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, - 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x22, 0x53, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, - 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, - 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x64, - 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x22, 0x66, 0x0a, - 0x08, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, - 0x24, 0x0a, 0x0b, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, - 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0xd3, 0x01, 0x0a, - 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, - 0x15, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, - 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x70, 0x75, 0x5f, 0x74, 0x6f, + 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x05, 0x52, 0x0b, 0x74, 0x70, 0x75, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x22, 0xbf, + 0x02, 0x0a, 0x12, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x32, 0x0a, 0x11, 0x6d, 0x69, 0x6e, + 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, + 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, + 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x70, + 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, + 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, + 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, + 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x73, + 0x22, 0x76, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd9, 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x39, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x14, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x48, 0x6f, + 0x75, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x24, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, + 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, + 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, + 0x22, 0x53, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, + 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, + 0x69, 0x7a, 0x65, 0x47, 0x62, 0x22, 0x66, 0x0a, 0x08, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x55, 0x0a, + 0x15, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x42, 0xd3, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/aiplatform/apiv1/aiplatformpb/model.pb.go b/aiplatform/apiv1/aiplatformpb/model.pb.go index 3d69ab96bdbc..b005723b6f61 100755 --- a/aiplatform/apiv1/aiplatformpb/model.pb.go +++ b/aiplatform/apiv1/aiplatformpb/model.pb.go @@ -27,6 +27,7 @@ import ( _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) @@ -1073,6 +1074,16 @@ type ModelContainerSpec struct { // [`AIP_DEPLOYED_MODEL_ID` environment // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) HealthRoute string `protobuf:"bytes,7,opt,name=health_route,json=healthRoute,proto3" json:"health_route,omitempty"` + // Immutable. Deployment timeout. + // Limit for deployment timeout is 2 hours. + DeploymentTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=deployment_timeout,json=deploymentTimeout,proto3" json:"deployment_timeout,omitempty"` + // Immutable. The amount of the VM memory to reserve as the shared memory for + // the model in megabytes. + SharedMemorySizeMb int64 `protobuf:"varint,11,opt,name=shared_memory_size_mb,json=sharedMemorySizeMb,proto3" json:"shared_memory_size_mb,omitempty"` + // Immutable. Specification for Kubernetes startup probe. + StartupProbe *Probe `protobuf:"bytes,12,opt,name=startup_probe,json=startupProbe,proto3" json:"startup_probe,omitempty"` + // Immutable. Specification for Kubernetes readiness probe. + HealthProbe *Probe `protobuf:"bytes,13,opt,name=health_probe,json=healthProbe,proto3" json:"health_probe,omitempty"` } func (x *ModelContainerSpec) Reset() { @@ -1156,6 +1167,34 @@ func (x *ModelContainerSpec) GetHealthRoute() string { return "" } +func (x *ModelContainerSpec) GetDeploymentTimeout() *durationpb.Duration { + if x != nil { + return x.DeploymentTimeout + } + return nil +} + +func (x *ModelContainerSpec) GetSharedMemorySizeMb() int64 { + if x != nil { + return x.SharedMemorySizeMb + } + return 0 +} + +func (x *ModelContainerSpec) GetStartupProbe() *Probe { + if x != nil { + return x.StartupProbe + } + return nil +} + +func (x *ModelContainerSpec) GetHealthProbe() *Probe { + if x != nil { + return x.HealthProbe + } + return nil +} + // Represents a network port in a container. type Port struct { state protoimpl.MessageState @@ -1266,6 +1305,99 @@ func (x *ModelSourceInfo) GetCopy() bool { return false } +// Probe describes a health check to be performed against a container to +// determine whether it is alive or ready to receive traffic. +type Probe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ProbeType: + // *Probe_Exec + ProbeType isProbe_ProbeType `protobuf_oneof:"probe_type"` + // How often (in seconds) to perform the probe. Default to 10 seconds. + // Minimum value is 1. Must be less than timeout_seconds. + // + // Maps to Kubernetes probe argument 'periodSeconds'. + PeriodSeconds int32 `protobuf:"varint,2,opt,name=period_seconds,json=periodSeconds,proto3" json:"period_seconds,omitempty"` + // Number of seconds after which the probe times out. Defaults to 1 second. + // Minimum value is 1. Must be greater or equal to period_seconds. + // + // Maps to Kubernetes probe argument 'timeoutSeconds'. + TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` +} + +func (x *Probe) Reset() { + *x = Probe{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Probe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Probe) ProtoMessage() {} + +func (x *Probe) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Probe.ProtoReflect.Descriptor instead. +func (*Probe) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{6} +} + +func (m *Probe) GetProbeType() isProbe_ProbeType { + if m != nil { + return m.ProbeType + } + return nil +} + +func (x *Probe) GetExec() *Probe_ExecAction { + if x, ok := x.GetProbeType().(*Probe_Exec); ok { + return x.Exec + } + return nil +} + +func (x *Probe) GetPeriodSeconds() int32 { + if x != nil { + return x.PeriodSeconds + } + return 0 +} + +func (x *Probe) GetTimeoutSeconds() int32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + +type isProbe_ProbeType interface { + isProbe_ProbeType() +} + +type Probe_Exec struct { + // Exec specifies the action to take. + Exec *Probe_ExecAction `protobuf:"bytes,1,opt,name=exec,proto3,oneof"` +} + +func (*Probe_Exec) isProbe_ProbeType() {} + // Represents export format supported by the Model. // All formats export to Google Cloud Storage. type Model_ExportFormat struct { @@ -1302,7 +1434,7 @@ type Model_ExportFormat struct { func (x *Model_ExportFormat) Reset() { *x = Model_ExportFormat{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1315,7 +1447,7 @@ func (x *Model_ExportFormat) String() string { func (*Model_ExportFormat) ProtoMessage() {} func (x *Model_ExportFormat) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1360,7 +1492,7 @@ type Model_OriginalModelInfo struct { func (x *Model_OriginalModelInfo) Reset() { *x = Model_OriginalModelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1373,7 +1505,7 @@ func (x *Model_OriginalModelInfo) String() string { func (*Model_OriginalModelInfo) ProtoMessage() {} func (x *Model_OriginalModelInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1396,6 +1528,60 @@ func (x *Model_OriginalModelInfo) GetModel() string { return "" } +// ExecAction specifies a command to execute. +type Probe_ExecAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Command is the command line to execute inside the container, the working + // directory for the command is root ('/') in the container's filesystem. + // The command is simply exec'd, it is not run inside a shell, so + // traditional shell instructions ('|', etc) won't work. To use a shell, you + // need to explicitly call out to that shell. Exit status of 0 is treated as + // live/healthy and non-zero is unhealthy. + Command []string `protobuf:"bytes,1,rep,name=command,proto3" json:"command,omitempty"` +} + +func (x *Probe_ExecAction) Reset() { + *x = Probe_ExecAction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Probe_ExecAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Probe_ExecAction) ProtoMessage() {} + +func (x *Probe_ExecAction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_model_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Probe_ExecAction.ProtoReflect.Descriptor instead. +func (*Probe_ExecAction) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *Probe_ExecAction) GetCommand() []string { + if x != nil { + return x.Command + } + return nil +} + var File_google_cloud_aiplatform_v1_model_proto protoreflect.FileDescriptor var file_google_cloud_aiplatform_v1_model_proto_rawDesc = []byte{ @@ -1419,6 +1605,8 @@ var file_google_cloud_aiplatform_v1_model_proto_rawDesc = []byte{ 0x6f, 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, @@ -1604,7 +1792,7 @@ var file_google_cloud_aiplatform_v1_model_proto_rawDesc = []byte{ 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xbb, 0x02, 0x0a, 0x12, 0x4d, + 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xda, 0x04, 0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x08, 0x69, 0x6d, @@ -1624,39 +1812,70 @@ var file_google_cloud_aiplatform_v1_model_proto_rawDesc = []byte{ 0x41, 0x05, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, - 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, - 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x0b, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x70, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x22, 0x73, 0x0a, - 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, - 0x51, 0x4d, 0x4c, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x47, - 0x41, 0x52, 0x44, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x45, 0x4e, 0x49, 0x45, - 0x10, 0x05, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, - 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, - 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x74, 0x68, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x03, 0xe0, 0x41, 0x05, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x62, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x12, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x12, + 0x4b, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x49, 0x0a, 0x0c, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, + 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x0b, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x70, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x22, 0x73, 0x0a, 0x0f, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x51, + 0x4d, 0x4c, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x47, 0x41, + 0x52, 0x44, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, + 0x05, 0x22, 0xd1, 0x01, 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x42, 0x0a, 0x04, 0x65, + 0x78, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x45, 0x78, 0x65, + 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x1a, + 0x26, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x62, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, + 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1672,7 +1891,7 @@ func file_google_cloud_aiplatform_v1_model_proto_rawDescGZIP() []byte { } var file_google_cloud_aiplatform_v1_model_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_aiplatform_v1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_google_cloud_aiplatform_v1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_google_cloud_aiplatform_v1_model_proto_goTypes = []interface{}{ (Model_DeploymentResourcesType)(0), // 0: google.cloud.aiplatform.v1.Model.DeploymentResourcesType (Model_ExportFormat_ExportableContent)(0), // 1: google.cloud.aiplatform.v1.Model.ExportFormat.ExportableContent @@ -1683,41 +1902,48 @@ var file_google_cloud_aiplatform_v1_model_proto_goTypes = []interface{}{ (*ModelContainerSpec)(nil), // 6: google.cloud.aiplatform.v1.ModelContainerSpec (*Port)(nil), // 7: google.cloud.aiplatform.v1.Port (*ModelSourceInfo)(nil), // 8: google.cloud.aiplatform.v1.ModelSourceInfo - (*Model_ExportFormat)(nil), // 9: google.cloud.aiplatform.v1.Model.ExportFormat - (*Model_OriginalModelInfo)(nil), // 10: google.cloud.aiplatform.v1.Model.OriginalModelInfo - nil, // 11: google.cloud.aiplatform.v1.Model.LabelsEntry - (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp - (*structpb.Value)(nil), // 13: google.protobuf.Value - (*DeployedModelRef)(nil), // 14: google.cloud.aiplatform.v1.DeployedModelRef - (*ExplanationSpec)(nil), // 15: google.cloud.aiplatform.v1.ExplanationSpec - (*EncryptionSpec)(nil), // 16: google.cloud.aiplatform.v1.EncryptionSpec - (*EnvVar)(nil), // 17: google.cloud.aiplatform.v1.EnvVar + (*Probe)(nil), // 9: google.cloud.aiplatform.v1.Probe + (*Model_ExportFormat)(nil), // 10: google.cloud.aiplatform.v1.Model.ExportFormat + (*Model_OriginalModelInfo)(nil), // 11: google.cloud.aiplatform.v1.Model.OriginalModelInfo + nil, // 12: google.cloud.aiplatform.v1.Model.LabelsEntry + (*Probe_ExecAction)(nil), // 13: google.cloud.aiplatform.v1.Probe.ExecAction + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp + (*structpb.Value)(nil), // 15: google.protobuf.Value + (*DeployedModelRef)(nil), // 16: google.cloud.aiplatform.v1.DeployedModelRef + (*ExplanationSpec)(nil), // 17: google.cloud.aiplatform.v1.ExplanationSpec + (*EncryptionSpec)(nil), // 18: google.cloud.aiplatform.v1.EncryptionSpec + (*EnvVar)(nil), // 19: google.cloud.aiplatform.v1.EnvVar + (*durationpb.Duration)(nil), // 20: google.protobuf.Duration } var file_google_cloud_aiplatform_v1_model_proto_depIdxs = []int32{ - 12, // 0: google.cloud.aiplatform.v1.Model.version_create_time:type_name -> google.protobuf.Timestamp - 12, // 1: google.cloud.aiplatform.v1.Model.version_update_time:type_name -> google.protobuf.Timestamp + 14, // 0: google.cloud.aiplatform.v1.Model.version_create_time:type_name -> google.protobuf.Timestamp + 14, // 1: google.cloud.aiplatform.v1.Model.version_update_time:type_name -> google.protobuf.Timestamp 5, // 2: google.cloud.aiplatform.v1.Model.predict_schemata:type_name -> google.cloud.aiplatform.v1.PredictSchemata - 13, // 3: google.cloud.aiplatform.v1.Model.metadata:type_name -> google.protobuf.Value - 9, // 4: google.cloud.aiplatform.v1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat + 15, // 3: google.cloud.aiplatform.v1.Model.metadata:type_name -> google.protobuf.Value + 10, // 4: google.cloud.aiplatform.v1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat 6, // 5: google.cloud.aiplatform.v1.Model.container_spec:type_name -> google.cloud.aiplatform.v1.ModelContainerSpec 0, // 6: google.cloud.aiplatform.v1.Model.supported_deployment_resources_types:type_name -> google.cloud.aiplatform.v1.Model.DeploymentResourcesType - 12, // 7: google.cloud.aiplatform.v1.Model.create_time:type_name -> google.protobuf.Timestamp - 12, // 8: google.cloud.aiplatform.v1.Model.update_time:type_name -> google.protobuf.Timestamp - 14, // 9: google.cloud.aiplatform.v1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1.DeployedModelRef - 15, // 10: google.cloud.aiplatform.v1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1.ExplanationSpec - 11, // 11: google.cloud.aiplatform.v1.Model.labels:type_name -> google.cloud.aiplatform.v1.Model.LabelsEntry - 16, // 12: google.cloud.aiplatform.v1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec + 14, // 7: google.cloud.aiplatform.v1.Model.create_time:type_name -> google.protobuf.Timestamp + 14, // 8: google.cloud.aiplatform.v1.Model.update_time:type_name -> google.protobuf.Timestamp + 16, // 9: google.cloud.aiplatform.v1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1.DeployedModelRef + 17, // 10: google.cloud.aiplatform.v1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1.ExplanationSpec + 12, // 11: google.cloud.aiplatform.v1.Model.labels:type_name -> google.cloud.aiplatform.v1.Model.LabelsEntry + 18, // 12: google.cloud.aiplatform.v1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1.EncryptionSpec 8, // 13: google.cloud.aiplatform.v1.Model.model_source_info:type_name -> google.cloud.aiplatform.v1.ModelSourceInfo - 10, // 14: google.cloud.aiplatform.v1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1.Model.OriginalModelInfo - 17, // 15: google.cloud.aiplatform.v1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1.EnvVar + 11, // 14: google.cloud.aiplatform.v1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1.Model.OriginalModelInfo + 19, // 15: google.cloud.aiplatform.v1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1.EnvVar 7, // 16: google.cloud.aiplatform.v1.ModelContainerSpec.ports:type_name -> google.cloud.aiplatform.v1.Port - 2, // 17: google.cloud.aiplatform.v1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1.ModelSourceInfo.ModelSourceType - 1, // 18: google.cloud.aiplatform.v1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat.ExportableContent - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 20, // 17: google.cloud.aiplatform.v1.ModelContainerSpec.deployment_timeout:type_name -> google.protobuf.Duration + 9, // 18: google.cloud.aiplatform.v1.ModelContainerSpec.startup_probe:type_name -> google.cloud.aiplatform.v1.Probe + 9, // 19: google.cloud.aiplatform.v1.ModelContainerSpec.health_probe:type_name -> google.cloud.aiplatform.v1.Probe + 2, // 20: google.cloud.aiplatform.v1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1.ModelSourceInfo.ModelSourceType + 13, // 21: google.cloud.aiplatform.v1.Probe.exec:type_name -> google.cloud.aiplatform.v1.Probe.ExecAction + 1, // 22: google.cloud.aiplatform.v1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1.Model.ExportFormat.ExportableContent + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_model_proto_init() } @@ -1803,7 +2029,7 @@ func file_google_cloud_aiplatform_v1_model_proto_init() { } } file_google_cloud_aiplatform_v1_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Model_ExportFormat); i { + switch v := v.(*Probe); i { case 0: return &v.state case 1: @@ -1815,6 +2041,18 @@ func file_google_cloud_aiplatform_v1_model_proto_init() { } } file_google_cloud_aiplatform_v1_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Model_ExportFormat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Model_OriginalModelInfo); i { case 0: return &v.state @@ -1826,6 +2064,21 @@ func file_google_cloud_aiplatform_v1_model_proto_init() { return nil } } + file_google_cloud_aiplatform_v1_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Probe_ExecAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1_model_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Probe_Exec)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1833,7 +2086,7 @@ func file_google_cloud_aiplatform_v1_model_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1_model_proto_rawDesc, NumEnums: 3, - NumMessages: 9, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go b/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go index 81d68f3dfe7d..1e864b423324 100755 --- a/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go +++ b/aiplatform/apiv1/aiplatformpb/prediction_service.pb.go @@ -620,6 +620,126 @@ func (x *ExplainResponse) GetPredictions() []*structpb.Value { return nil } +// Request message for [PredictionService.CountTokens][]. +type CountTokensRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the Endpoint requested to perform token counting. + // Format: + // `projects/{project}/locations/{location}/endpoints/{endpoint}` + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // Required. The instances that are the input to token counting call. + // Schema is identical to the prediction schema of the underlying model. + Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` +} + +func (x *CountTokensRequest) Reset() { + *x = CountTokensRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountTokensRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountTokensRequest) ProtoMessage() {} + +func (x *CountTokensRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountTokensRequest.ProtoReflect.Descriptor instead. +func (*CountTokensRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{7} +} + +func (x *CountTokensRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *CountTokensRequest) GetInstances() []*structpb.Value { + if x != nil { + return x.Instances + } + return nil +} + +// Response message for [PredictionService.CountTokens][]. +type CountTokensResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The total number of tokens counted across all instances from the request. + TotalTokens int32 `protobuf:"varint,1,opt,name=total_tokens,json=totalTokens,proto3" json:"total_tokens,omitempty"` + // The total number of billable characters counted across all instances from + // the request. + TotalBillableCharacters int32 `protobuf:"varint,2,opt,name=total_billable_characters,json=totalBillableCharacters,proto3" json:"total_billable_characters,omitempty"` +} + +func (x *CountTokensResponse) Reset() { + *x = CountTokensResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CountTokensResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CountTokensResponse) ProtoMessage() {} + +func (x *CountTokensResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CountTokensResponse.ProtoReflect.Descriptor instead. +func (*CountTokensResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP(), []int{8} +} + +func (x *CountTokensResponse) GetTotalTokens() int32 { + if x != nil { + return x.TotalTokens + } + return 0 +} + +func (x *CountTokensResponse) GetTotalBillableCharacters() int32 { + if x != nil { + return x.TotalBillableCharacters + } + return 0 +} + var File_google_cloud_aiplatform_v1_prediction_service_proto protoreflect.FileDescriptor var file_google_cloud_aiplatform_v1_prediction_service_proto_rawDesc = []byte{ @@ -746,7 +866,24 @@ var file_google_cloud_aiplatform_v1_prediction_service_proto_rawDesc = []byte{ 0x64, 0x12, 0x38, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, - 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x32, 0x8f, 0x09, 0x0a, 0x11, + 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x12, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x13, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x3a, 0x0a, 0x19, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x17, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x32, 0x8f, 0x09, 0x0a, 0x11, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x94, 0x02, 0x0a, 0x07, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, @@ -848,7 +985,7 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescGZIP() []by return file_google_cloud_aiplatform_v1_prediction_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_google_cloud_aiplatform_v1_prediction_service_proto_goTypes = []interface{}{ (*PredictRequest)(nil), // 0: google.cloud.aiplatform.v1.PredictRequest (*PredictResponse)(nil), // 1: google.cloud.aiplatform.v1.PredictResponse @@ -857,40 +994,43 @@ var file_google_cloud_aiplatform_v1_prediction_service_proto_goTypes = []interfa (*StreamingPredictResponse)(nil), // 4: google.cloud.aiplatform.v1.StreamingPredictResponse (*ExplainRequest)(nil), // 5: google.cloud.aiplatform.v1.ExplainRequest (*ExplainResponse)(nil), // 6: google.cloud.aiplatform.v1.ExplainResponse - (*structpb.Value)(nil), // 7: google.protobuf.Value - (*httpbody.HttpBody)(nil), // 8: google.api.HttpBody - (*Tensor)(nil), // 9: google.cloud.aiplatform.v1.Tensor - (*ExplanationSpecOverride)(nil), // 10: google.cloud.aiplatform.v1.ExplanationSpecOverride - (*Explanation)(nil), // 11: google.cloud.aiplatform.v1.Explanation + (*CountTokensRequest)(nil), // 7: google.cloud.aiplatform.v1.CountTokensRequest + (*CountTokensResponse)(nil), // 8: google.cloud.aiplatform.v1.CountTokensResponse + (*structpb.Value)(nil), // 9: google.protobuf.Value + (*httpbody.HttpBody)(nil), // 10: google.api.HttpBody + (*Tensor)(nil), // 11: google.cloud.aiplatform.v1.Tensor + (*ExplanationSpecOverride)(nil), // 12: google.cloud.aiplatform.v1.ExplanationSpecOverride + (*Explanation)(nil), // 13: google.cloud.aiplatform.v1.Explanation } var file_google_cloud_aiplatform_v1_prediction_service_proto_depIdxs = []int32{ - 7, // 0: google.cloud.aiplatform.v1.PredictRequest.instances:type_name -> google.protobuf.Value - 7, // 1: google.cloud.aiplatform.v1.PredictRequest.parameters:type_name -> google.protobuf.Value - 7, // 2: google.cloud.aiplatform.v1.PredictResponse.predictions:type_name -> google.protobuf.Value - 7, // 3: google.cloud.aiplatform.v1.PredictResponse.metadata:type_name -> google.protobuf.Value - 8, // 4: google.cloud.aiplatform.v1.RawPredictRequest.http_body:type_name -> google.api.HttpBody - 9, // 5: google.cloud.aiplatform.v1.StreamingPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1.Tensor - 9, // 6: google.cloud.aiplatform.v1.StreamingPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1.Tensor - 9, // 7: google.cloud.aiplatform.v1.StreamingPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1.Tensor - 9, // 8: google.cloud.aiplatform.v1.StreamingPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1.Tensor - 7, // 9: google.cloud.aiplatform.v1.ExplainRequest.instances:type_name -> google.protobuf.Value - 7, // 10: google.cloud.aiplatform.v1.ExplainRequest.parameters:type_name -> google.protobuf.Value - 10, // 11: google.cloud.aiplatform.v1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1.ExplanationSpecOverride - 11, // 12: google.cloud.aiplatform.v1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1.Explanation - 7, // 13: google.cloud.aiplatform.v1.ExplainResponse.predictions:type_name -> google.protobuf.Value - 0, // 14: google.cloud.aiplatform.v1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1.PredictRequest - 2, // 15: google.cloud.aiplatform.v1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1.RawPredictRequest - 3, // 16: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:input_type -> google.cloud.aiplatform.v1.StreamingPredictRequest - 5, // 17: google.cloud.aiplatform.v1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1.ExplainRequest - 1, // 18: google.cloud.aiplatform.v1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1.PredictResponse - 8, // 19: google.cloud.aiplatform.v1.PredictionService.RawPredict:output_type -> google.api.HttpBody - 4, // 20: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:output_type -> google.cloud.aiplatform.v1.StreamingPredictResponse - 6, // 21: google.cloud.aiplatform.v1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1.ExplainResponse - 18, // [18:22] is the sub-list for method output_type - 14, // [14:18] is the sub-list for method input_type - 14, // [14:14] is the sub-list for extension type_name - 14, // [14:14] is the sub-list for extension extendee - 0, // [0:14] is the sub-list for field type_name + 9, // 0: google.cloud.aiplatform.v1.PredictRequest.instances:type_name -> google.protobuf.Value + 9, // 1: google.cloud.aiplatform.v1.PredictRequest.parameters:type_name -> google.protobuf.Value + 9, // 2: google.cloud.aiplatform.v1.PredictResponse.predictions:type_name -> google.protobuf.Value + 9, // 3: google.cloud.aiplatform.v1.PredictResponse.metadata:type_name -> google.protobuf.Value + 10, // 4: google.cloud.aiplatform.v1.RawPredictRequest.http_body:type_name -> google.api.HttpBody + 11, // 5: google.cloud.aiplatform.v1.StreamingPredictRequest.inputs:type_name -> google.cloud.aiplatform.v1.Tensor + 11, // 6: google.cloud.aiplatform.v1.StreamingPredictRequest.parameters:type_name -> google.cloud.aiplatform.v1.Tensor + 11, // 7: google.cloud.aiplatform.v1.StreamingPredictResponse.outputs:type_name -> google.cloud.aiplatform.v1.Tensor + 11, // 8: google.cloud.aiplatform.v1.StreamingPredictResponse.parameters:type_name -> google.cloud.aiplatform.v1.Tensor + 9, // 9: google.cloud.aiplatform.v1.ExplainRequest.instances:type_name -> google.protobuf.Value + 9, // 10: google.cloud.aiplatform.v1.ExplainRequest.parameters:type_name -> google.protobuf.Value + 12, // 11: google.cloud.aiplatform.v1.ExplainRequest.explanation_spec_override:type_name -> google.cloud.aiplatform.v1.ExplanationSpecOverride + 13, // 12: google.cloud.aiplatform.v1.ExplainResponse.explanations:type_name -> google.cloud.aiplatform.v1.Explanation + 9, // 13: google.cloud.aiplatform.v1.ExplainResponse.predictions:type_name -> google.protobuf.Value + 9, // 14: google.cloud.aiplatform.v1.CountTokensRequest.instances:type_name -> google.protobuf.Value + 0, // 15: google.cloud.aiplatform.v1.PredictionService.Predict:input_type -> google.cloud.aiplatform.v1.PredictRequest + 2, // 16: google.cloud.aiplatform.v1.PredictionService.RawPredict:input_type -> google.cloud.aiplatform.v1.RawPredictRequest + 3, // 17: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:input_type -> google.cloud.aiplatform.v1.StreamingPredictRequest + 5, // 18: google.cloud.aiplatform.v1.PredictionService.Explain:input_type -> google.cloud.aiplatform.v1.ExplainRequest + 1, // 19: google.cloud.aiplatform.v1.PredictionService.Predict:output_type -> google.cloud.aiplatform.v1.PredictResponse + 10, // 20: google.cloud.aiplatform.v1.PredictionService.RawPredict:output_type -> google.api.HttpBody + 4, // 21: google.cloud.aiplatform.v1.PredictionService.ServerStreamingPredict:output_type -> google.cloud.aiplatform.v1.StreamingPredictResponse + 6, // 22: google.cloud.aiplatform.v1.PredictionService.Explain:output_type -> google.cloud.aiplatform.v1.ExplainResponse + 19, // [19:23] is the sub-list for method output_type + 15, // [15:19] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_prediction_service_proto_init() } @@ -985,6 +1125,30 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { return nil } } + file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountTokensRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_prediction_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CountTokensResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -992,7 +1156,7 @@ func file_google_cloud_aiplatform_v1_prediction_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1_prediction_service_proto_rawDesc, NumEnums: 0, - NumMessages: 7, + NumMessages: 9, NumExtensions: 0, NumServices: 1, }, diff --git a/aiplatform/apiv1/aiplatformpb/study.pb.go b/aiplatform/apiv1/aiplatformpb/study.pb.go index 644194fd1efc..e9bebaa552ef 100755 --- a/aiplatform/apiv1/aiplatformpb/study.pb.go +++ b/aiplatform/apiv1/aiplatformpb/study.pb.go @@ -30,6 +30,7 @@ import ( durationpb "google.golang.org/protobuf/types/known/durationpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) const ( @@ -218,7 +219,7 @@ func (x StudySpec_Algorithm) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_Algorithm.Descriptor instead. func (StudySpec_Algorithm) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 0} } // Describes the noise level of the repeated observations. @@ -277,7 +278,7 @@ func (x StudySpec_ObservationNoise) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_ObservationNoise.Descriptor instead. func (StudySpec_ObservationNoise) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1} } // This indicates which measurement to use if/when the service automatically @@ -343,7 +344,7 @@ func (x StudySpec_MeasurementSelectionType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_MeasurementSelectionType.Descriptor instead. func (StudySpec_MeasurementSelectionType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 2} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 2} } // The available types of optimization goals. @@ -396,7 +397,7 @@ func (x StudySpec_MetricSpec_GoalType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_MetricSpec_GoalType.Descriptor instead. func (StudySpec_MetricSpec_GoalType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 0, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 0, 0} } // The type of scaling that should be applied to this parameter. @@ -457,7 +458,7 @@ func (x StudySpec_ParameterSpec_ScaleType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_ParameterSpec_ScaleType.Descriptor instead. func (StudySpec_ParameterSpec_ScaleType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 0} } // A message representing a Study. @@ -799,6 +800,89 @@ func (x *TrialContext) GetParameters() []*Trial_Parameter { return nil } +// Time-based Constraint for Study +type StudyTimeConstraint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Constraint: + // *StudyTimeConstraint_MaxDuration + // *StudyTimeConstraint_EndTime + Constraint isStudyTimeConstraint_Constraint `protobuf_oneof:"constraint"` +} + +func (x *StudyTimeConstraint) Reset() { + *x = StudyTimeConstraint{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudyTimeConstraint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudyTimeConstraint) ProtoMessage() {} + +func (x *StudyTimeConstraint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudyTimeConstraint.ProtoReflect.Descriptor instead. +func (*StudyTimeConstraint) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3} +} + +func (m *StudyTimeConstraint) GetConstraint() isStudyTimeConstraint_Constraint { + if m != nil { + return m.Constraint + } + return nil +} + +func (x *StudyTimeConstraint) GetMaxDuration() *durationpb.Duration { + if x, ok := x.GetConstraint().(*StudyTimeConstraint_MaxDuration); ok { + return x.MaxDuration + } + return nil +} + +func (x *StudyTimeConstraint) GetEndTime() *timestamppb.Timestamp { + if x, ok := x.GetConstraint().(*StudyTimeConstraint_EndTime); ok { + return x.EndTime + } + return nil +} + +type isStudyTimeConstraint_Constraint interface { + isStudyTimeConstraint_Constraint() +} + +type StudyTimeConstraint_MaxDuration struct { + // Counts the wallclock time passed since the creation of this Study. + MaxDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_duration,json=maxDuration,proto3,oneof"` +} + +type StudyTimeConstraint_EndTime struct { + // Compares the wallclock time to this time. Must use UTC timezone. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3,oneof"` +} + +func (*StudyTimeConstraint_MaxDuration) isStudyTimeConstraint_Constraint() {} + +func (*StudyTimeConstraint_EndTime) isStudyTimeConstraint_Constraint() {} + // Represents specification of a Study. type StudySpec struct { state protoimpl.MessageState @@ -822,12 +906,15 @@ type StudySpec struct { ObservationNoise StudySpec_ObservationNoise `protobuf:"varint,6,opt,name=observation_noise,json=observationNoise,proto3,enum=google.cloud.aiplatform.v1.StudySpec_ObservationNoise" json:"observation_noise,omitempty"` // Describe which measurement selection type will be used MeasurementSelectionType StudySpec_MeasurementSelectionType `protobuf:"varint,7,opt,name=measurement_selection_type,json=measurementSelectionType,proto3,enum=google.cloud.aiplatform.v1.StudySpec_MeasurementSelectionType" json:"measurement_selection_type,omitempty"` + // Conditions for automated stopping of a Study. Enable automated stopping by + // configuring at least one condition. + StudyStoppingConfig *StudySpec_StudyStoppingConfig `protobuf:"bytes,11,opt,name=study_stopping_config,json=studyStoppingConfig,proto3,oneof" json:"study_stopping_config,omitempty"` } func (x *StudySpec) Reset() { *x = StudySpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -840,7 +927,7 @@ func (x *StudySpec) String() string { func (*StudySpec) ProtoMessage() {} func (x *StudySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -853,7 +940,7 @@ func (x *StudySpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec.ProtoReflect.Descriptor instead. func (*StudySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4} } func (m *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec { @@ -919,6 +1006,13 @@ func (x *StudySpec) GetMeasurementSelectionType() StudySpec_MeasurementSelection return StudySpec_MEASUREMENT_SELECTION_TYPE_UNSPECIFIED } +func (x *StudySpec) GetStudyStoppingConfig() *StudySpec_StudyStoppingConfig { + if x != nil { + return x.StudyStoppingConfig + } + return nil +} + type isStudySpec_AutomatedStoppingSpec interface { isStudySpec_AutomatedStoppingSpec() } @@ -966,7 +1060,7 @@ type Measurement struct { func (x *Measurement) Reset() { *x = Measurement{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -979,7 +1073,7 @@ func (x *Measurement) String() string { func (*Measurement) ProtoMessage() {} func (x *Measurement) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -992,7 +1086,7 @@ func (x *Measurement) ProtoReflect() protoreflect.Message { // Deprecated: Use Measurement.ProtoReflect.Descriptor instead. func (*Measurement) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{5} } func (x *Measurement) GetElapsedDuration() *durationpb.Duration { @@ -1037,7 +1131,7 @@ type Trial_Parameter struct { func (x *Trial_Parameter) Reset() { *x = Trial_Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1050,7 +1144,7 @@ func (x *Trial_Parameter) String() string { func (*Trial_Parameter) ProtoMessage() {} func (x *Trial_Parameter) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1099,7 +1193,7 @@ type StudySpec_MetricSpec struct { func (x *StudySpec_MetricSpec) Reset() { *x = StudySpec_MetricSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1112,7 +1206,7 @@ func (x *StudySpec_MetricSpec) String() string { func (*StudySpec_MetricSpec) ProtoMessage() {} func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1125,7 +1219,7 @@ func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_MetricSpec.ProtoReflect.Descriptor instead. func (*StudySpec_MetricSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 0} } func (x *StudySpec_MetricSpec) GetMetricId() string { @@ -1178,7 +1272,7 @@ type StudySpec_ParameterSpec struct { func (x *StudySpec_ParameterSpec) Reset() { *x = StudySpec_ParameterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1191,7 +1285,7 @@ func (x *StudySpec_ParameterSpec) String() string { func (*StudySpec_ParameterSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1204,7 +1298,7 @@ func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_ParameterSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1} } func (m *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec { @@ -1317,7 +1411,7 @@ type StudySpec_DecayCurveAutomatedStoppingSpec struct { func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() { *x = StudySpec_DecayCurveAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1330,7 +1424,7 @@ func (x *StudySpec_DecayCurveAutomatedStoppingSpec) String() string { func (*StudySpec_DecayCurveAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1343,7 +1437,7 @@ func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect. // Deprecated: Use StudySpec_DecayCurveAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_DecayCurveAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 2} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 2} } func (x *StudySpec_DecayCurveAutomatedStoppingSpec) GetUseElapsedDuration() bool { @@ -1374,7 +1468,7 @@ type StudySpec_MedianAutomatedStoppingSpec struct { func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() { *x = StudySpec_MedianAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1387,7 +1481,7 @@ func (x *StudySpec_MedianAutomatedStoppingSpec) String() string { func (*StudySpec_MedianAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1400,7 +1494,7 @@ func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Mess // Deprecated: Use StudySpec_MedianAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_MedianAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 3} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 3} } func (x *StudySpec_MedianAutomatedStoppingSpec) GetUseElapsedDuration() bool { @@ -1469,7 +1563,7 @@ type StudySpec_ConvexAutomatedStoppingSpec struct { func (x *StudySpec_ConvexAutomatedStoppingSpec) Reset() { *x = StudySpec_ConvexAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1482,7 +1576,7 @@ func (x *StudySpec_ConvexAutomatedStoppingSpec) String() string { func (*StudySpec_ConvexAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1495,7 +1589,7 @@ func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Mess // Deprecated: Use StudySpec_ConvexAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ConvexAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 4} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 4} } func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMaxStepCount() int64 { @@ -1540,6 +1634,141 @@ func (x *StudySpec_ConvexAutomatedStoppingSpec) GetUpdateAllStoppedTrials() bool return false } +// The configuration (stopping conditions) for automated stopping of a Study. +// Conditions include trial budgets, time budgets, and convergence detection. +type StudySpec_StudyStoppingConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If true, a Study enters STOPPING_ASAP whenever it would normally enters + // STOPPING state. + // + // The bottom line is: set to true if you want to interrupt on-going + // evaluations of Trials as soon as the study stopping condition is met. + // (Please see Study.State documentation for the source of truth). + ShouldStopAsap *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=should_stop_asap,json=shouldStopAsap,proto3" json:"should_stop_asap,omitempty"` + // Each "stopping rule" in this proto specifies an "if" condition. Before + // Vizier would generate a new suggestion, it first checks each specified + // stopping rule, from top to bottom in this list. + // Note that the first few rules (e.g. minimum_runtime_constraint, + // min_num_trials) will prevent other stopping rules from being evaluated + // until they are met. For example, setting `min_num_trials=5` and + // `always_stop_after= 1 hour` means that the Study will ONLY stop after it + // has 5 COMPLETED trials, even if more than an hour has passed since its + // creation. It follows the first applicable rule (whose "if" condition is + // satisfied) to make a stopping decision. If none of the specified rules + // are applicable, then Vizier decides that the study should not stop. + // If Vizier decides that the study should stop, the study enters + // STOPPING state (or STOPPING_ASAP if should_stop_asap = true). + // IMPORTANT: The automatic study state transition happens precisely as + // described above; that is, deleting trials or updating StudyConfig NEVER + // automatically moves the study state back to ACTIVE. If you want to + // _resume_ a Study that was stopped, 1) change the stopping conditions if + // necessary, 2) activate the study, and then 3) ask for suggestions. + // If the specified time or duration has not passed, do not stop the + // study. + MinimumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,2,opt,name=minimum_runtime_constraint,json=minimumRuntimeConstraint,proto3" json:"minimum_runtime_constraint,omitempty"` + // If the specified time or duration has passed, stop the study. + MaximumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,3,opt,name=maximum_runtime_constraint,json=maximumRuntimeConstraint,proto3" json:"maximum_runtime_constraint,omitempty"` + // If there are fewer than this many COMPLETED trials, do not stop the + // study. + MinNumTrials *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=min_num_trials,json=minNumTrials,proto3" json:"min_num_trials,omitempty"` + // If there are more than this many trials, stop the study. + MaxNumTrials *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=max_num_trials,json=maxNumTrials,proto3" json:"max_num_trials,omitempty"` + // If the objective value has not improved for this many consecutive + // trials, stop the study. + // + // WARNING: Effective only for single-objective studies. + MaxNumTrialsNoProgress *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=max_num_trials_no_progress,json=maxNumTrialsNoProgress,proto3" json:"max_num_trials_no_progress,omitempty"` + // If the objective value has not improved for this much time, stop the + // study. + // + // WARNING: Effective only for single-objective studies. + MaxDurationNoProgress *durationpb.Duration `protobuf:"bytes,7,opt,name=max_duration_no_progress,json=maxDurationNoProgress,proto3" json:"max_duration_no_progress,omitempty"` +} + +func (x *StudySpec_StudyStoppingConfig) Reset() { + *x = StudySpec_StudyStoppingConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudySpec_StudyStoppingConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudySpec_StudyStoppingConfig) ProtoMessage() {} + +func (x *StudySpec_StudyStoppingConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudySpec_StudyStoppingConfig.ProtoReflect.Descriptor instead. +func (*StudySpec_StudyStoppingConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 5} +} + +func (x *StudySpec_StudyStoppingConfig) GetShouldStopAsap() *wrapperspb.BoolValue { + if x != nil { + return x.ShouldStopAsap + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMinimumRuntimeConstraint() *StudyTimeConstraint { + if x != nil { + return x.MinimumRuntimeConstraint + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaximumRuntimeConstraint() *StudyTimeConstraint { + if x != nil { + return x.MaximumRuntimeConstraint + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMinNumTrials() *wrapperspb.Int32Value { + if x != nil { + return x.MinNumTrials + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrials() *wrapperspb.Int32Value { + if x != nil { + return x.MaxNumTrials + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrialsNoProgress() *wrapperspb.Int32Value { + if x != nil { + return x.MaxNumTrialsNoProgress + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxDurationNoProgress() *durationpb.Duration { + if x != nil { + return x.MaxDurationNoProgress + } + return nil +} + // Used in safe optimization to specify threshold levels and risk tolerance. type StudySpec_MetricSpec_SafetyMetricConfig struct { state protoimpl.MessageState @@ -1561,7 +1790,7 @@ type StudySpec_MetricSpec_SafetyMetricConfig struct { func (x *StudySpec_MetricSpec_SafetyMetricConfig) Reset() { *x = StudySpec_MetricSpec_SafetyMetricConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[12] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1574,7 +1803,7 @@ func (x *StudySpec_MetricSpec_SafetyMetricConfig) String() string { func (*StudySpec_MetricSpec_SafetyMetricConfig) ProtoMessage() {} func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[12] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1587,7 +1816,7 @@ func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Me // Deprecated: Use StudySpec_MetricSpec_SafetyMetricConfig.ProtoReflect.Descriptor instead. func (*StudySpec_MetricSpec_SafetyMetricConfig) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 0, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 0, 0} } func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetSafetyThreshold() float64 { @@ -1626,7 +1855,7 @@ type StudySpec_ParameterSpec_DoubleValueSpec struct { func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() { *x = StudySpec_ParameterSpec_DoubleValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[13] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1639,7 +1868,7 @@ func (x *StudySpec_ParameterSpec_DoubleValueSpec) String() string { func (*StudySpec_ParameterSpec_DoubleValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[13] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1652,7 +1881,7 @@ func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Me // Deprecated: Use StudySpec_ParameterSpec_DoubleValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_DoubleValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 0} } func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMinValue() float64 { @@ -1698,7 +1927,7 @@ type StudySpec_ParameterSpec_IntegerValueSpec struct { func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() { *x = StudySpec_ParameterSpec_IntegerValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[14] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1711,7 +1940,7 @@ func (x *StudySpec_ParameterSpec_IntegerValueSpec) String() string { func (*StudySpec_ParameterSpec_IntegerValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[14] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1724,7 +1953,7 @@ func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.M // Deprecated: Use StudySpec_ParameterSpec_IntegerValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_IntegerValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 1} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 1} } func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMinValue() int64 { @@ -1768,7 +1997,7 @@ type StudySpec_ParameterSpec_CategoricalValueSpec struct { func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() { *x = StudySpec_ParameterSpec_CategoricalValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[15] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1781,7 +2010,7 @@ func (x *StudySpec_ParameterSpec_CategoricalValueSpec) String() string { func (*StudySpec_ParameterSpec_CategoricalValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[15] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1794,7 +2023,7 @@ func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protorefle // Deprecated: Use StudySpec_ParameterSpec_CategoricalValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_CategoricalValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 2} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 2} } func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetValues() []string { @@ -1835,7 +2064,7 @@ type StudySpec_ParameterSpec_DiscreteValueSpec struct { func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() { *x = StudySpec_ParameterSpec_DiscreteValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[16] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1848,7 +2077,7 @@ func (x *StudySpec_ParameterSpec_DiscreteValueSpec) String() string { func (*StudySpec_ParameterSpec_DiscreteValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[16] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1861,7 +2090,7 @@ func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect. // Deprecated: Use StudySpec_ParameterSpec_DiscreteValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_DiscreteValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 3} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 3} } func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetValues() []float64 { @@ -1899,7 +2128,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec struct { func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[17] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1912,7 +2141,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) String() string { func (*StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[17] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1925,7 +2154,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protor // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 4} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 4} } func (m *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition { @@ -2010,7 +2239,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition str func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[18] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2023,7 +2252,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[18] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2036,7 +2265,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 4, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 4, 0} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) GetValues() []float64 { @@ -2060,7 +2289,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition struct { func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[19] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2073,7 +2302,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Str func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[19] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2086,7 +2315,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Pro // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 4, 1} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 4, 1} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) GetValues() []int64 { @@ -2111,7 +2340,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[20] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2124,7 +2353,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondit func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[20] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2137,7 +2366,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondit // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{3, 1, 4, 2} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 1, 4, 2} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) GetValues() []string { @@ -2163,7 +2392,7 @@ type Measurement_Metric struct { func (x *Measurement_Metric) Reset() { *x = Measurement_Metric{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[21] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2176,7 +2405,7 @@ func (x *Measurement_Metric) String() string { func (*Measurement_Metric) ProtoMessage() {} func (x *Measurement_Metric) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[21] + mi := &file_google_cloud_aiplatform_v1_study_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2189,7 +2418,7 @@ func (x *Measurement_Metric) ProtoReflect() protoreflect.Message { // Deprecated: Use Measurement_Metric.ProtoReflect.Descriptor instead. func (*Measurement_Metric) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{4, 0} + return file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP(), []int{5, 0} } func (x *Measurement_Metric) GetMetricId() string { @@ -2222,7 +2451,9 @@ var file_google_cloud_aiplatform_v1_study_proto_rawDesc = []byte{ 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xef, 0x03, 0x0a, 0x05, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, @@ -2333,316 +2564,374 @@ var file_google_cloud_aiplatform_v1_study_proto_rawDesc = []byte{ 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xe7, 0x22, 0x0a, 0x09, 0x53, - 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x82, 0x01, 0x0a, 0x19, 0x64, 0x65, 0x63, - 0x61, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, - 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, - 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, - 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, - 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, - 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x13, 0x53, + 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x63, + 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xe4, 0x28, 0x0a, 0x09, 0x53, 0x74, + 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x82, 0x01, 0x0a, 0x19, 0x64, 0x65, 0x63, 0x61, + 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, + 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, 0x0a, + 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, - 0x76, 0x65, 0x78, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, - 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, + 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x88, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x78, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, - 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x63, 0x0a, - 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x69, - 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, - 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, - 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x1a, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x1a, 0xfa, 0x03, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, - 0x64, 0x12, 0x52, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, + 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x4f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x58, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4d, 0x0a, + 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x63, 0x0a, 0x11, + 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x69, 0x73, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, + 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x52, + 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, + 0x65, 0x12, 0x7c, 0x0a, 0x1a, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, + 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x72, 0x0a, 0x15, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, + 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x13, 0x73, 0x74, 0x75, + 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x88, 0x01, 0x01, 0x1a, 0xfa, 0x03, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x49, 0x64, 0x12, 0x52, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x6d, 0x0a, 0x0d, 0x73, 0x61, 0x66, 0x65, + 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x6d, 0x0a, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, + 0x63, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, 0x65, + 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, + 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, 0x73, + 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, + 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x69, + 0x6e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, + 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, 0x47, + 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x1a, 0xa8, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x71, 0x0a, 0x11, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x74, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x80, 0x01, 0x0a, 0x16, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, - 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x88, 0x01, 0x01, 0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, - 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x54, 0x68, 0x72, - 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, - 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, - 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x48, 0x00, 0x52, 0x1c, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x61, - 0x66, 0x65, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, - 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, - 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, 0x47, 0x6f, 0x61, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, - 0x08, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xa8, 0x11, - 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x71, 0x0a, 0x11, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, - 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x74, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x44, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x80, 0x01, 0x0a, 0x16, 0x63, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, - 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x77, 0x0a, 0x13, 0x64, - 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, - 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, - 0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x5c, 0x0a, 0x0a, - 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x1b, 0x63, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x19, - 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0f, 0x44, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, - 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x92, 0x01, - 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, - 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, - 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x1a, 0x8c, 0x06, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x9b, - 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, - 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, - 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, - 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, - 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x8c, 0x01, 0x0a, - 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xa4, 0x01, 0x0a, 0x19, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x66, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, - 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, - 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, - 0x70, 0x65, 0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, - 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0x6e, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, - 0x16, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, - 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, - 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, - 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, - 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, - 0x42, 0x16, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, - 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, - 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, - 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, - 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, - 0x1b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, - 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, - 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, - 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, - 0x02, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, - 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, - 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, - 0x6e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, - 0x6e, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x4d, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, - 0x0a, 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x77, + 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x48, 0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x5c, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x8c, 0x01, + 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, + 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x1a, 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, + 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x8c, 0x06, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x8c, 0x01, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xa4, + 0x01, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x66, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, + 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, + 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x30, 0x0a, + 0x11, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, + 0x38, 0x0a, 0x19, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x43, 0x41, 0x4c, + 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, + 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, + 0x45, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, 0x0a, 0x1f, 0x44, + 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, + 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, + 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, + 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x1a, 0x4f, 0x0a, 0x1b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, + 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, - 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, - 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x22, - 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x19, 0x0a, 0x15, - 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x52, 0x49, 0x44, 0x5f, - 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x41, 0x4e, 0x44, - 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03, 0x22, 0x48, 0x0a, 0x10, 0x4f, - 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, - 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, - 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x48, - 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, - 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, - 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, - 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, - 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19, 0x0a, 0x17, 0x61, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x22, 0x92, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, - 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6e, 0x1a, 0xee, 0x02, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x74, + 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, + 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, + 0x6e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x52, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, + 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, + 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x73, 0x1a, 0xec, 0x04, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x68, + 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x73, 0x61, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x73, 0x61, 0x70, + 0x12, 0x6d, 0x0a, 0x1a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x09, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, - 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, + 0x6d, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, + 0x61, 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x41, + 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x54, 0x72, 0x69, 0x61, 0x6c, + 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, + 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x54, 0x72, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x54, 0x72, 0x69, + 0x61, 0x6c, 0x73, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x52, 0x0a, + 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, + 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d, 0x61, 0x78, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x19, + 0x0a, 0x15, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, 0x52, 0x49, + 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x41, + 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03, 0x22, 0x48, 0x0a, + 0x10, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, + 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65, 0x61, 0x73, 0x75, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, + 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, + 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54, 0x5f, 0x4d, 0x45, + 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19, 0x0a, 0x17, 0x61, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, + 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0x92, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x73, + 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x4d, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, + 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xc8, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x79, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1a, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, + 0xea, 0x02, 0x1d, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2658,7 +2947,7 @@ func file_google_cloud_aiplatform_v1_study_proto_rawDescGZIP() []byte { } var file_google_cloud_aiplatform_v1_study_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_google_cloud_aiplatform_v1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 22) +var file_google_cloud_aiplatform_v1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 24) var file_google_cloud_aiplatform_v1_study_proto_goTypes = []interface{}{ (Study_State)(0), // 0: google.cloud.aiplatform.v1.Study.State (Trial_State)(0), // 1: google.cloud.aiplatform.v1.Trial.State @@ -2670,69 +2959,83 @@ var file_google_cloud_aiplatform_v1_study_proto_goTypes = []interface{}{ (*Study)(nil), // 7: google.cloud.aiplatform.v1.Study (*Trial)(nil), // 8: google.cloud.aiplatform.v1.Trial (*TrialContext)(nil), // 9: google.cloud.aiplatform.v1.TrialContext - (*StudySpec)(nil), // 10: google.cloud.aiplatform.v1.StudySpec - (*Measurement)(nil), // 11: google.cloud.aiplatform.v1.Measurement - (*Trial_Parameter)(nil), // 12: google.cloud.aiplatform.v1.Trial.Parameter - nil, // 13: google.cloud.aiplatform.v1.Trial.WebAccessUrisEntry - (*StudySpec_MetricSpec)(nil), // 14: google.cloud.aiplatform.v1.StudySpec.MetricSpec - (*StudySpec_ParameterSpec)(nil), // 15: google.cloud.aiplatform.v1.StudySpec.ParameterSpec - (*StudySpec_DecayCurveAutomatedStoppingSpec)(nil), // 16: google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec - (*StudySpec_MedianAutomatedStoppingSpec)(nil), // 17: google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec - (*StudySpec_ConvexAutomatedStoppingSpec)(nil), // 18: google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec - (*StudySpec_MetricSpec_SafetyMetricConfig)(nil), // 19: google.cloud.aiplatform.v1.StudySpec.MetricSpec.SafetyMetricConfig - (*StudySpec_ParameterSpec_DoubleValueSpec)(nil), // 20: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec - (*StudySpec_ParameterSpec_IntegerValueSpec)(nil), // 21: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec - (*StudySpec_ParameterSpec_CategoricalValueSpec)(nil), // 22: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec - (*StudySpec_ParameterSpec_DiscreteValueSpec)(nil), // 23: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec - (*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 24: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec - (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil), // 25: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition - (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil), // 26: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition - (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 27: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition - (*Measurement_Metric)(nil), // 28: google.cloud.aiplatform.v1.Measurement.Metric - (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 30: google.protobuf.Duration - (*structpb.Value)(nil), // 31: google.protobuf.Value + (*StudyTimeConstraint)(nil), // 10: google.cloud.aiplatform.v1.StudyTimeConstraint + (*StudySpec)(nil), // 11: google.cloud.aiplatform.v1.StudySpec + (*Measurement)(nil), // 12: google.cloud.aiplatform.v1.Measurement + (*Trial_Parameter)(nil), // 13: google.cloud.aiplatform.v1.Trial.Parameter + nil, // 14: google.cloud.aiplatform.v1.Trial.WebAccessUrisEntry + (*StudySpec_MetricSpec)(nil), // 15: google.cloud.aiplatform.v1.StudySpec.MetricSpec + (*StudySpec_ParameterSpec)(nil), // 16: google.cloud.aiplatform.v1.StudySpec.ParameterSpec + (*StudySpec_DecayCurveAutomatedStoppingSpec)(nil), // 17: google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec + (*StudySpec_MedianAutomatedStoppingSpec)(nil), // 18: google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec + (*StudySpec_ConvexAutomatedStoppingSpec)(nil), // 19: google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec + (*StudySpec_StudyStoppingConfig)(nil), // 20: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig + (*StudySpec_MetricSpec_SafetyMetricConfig)(nil), // 21: google.cloud.aiplatform.v1.StudySpec.MetricSpec.SafetyMetricConfig + (*StudySpec_ParameterSpec_DoubleValueSpec)(nil), // 22: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec + (*StudySpec_ParameterSpec_IntegerValueSpec)(nil), // 23: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec + (*StudySpec_ParameterSpec_CategoricalValueSpec)(nil), // 24: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec + (*StudySpec_ParameterSpec_DiscreteValueSpec)(nil), // 25: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec + (*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 26: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec + (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil), // 27: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition + (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil), // 28: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition + (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 29: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition + (*Measurement_Metric)(nil), // 30: google.cloud.aiplatform.v1.Measurement.Metric + (*timestamppb.Timestamp)(nil), // 31: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 32: google.protobuf.Duration + (*structpb.Value)(nil), // 33: google.protobuf.Value + (*wrapperspb.BoolValue)(nil), // 34: google.protobuf.BoolValue + (*wrapperspb.Int32Value)(nil), // 35: google.protobuf.Int32Value } var file_google_cloud_aiplatform_v1_study_proto_depIdxs = []int32{ - 10, // 0: google.cloud.aiplatform.v1.Study.study_spec:type_name -> google.cloud.aiplatform.v1.StudySpec + 11, // 0: google.cloud.aiplatform.v1.Study.study_spec:type_name -> google.cloud.aiplatform.v1.StudySpec 0, // 1: google.cloud.aiplatform.v1.Study.state:type_name -> google.cloud.aiplatform.v1.Study.State - 29, // 2: google.cloud.aiplatform.v1.Study.create_time:type_name -> google.protobuf.Timestamp + 31, // 2: google.cloud.aiplatform.v1.Study.create_time:type_name -> google.protobuf.Timestamp 1, // 3: google.cloud.aiplatform.v1.Trial.state:type_name -> google.cloud.aiplatform.v1.Trial.State - 12, // 4: google.cloud.aiplatform.v1.Trial.parameters:type_name -> google.cloud.aiplatform.v1.Trial.Parameter - 11, // 5: google.cloud.aiplatform.v1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1.Measurement - 11, // 6: google.cloud.aiplatform.v1.Trial.measurements:type_name -> google.cloud.aiplatform.v1.Measurement - 29, // 7: google.cloud.aiplatform.v1.Trial.start_time:type_name -> google.protobuf.Timestamp - 29, // 8: google.cloud.aiplatform.v1.Trial.end_time:type_name -> google.protobuf.Timestamp - 13, // 9: google.cloud.aiplatform.v1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1.Trial.WebAccessUrisEntry - 12, // 10: google.cloud.aiplatform.v1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1.Trial.Parameter - 16, // 11: google.cloud.aiplatform.v1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec - 17, // 12: google.cloud.aiplatform.v1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec - 18, // 13: google.cloud.aiplatform.v1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec - 14, // 14: google.cloud.aiplatform.v1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec - 15, // 15: google.cloud.aiplatform.v1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec - 2, // 16: google.cloud.aiplatform.v1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1.StudySpec.Algorithm - 3, // 17: google.cloud.aiplatform.v1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1.StudySpec.ObservationNoise - 4, // 18: google.cloud.aiplatform.v1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1.StudySpec.MeasurementSelectionType - 30, // 19: google.cloud.aiplatform.v1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration - 28, // 20: google.cloud.aiplatform.v1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1.Measurement.Metric - 31, // 21: google.cloud.aiplatform.v1.Trial.Parameter.value:type_name -> google.protobuf.Value - 5, // 22: google.cloud.aiplatform.v1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec.GoalType - 19, // 23: google.cloud.aiplatform.v1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec.SafetyMetricConfig - 20, // 24: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec - 21, // 25: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec - 22, // 26: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec - 23, // 27: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec - 6, // 28: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ScaleType - 24, // 29: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec - 25, // 30: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition - 26, // 31: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition - 27, // 32: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition - 15, // 33: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec - 34, // [34:34] is the sub-list for method output_type - 34, // [34:34] is the sub-list for method input_type - 34, // [34:34] is the sub-list for extension type_name - 34, // [34:34] is the sub-list for extension extendee - 0, // [0:34] is the sub-list for field type_name + 13, // 4: google.cloud.aiplatform.v1.Trial.parameters:type_name -> google.cloud.aiplatform.v1.Trial.Parameter + 12, // 5: google.cloud.aiplatform.v1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1.Measurement + 12, // 6: google.cloud.aiplatform.v1.Trial.measurements:type_name -> google.cloud.aiplatform.v1.Measurement + 31, // 7: google.cloud.aiplatform.v1.Trial.start_time:type_name -> google.protobuf.Timestamp + 31, // 8: google.cloud.aiplatform.v1.Trial.end_time:type_name -> google.protobuf.Timestamp + 14, // 9: google.cloud.aiplatform.v1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1.Trial.WebAccessUrisEntry + 13, // 10: google.cloud.aiplatform.v1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1.Trial.Parameter + 32, // 11: google.cloud.aiplatform.v1.StudyTimeConstraint.max_duration:type_name -> google.protobuf.Duration + 31, // 12: google.cloud.aiplatform.v1.StudyTimeConstraint.end_time:type_name -> google.protobuf.Timestamp + 17, // 13: google.cloud.aiplatform.v1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.DecayCurveAutomatedStoppingSpec + 18, // 14: google.cloud.aiplatform.v1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.MedianAutomatedStoppingSpec + 19, // 15: google.cloud.aiplatform.v1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ConvexAutomatedStoppingSpec + 15, // 16: google.cloud.aiplatform.v1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec + 16, // 17: google.cloud.aiplatform.v1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec + 2, // 18: google.cloud.aiplatform.v1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1.StudySpec.Algorithm + 3, // 19: google.cloud.aiplatform.v1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1.StudySpec.ObservationNoise + 4, // 20: google.cloud.aiplatform.v1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1.StudySpec.MeasurementSelectionType + 20, // 21: google.cloud.aiplatform.v1.StudySpec.study_stopping_config:type_name -> google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig + 32, // 22: google.cloud.aiplatform.v1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration + 30, // 23: google.cloud.aiplatform.v1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1.Measurement.Metric + 33, // 24: google.cloud.aiplatform.v1.Trial.Parameter.value:type_name -> google.protobuf.Value + 5, // 25: google.cloud.aiplatform.v1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec.GoalType + 21, // 26: google.cloud.aiplatform.v1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1.StudySpec.MetricSpec.SafetyMetricConfig + 22, // 27: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DoubleValueSpec + 23, // 28: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.IntegerValueSpec + 24, // 29: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.CategoricalValueSpec + 25, // 30: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.DiscreteValueSpec + 6, // 31: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ScaleType + 26, // 32: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec + 34, // 33: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.should_stop_asap:type_name -> google.protobuf.BoolValue + 10, // 34: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.minimum_runtime_constraint:type_name -> google.cloud.aiplatform.v1.StudyTimeConstraint + 10, // 35: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.maximum_runtime_constraint:type_name -> google.cloud.aiplatform.v1.StudyTimeConstraint + 35, // 36: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.min_num_trials:type_name -> google.protobuf.Int32Value + 35, // 37: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.max_num_trials:type_name -> google.protobuf.Int32Value + 35, // 38: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.max_num_trials_no_progress:type_name -> google.protobuf.Int32Value + 32, // 39: google.cloud.aiplatform.v1.StudySpec.StudyStoppingConfig.max_duration_no_progress:type_name -> google.protobuf.Duration + 27, // 40: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition + 28, // 41: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition + 29, // 42: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition + 16, // 43: google.cloud.aiplatform.v1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1.StudySpec.ParameterSpec + 44, // [44:44] is the sub-list for method output_type + 44, // [44:44] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1_study_proto_init() } @@ -2778,7 +3081,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { } } file_google_cloud_aiplatform_v1_study_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudySpec); i { + switch v := v.(*StudyTimeConstraint); i { case 0: return &v.state case 1: @@ -2790,7 +3093,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { } } file_google_cloud_aiplatform_v1_study_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Measurement); i { + switch v := v.(*StudySpec); i { case 0: return &v.state case 1: @@ -2802,6 +3105,18 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { } } file_google_cloud_aiplatform_v1_study_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Measurement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_study_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Trial_Parameter); i { case 0: return &v.state @@ -2813,7 +3128,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MetricSpec); i { case 0: return &v.state @@ -2825,7 +3140,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec); i { case 0: return &v.state @@ -2837,7 +3152,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_DecayCurveAutomatedStoppingSpec); i { case 0: return &v.state @@ -2849,7 +3164,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MedianAutomatedStoppingSpec); i { case 0: return &v.state @@ -2861,7 +3176,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ConvexAutomatedStoppingSpec); i { case 0: return &v.state @@ -2873,7 +3188,19 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudySpec_StudyStoppingConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MetricSpec_SafetyMetricConfig); i { case 0: return &v.state @@ -2885,7 +3212,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_DoubleValueSpec); i { case 0: return &v.state @@ -2897,7 +3224,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_IntegerValueSpec); i { case 0: return &v.state @@ -2909,7 +3236,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_CategoricalValueSpec); i { case 0: return &v.state @@ -2921,7 +3248,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_DiscreteValueSpec); i { case 0: return &v.state @@ -2933,7 +3260,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec); i { case 0: return &v.state @@ -2945,7 +3272,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition); i { case 0: return &v.state @@ -2957,7 +3284,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition); i { case 0: return &v.state @@ -2969,7 +3296,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition); i { case 0: return &v.state @@ -2981,7 +3308,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1_study_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Measurement_Metric); i { case 0: return &v.state @@ -2995,24 +3322,28 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { } } file_google_cloud_aiplatform_v1_study_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*StudyTimeConstraint_MaxDuration)(nil), + (*StudyTimeConstraint_EndTime)(nil), + } + file_google_cloud_aiplatform_v1_study_proto_msgTypes[4].OneofWrappers = []interface{}{ (*StudySpec_DecayCurveStoppingSpec)(nil), (*StudySpec_MedianAutomatedStoppingSpec_)(nil), (*StudySpec_ConvexAutomatedStoppingSpec_)(nil), } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1_study_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1_study_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1_study_proto_msgTypes[9].OneofWrappers = []interface{}{ (*StudySpec_ParameterSpec_DoubleValueSpec_)(nil), (*StudySpec_ParameterSpec_IntegerValueSpec_)(nil), (*StudySpec_ParameterSpec_CategoricalValueSpec_)(nil), (*StudySpec_ParameterSpec_DiscreteValueSpec_)(nil), } - file_google_cloud_aiplatform_v1_study_proto_msgTypes[11].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1_study_proto_msgTypes[12].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1_study_proto_msgTypes[13].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1_study_proto_msgTypes[14].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1_study_proto_msgTypes[15].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1_study_proto_msgTypes[16].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1_study_proto_msgTypes[17].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1_study_proto_msgTypes[17].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1_study_proto_msgTypes[18].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1_study_proto_msgTypes[19].OneofWrappers = []interface{}{ (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues)(nil), (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues)(nil), (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues)(nil), @@ -3023,7 +3354,7 @@ func file_google_cloud_aiplatform_v1_study_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1_study_proto_rawDesc, NumEnums: 7, - NumMessages: 22, + NumMessages: 24, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1/auxiliary.go b/aiplatform/apiv1/auxiliary.go index a169df9cdf76..7915ac40ce13 100755 --- a/aiplatform/apiv1/auxiliary.go +++ b/aiplatform/apiv1/auxiliary.go @@ -577,6 +577,128 @@ func (op *CreateEntityTypeOperation) Name() string { return op.lro.Name() } +// CreateFeatureGroupOperation manages a long-running operation from CreateFeatureGroup. +type CreateFeatureGroupOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateFeatureGroupOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + var resp aiplatformpb.FeatureGroup + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateFeatureGroupOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + var resp aiplatformpb.FeatureGroup + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateFeatureGroupOperation) Metadata() (*aiplatformpb.CreateFeatureGroupOperationMetadata, error) { + var meta aiplatformpb.CreateFeatureGroupOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateFeatureGroupOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateFeatureGroupOperation) Name() string { + return op.lro.Name() +} + +// CreateFeatureOnlineStoreOperation manages a long-running operation from CreateFeatureOnlineStore. +type CreateFeatureOnlineStoreOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateFeatureOnlineStoreOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + var resp aiplatformpb.FeatureOnlineStore + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateFeatureOnlineStoreOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + var resp aiplatformpb.FeatureOnlineStore + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateFeatureOnlineStoreOperation) Metadata() (*aiplatformpb.CreateFeatureOnlineStoreOperationMetadata, error) { + var meta aiplatformpb.CreateFeatureOnlineStoreOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateFeatureOnlineStoreOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateFeatureOnlineStoreOperation) Name() string { + return op.lro.Name() +} + // CreateFeatureOperation manages a long-running operation from CreateFeature. type CreateFeatureOperation struct { lro *longrunning.Operation @@ -638,6 +760,67 @@ func (op *CreateFeatureOperation) Name() string { return op.lro.Name() } +// CreateFeatureViewOperation manages a long-running operation from CreateFeatureView. +type CreateFeatureViewOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *CreateFeatureViewOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + var resp aiplatformpb.FeatureView + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *CreateFeatureViewOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + var resp aiplatformpb.FeatureView + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *CreateFeatureViewOperation) Metadata() (*aiplatformpb.CreateFeatureViewOperationMetadata, error) { + var meta aiplatformpb.CreateFeatureViewOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *CreateFeatureViewOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *CreateFeatureViewOperation) Name() string { + return op.lro.Name() +} + // CreateFeaturestoreOperation manages a long-running operation from CreateFeaturestore. type CreateFeaturestoreOperation struct { lro *longrunning.Operation @@ -1504,6 +1687,106 @@ func (op *DeleteExecutionOperation) Name() string { return op.lro.Name() } +// DeleteFeatureGroupOperation manages a long-running operation from DeleteFeatureGroup. +type DeleteFeatureGroupOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteFeatureGroupOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteFeatureGroupOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteFeatureGroupOperation) Metadata() (*aiplatformpb.DeleteOperationMetadata, error) { + var meta aiplatformpb.DeleteOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteFeatureGroupOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteFeatureGroupOperation) Name() string { + return op.lro.Name() +} + +// DeleteFeatureOnlineStoreOperation manages a long-running operation from DeleteFeatureOnlineStore. +type DeleteFeatureOnlineStoreOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteFeatureOnlineStoreOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteFeatureOnlineStoreOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteFeatureOnlineStoreOperation) Metadata() (*aiplatformpb.DeleteOperationMetadata, error) { + var meta aiplatformpb.DeleteOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteFeatureOnlineStoreOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteFeatureOnlineStoreOperation) Name() string { + return op.lro.Name() +} + // DeleteFeatureOperation manages a long-running operation from DeleteFeature. type DeleteFeatureOperation struct { lro *longrunning.Operation @@ -1594,8 +1877,58 @@ func (op *DeleteFeatureValuesOperation) Poll(ctx context.Context, opts ...gax.Ca // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *DeleteFeatureValuesOperation) Metadata() (*aiplatformpb.DeleteFeatureValuesOperationMetadata, error) { - var meta aiplatformpb.DeleteFeatureValuesOperationMetadata +func (op *DeleteFeatureValuesOperation) Metadata() (*aiplatformpb.DeleteFeatureValuesOperationMetadata, error) { + var meta aiplatformpb.DeleteFeatureValuesOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *DeleteFeatureValuesOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *DeleteFeatureValuesOperation) Name() string { + return op.lro.Name() +} + +// DeleteFeatureViewOperation manages a long-running operation from DeleteFeatureView. +type DeleteFeatureViewOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *DeleteFeatureViewOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.WaitWithInterval(ctx, nil, time.Minute, opts...) +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *DeleteFeatureViewOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + return op.lro.Poll(ctx, nil, opts...) +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *DeleteFeatureViewOperation) Metadata() (*aiplatformpb.DeleteOperationMetadata, error) { + var meta aiplatformpb.DeleteOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -1605,13 +1938,13 @@ func (op *DeleteFeatureValuesOperation) Metadata() (*aiplatformpb.DeleteFeatureV } // Done reports whether the long-running operation has completed. -func (op *DeleteFeatureValuesOperation) Done() bool { +func (op *DeleteFeatureViewOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *DeleteFeatureValuesOperation) Name() string { +func (op *DeleteFeatureViewOperation) Name() string { return op.lro.Name() } @@ -3121,20 +3454,264 @@ func (op *PurgeArtifactsOperation) Done() bool { // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *PurgeArtifactsOperation) Name() string { +func (op *PurgeArtifactsOperation) Name() string { + return op.lro.Name() +} + +// PurgeContextsOperation manages a long-running operation from PurgeContexts. +type PurgeContextsOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *PurgeContextsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeContextsResponse, error) { + var resp aiplatformpb.PurgeContextsResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *PurgeContextsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeContextsResponse, error) { + var resp aiplatformpb.PurgeContextsResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *PurgeContextsOperation) Metadata() (*aiplatformpb.PurgeContextsMetadata, error) { + var meta aiplatformpb.PurgeContextsMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *PurgeContextsOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *PurgeContextsOperation) Name() string { + return op.lro.Name() +} + +// PurgeExecutionsOperation manages a long-running operation from PurgeExecutions. +type PurgeExecutionsOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *PurgeExecutionsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeExecutionsResponse, error) { + var resp aiplatformpb.PurgeExecutionsResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *PurgeExecutionsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeExecutionsResponse, error) { + var resp aiplatformpb.PurgeExecutionsResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *PurgeExecutionsOperation) Metadata() (*aiplatformpb.PurgeExecutionsMetadata, error) { + var meta aiplatformpb.PurgeExecutionsMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *PurgeExecutionsOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *PurgeExecutionsOperation) Name() string { + return op.lro.Name() +} + +// RestoreDatasetVersionOperation manages a long-running operation from RestoreDatasetVersion. +type RestoreDatasetVersionOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RestoreDatasetVersionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.DatasetVersion, error) { + var resp aiplatformpb.DatasetVersion + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RestoreDatasetVersionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.DatasetVersion, error) { + var resp aiplatformpb.DatasetVersion + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RestoreDatasetVersionOperation) Metadata() (*aiplatformpb.RestoreDatasetVersionOperationMetadata, error) { + var meta aiplatformpb.RestoreDatasetVersionOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RestoreDatasetVersionOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RestoreDatasetVersionOperation) Name() string { + return op.lro.Name() +} + +// SuggestTrialsOperation manages a long-running operation from SuggestTrials. +type SuggestTrialsOperation struct { + lro *longrunning.Operation +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *SuggestTrialsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.SuggestTrialsResponse, error) { + var resp aiplatformpb.SuggestTrialsResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *SuggestTrialsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.SuggestTrialsResponse, error) { + var resp aiplatformpb.SuggestTrialsResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *SuggestTrialsOperation) Metadata() (*aiplatformpb.SuggestTrialsMetadata, error) { + var meta aiplatformpb.SuggestTrialsMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *SuggestTrialsOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *SuggestTrialsOperation) Name() string { return op.lro.Name() } -// PurgeContextsOperation manages a long-running operation from PurgeContexts. -type PurgeContextsOperation struct { +// UndeployIndexOperation manages a long-running operation from UndeployIndex. +type UndeployIndexOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *PurgeContextsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeContextsResponse, error) { - var resp aiplatformpb.PurgeContextsResponse +func (op *UndeployIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployIndexResponse, error) { + var resp aiplatformpb.UndeployIndexResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3150,8 +3727,8 @@ func (op *PurgeContextsOperation) Wait(ctx context.Context, opts ...gax.CallOpti // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *PurgeContextsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeContextsResponse, error) { - var resp aiplatformpb.PurgeContextsResponse +func (op *UndeployIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployIndexResponse, error) { + var resp aiplatformpb.UndeployIndexResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3165,8 +3742,8 @@ func (op *PurgeContextsOperation) Poll(ctx context.Context, opts ...gax.CallOpti // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *PurgeContextsOperation) Metadata() (*aiplatformpb.PurgeContextsMetadata, error) { - var meta aiplatformpb.PurgeContextsMetadata +func (op *UndeployIndexOperation) Metadata() (*aiplatformpb.UndeployIndexOperationMetadata, error) { + var meta aiplatformpb.UndeployIndexOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3176,26 +3753,26 @@ func (op *PurgeContextsOperation) Metadata() (*aiplatformpb.PurgeContextsMetadat } // Done reports whether the long-running operation has completed. -func (op *PurgeContextsOperation) Done() bool { +func (op *UndeployIndexOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *PurgeContextsOperation) Name() string { +func (op *UndeployIndexOperation) Name() string { return op.lro.Name() } -// PurgeExecutionsOperation manages a long-running operation from PurgeExecutions. -type PurgeExecutionsOperation struct { +// UndeployModelOperation manages a long-running operation from UndeployModel. +type UndeployModelOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *PurgeExecutionsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeExecutionsResponse, error) { - var resp aiplatformpb.PurgeExecutionsResponse +func (op *UndeployModelOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployModelResponse, error) { + var resp aiplatformpb.UndeployModelResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3211,8 +3788,8 @@ func (op *PurgeExecutionsOperation) Wait(ctx context.Context, opts ...gax.CallOp // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *PurgeExecutionsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.PurgeExecutionsResponse, error) { - var resp aiplatformpb.PurgeExecutionsResponse +func (op *UndeployModelOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployModelResponse, error) { + var resp aiplatformpb.UndeployModelResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3226,8 +3803,8 @@ func (op *PurgeExecutionsOperation) Poll(ctx context.Context, opts ...gax.CallOp // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *PurgeExecutionsOperation) Metadata() (*aiplatformpb.PurgeExecutionsMetadata, error) { - var meta aiplatformpb.PurgeExecutionsMetadata +func (op *UndeployModelOperation) Metadata() (*aiplatformpb.UndeployModelOperationMetadata, error) { + var meta aiplatformpb.UndeployModelOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3237,26 +3814,26 @@ func (op *PurgeExecutionsOperation) Metadata() (*aiplatformpb.PurgeExecutionsMet } // Done reports whether the long-running operation has completed. -func (op *PurgeExecutionsOperation) Done() bool { +func (op *UndeployModelOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *PurgeExecutionsOperation) Name() string { +func (op *UndeployModelOperation) Name() string { return op.lro.Name() } -// RestoreDatasetVersionOperation manages a long-running operation from RestoreDatasetVersion. -type RestoreDatasetVersionOperation struct { +// UpdateExplanationDatasetOperation manages a long-running operation from UpdateExplanationDataset. +type UpdateExplanationDatasetOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *RestoreDatasetVersionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.DatasetVersion, error) { - var resp aiplatformpb.DatasetVersion +func (op *UpdateExplanationDatasetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UpdateExplanationDatasetResponse, error) { + var resp aiplatformpb.UpdateExplanationDatasetResponse if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3272,8 +3849,8 @@ func (op *RestoreDatasetVersionOperation) Wait(ctx context.Context, opts ...gax. // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *RestoreDatasetVersionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.DatasetVersion, error) { - var resp aiplatformpb.DatasetVersion +func (op *UpdateExplanationDatasetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UpdateExplanationDatasetResponse, error) { + var resp aiplatformpb.UpdateExplanationDatasetResponse if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3287,8 +3864,8 @@ func (op *RestoreDatasetVersionOperation) Poll(ctx context.Context, opts ...gax. // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *RestoreDatasetVersionOperation) Metadata() (*aiplatformpb.RestoreDatasetVersionOperationMetadata, error) { - var meta aiplatformpb.RestoreDatasetVersionOperationMetadata +func (op *UpdateExplanationDatasetOperation) Metadata() (*aiplatformpb.UpdateExplanationDatasetOperationMetadata, error) { + var meta aiplatformpb.UpdateExplanationDatasetOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3298,26 +3875,26 @@ func (op *RestoreDatasetVersionOperation) Metadata() (*aiplatformpb.RestoreDatas } // Done reports whether the long-running operation has completed. -func (op *RestoreDatasetVersionOperation) Done() bool { +func (op *UpdateExplanationDatasetOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *RestoreDatasetVersionOperation) Name() string { +func (op *UpdateExplanationDatasetOperation) Name() string { return op.lro.Name() } -// SuggestTrialsOperation manages a long-running operation from SuggestTrials. -type SuggestTrialsOperation struct { +// UpdateFeatureGroupOperation manages a long-running operation from UpdateFeatureGroup. +type UpdateFeatureGroupOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *SuggestTrialsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.SuggestTrialsResponse, error) { - var resp aiplatformpb.SuggestTrialsResponse +func (op *UpdateFeatureGroupOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + var resp aiplatformpb.FeatureGroup if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3333,8 +3910,8 @@ func (op *SuggestTrialsOperation) Wait(ctx context.Context, opts ...gax.CallOpti // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *SuggestTrialsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.SuggestTrialsResponse, error) { - var resp aiplatformpb.SuggestTrialsResponse +func (op *UpdateFeatureGroupOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + var resp aiplatformpb.FeatureGroup if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3348,8 +3925,8 @@ func (op *SuggestTrialsOperation) Poll(ctx context.Context, opts ...gax.CallOpti // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *SuggestTrialsOperation) Metadata() (*aiplatformpb.SuggestTrialsMetadata, error) { - var meta aiplatformpb.SuggestTrialsMetadata +func (op *UpdateFeatureGroupOperation) Metadata() (*aiplatformpb.UpdateFeatureGroupOperationMetadata, error) { + var meta aiplatformpb.UpdateFeatureGroupOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3359,26 +3936,26 @@ func (op *SuggestTrialsOperation) Metadata() (*aiplatformpb.SuggestTrialsMetadat } // Done reports whether the long-running operation has completed. -func (op *SuggestTrialsOperation) Done() bool { +func (op *UpdateFeatureGroupOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *SuggestTrialsOperation) Name() string { +func (op *UpdateFeatureGroupOperation) Name() string { return op.lro.Name() } -// UndeployIndexOperation manages a long-running operation from UndeployIndex. -type UndeployIndexOperation struct { +// UpdateFeatureOnlineStoreOperation manages a long-running operation from UpdateFeatureOnlineStore. +type UpdateFeatureOnlineStoreOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *UndeployIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployIndexResponse, error) { - var resp aiplatformpb.UndeployIndexResponse +func (op *UpdateFeatureOnlineStoreOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + var resp aiplatformpb.FeatureOnlineStore if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3394,8 +3971,8 @@ func (op *UndeployIndexOperation) Wait(ctx context.Context, opts ...gax.CallOpti // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *UndeployIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployIndexResponse, error) { - var resp aiplatformpb.UndeployIndexResponse +func (op *UpdateFeatureOnlineStoreOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + var resp aiplatformpb.FeatureOnlineStore if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3409,8 +3986,8 @@ func (op *UndeployIndexOperation) Poll(ctx context.Context, opts ...gax.CallOpti // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *UndeployIndexOperation) Metadata() (*aiplatformpb.UndeployIndexOperationMetadata, error) { - var meta aiplatformpb.UndeployIndexOperationMetadata +func (op *UpdateFeatureOnlineStoreOperation) Metadata() (*aiplatformpb.UpdateFeatureOnlineStoreOperationMetadata, error) { + var meta aiplatformpb.UpdateFeatureOnlineStoreOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3420,26 +3997,26 @@ func (op *UndeployIndexOperation) Metadata() (*aiplatformpb.UndeployIndexOperati } // Done reports whether the long-running operation has completed. -func (op *UndeployIndexOperation) Done() bool { +func (op *UpdateFeatureOnlineStoreOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *UndeployIndexOperation) Name() string { +func (op *UpdateFeatureOnlineStoreOperation) Name() string { return op.lro.Name() } -// UndeployModelOperation manages a long-running operation from UndeployModel. -type UndeployModelOperation struct { +// UpdateFeatureOperation manages a long-running operation from UpdateFeature. +type UpdateFeatureOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *UndeployModelOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployModelResponse, error) { - var resp aiplatformpb.UndeployModelResponse +func (op *UpdateFeatureOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.Feature, error) { + var resp aiplatformpb.Feature if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3455,8 +4032,8 @@ func (op *UndeployModelOperation) Wait(ctx context.Context, opts ...gax.CallOpti // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *UndeployModelOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UndeployModelResponse, error) { - var resp aiplatformpb.UndeployModelResponse +func (op *UpdateFeatureOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.Feature, error) { + var resp aiplatformpb.Feature if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3470,8 +4047,8 @@ func (op *UndeployModelOperation) Poll(ctx context.Context, opts ...gax.CallOpti // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *UndeployModelOperation) Metadata() (*aiplatformpb.UndeployModelOperationMetadata, error) { - var meta aiplatformpb.UndeployModelOperationMetadata +func (op *UpdateFeatureOperation) Metadata() (*aiplatformpb.UpdateFeatureOperationMetadata, error) { + var meta aiplatformpb.UpdateFeatureOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3481,26 +4058,26 @@ func (op *UndeployModelOperation) Metadata() (*aiplatformpb.UndeployModelOperati } // Done reports whether the long-running operation has completed. -func (op *UndeployModelOperation) Done() bool { +func (op *UpdateFeatureOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *UndeployModelOperation) Name() string { +func (op *UpdateFeatureOperation) Name() string { return op.lro.Name() } -// UpdateExplanationDatasetOperation manages a long-running operation from UpdateExplanationDataset. -type UpdateExplanationDatasetOperation struct { +// UpdateFeatureViewOperation manages a long-running operation from UpdateFeatureView. +type UpdateFeatureViewOperation struct { lro *longrunning.Operation } // Wait blocks until the long-running operation is completed, returning the response and any errors encountered. // // See documentation of Poll for error-handling information. -func (op *UpdateExplanationDatasetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UpdateExplanationDatasetResponse, error) { - var resp aiplatformpb.UpdateExplanationDatasetResponse +func (op *UpdateFeatureViewOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + var resp aiplatformpb.FeatureView if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { return nil, err } @@ -3516,8 +4093,8 @@ func (op *UpdateExplanationDatasetOperation) Wait(ctx context.Context, opts ...g // If Poll succeeds and the operation has completed successfully, // op.Done will return true, and the response of the operation is returned. // If Poll succeeds and the operation has not completed, the returned response and error are both nil. -func (op *UpdateExplanationDatasetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.UpdateExplanationDatasetResponse, error) { - var resp aiplatformpb.UpdateExplanationDatasetResponse +func (op *UpdateFeatureViewOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + var resp aiplatformpb.FeatureView if err := op.lro.Poll(ctx, &resp, opts...); err != nil { return nil, err } @@ -3531,8 +4108,8 @@ func (op *UpdateExplanationDatasetOperation) Poll(ctx context.Context, opts ...g // Metadata itself does not contact the server, but Poll does. // To get the latest metadata, call this method after a successful call to Poll. // If the metadata is not available, the returned metadata and error are both nil. -func (op *UpdateExplanationDatasetOperation) Metadata() (*aiplatformpb.UpdateExplanationDatasetOperationMetadata, error) { - var meta aiplatformpb.UpdateExplanationDatasetOperationMetadata +func (op *UpdateFeatureViewOperation) Metadata() (*aiplatformpb.UpdateFeatureViewOperationMetadata, error) { + var meta aiplatformpb.UpdateFeatureViewOperationMetadata if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { return nil, nil } else if err != nil { @@ -3542,13 +4119,13 @@ func (op *UpdateExplanationDatasetOperation) Metadata() (*aiplatformpb.UpdateExp } // Done reports whether the long-running operation has completed. -func (op *UpdateExplanationDatasetOperation) Done() bool { +func (op *UpdateFeatureViewOperation) Done() bool { return op.lro.Done() } // Name returns the name of the long-running operation. // The name is assigned by the server and is unique within the service from which the operation is created. -func (op *UpdateExplanationDatasetOperation) Name() string { +func (op *UpdateFeatureViewOperation) Name() string { return op.lro.Name() } @@ -4529,6 +5106,53 @@ func (it *ExecutionIterator) takeBuf() interface{} { return b } +// FeatureGroupIterator manages a stream of *aiplatformpb.FeatureGroup. +type FeatureGroupIterator struct { + items []*aiplatformpb.FeatureGroup + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*aiplatformpb.FeatureGroup, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *FeatureGroupIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *FeatureGroupIterator) Next() (*aiplatformpb.FeatureGroup, error) { + var item *aiplatformpb.FeatureGroup + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *FeatureGroupIterator) bufLen() int { + return len(it.items) +} + +func (it *FeatureGroupIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + // FeatureIterator manages a stream of *aiplatformpb.Feature. type FeatureIterator struct { items []*aiplatformpb.Feature @@ -4576,6 +5200,147 @@ func (it *FeatureIterator) takeBuf() interface{} { return b } +// FeatureOnlineStoreIterator manages a stream of *aiplatformpb.FeatureOnlineStore. +type FeatureOnlineStoreIterator struct { + items []*aiplatformpb.FeatureOnlineStore + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*aiplatformpb.FeatureOnlineStore, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *FeatureOnlineStoreIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *FeatureOnlineStoreIterator) Next() (*aiplatformpb.FeatureOnlineStore, error) { + var item *aiplatformpb.FeatureOnlineStore + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *FeatureOnlineStoreIterator) bufLen() int { + return len(it.items) +} + +func (it *FeatureOnlineStoreIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// FeatureViewIterator manages a stream of *aiplatformpb.FeatureView. +type FeatureViewIterator struct { + items []*aiplatformpb.FeatureView + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*aiplatformpb.FeatureView, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *FeatureViewIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *FeatureViewIterator) Next() (*aiplatformpb.FeatureView, error) { + var item *aiplatformpb.FeatureView + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *FeatureViewIterator) bufLen() int { + return len(it.items) +} + +func (it *FeatureViewIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// FeatureViewSyncIterator manages a stream of *aiplatformpb.FeatureViewSync. +type FeatureViewSyncIterator struct { + items []*aiplatformpb.FeatureViewSync + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*aiplatformpb.FeatureViewSync, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *FeatureViewSyncIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *FeatureViewSyncIterator) Next() (*aiplatformpb.FeatureViewSync, error) { + var item *aiplatformpb.FeatureViewSync + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *FeatureViewSyncIterator) bufLen() int { + return len(it.items) +} + +func (it *FeatureViewSyncIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + // FeaturestoreIterator manages a stream of *aiplatformpb.Featurestore. type FeaturestoreIterator struct { items []*aiplatformpb.Featurestore diff --git a/aiplatform/apiv1/feature_online_store_admin_client.go b/aiplatform/apiv1/feature_online_store_admin_client.go new file mode 100755 index 000000000000..5cf41dafdd3a --- /dev/null +++ b/aiplatform/apiv1/feature_online_store_admin_client.go @@ -0,0 +1,1051 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform + +import ( + "context" + "fmt" + "math" + "net/url" + + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" +) + +var newFeatureOnlineStoreAdminClientHook clientHook + +// FeatureOnlineStoreAdminCallOptions contains the retry settings for each method of FeatureOnlineStoreAdminClient. +type FeatureOnlineStoreAdminCallOptions struct { + CreateFeatureOnlineStore []gax.CallOption + GetFeatureOnlineStore []gax.CallOption + ListFeatureOnlineStores []gax.CallOption + UpdateFeatureOnlineStore []gax.CallOption + DeleteFeatureOnlineStore []gax.CallOption + CreateFeatureView []gax.CallOption + GetFeatureView []gax.CallOption + ListFeatureViews []gax.CallOption + UpdateFeatureView []gax.CallOption + DeleteFeatureView []gax.CallOption + SyncFeatureView []gax.CallOption + GetFeatureViewSync []gax.CallOption + ListFeatureViewSyncs []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption +} + +func defaultFeatureOnlineStoreAdminGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("aiplatform.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("aiplatform.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultFeatureOnlineStoreAdminCallOptions() *FeatureOnlineStoreAdminCallOptions { + return &FeatureOnlineStoreAdminCallOptions{ + CreateFeatureOnlineStore: []gax.CallOption{}, + GetFeatureOnlineStore: []gax.CallOption{}, + ListFeatureOnlineStores: []gax.CallOption{}, + UpdateFeatureOnlineStore: []gax.CallOption{}, + DeleteFeatureOnlineStore: []gax.CallOption{}, + CreateFeatureView: []gax.CallOption{}, + GetFeatureView: []gax.CallOption{}, + ListFeatureViews: []gax.CallOption{}, + UpdateFeatureView: []gax.CallOption{}, + DeleteFeatureView: []gax.CallOption{}, + SyncFeatureView: []gax.CallOption{}, + GetFeatureViewSync: []gax.CallOption{}, + ListFeatureViewSyncs: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +// internalFeatureOnlineStoreAdminClient is an interface that defines the methods available from Vertex AI API. +type internalFeatureOnlineStoreAdminClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateFeatureOnlineStore(context.Context, *aiplatformpb.CreateFeatureOnlineStoreRequest, ...gax.CallOption) (*CreateFeatureOnlineStoreOperation, error) + CreateFeatureOnlineStoreOperation(name string) *CreateFeatureOnlineStoreOperation + GetFeatureOnlineStore(context.Context, *aiplatformpb.GetFeatureOnlineStoreRequest, ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) + ListFeatureOnlineStores(context.Context, *aiplatformpb.ListFeatureOnlineStoresRequest, ...gax.CallOption) *FeatureOnlineStoreIterator + UpdateFeatureOnlineStore(context.Context, *aiplatformpb.UpdateFeatureOnlineStoreRequest, ...gax.CallOption) (*UpdateFeatureOnlineStoreOperation, error) + UpdateFeatureOnlineStoreOperation(name string) *UpdateFeatureOnlineStoreOperation + DeleteFeatureOnlineStore(context.Context, *aiplatformpb.DeleteFeatureOnlineStoreRequest, ...gax.CallOption) (*DeleteFeatureOnlineStoreOperation, error) + DeleteFeatureOnlineStoreOperation(name string) *DeleteFeatureOnlineStoreOperation + CreateFeatureView(context.Context, *aiplatformpb.CreateFeatureViewRequest, ...gax.CallOption) (*CreateFeatureViewOperation, error) + CreateFeatureViewOperation(name string) *CreateFeatureViewOperation + GetFeatureView(context.Context, *aiplatformpb.GetFeatureViewRequest, ...gax.CallOption) (*aiplatformpb.FeatureView, error) + ListFeatureViews(context.Context, *aiplatformpb.ListFeatureViewsRequest, ...gax.CallOption) *FeatureViewIterator + UpdateFeatureView(context.Context, *aiplatformpb.UpdateFeatureViewRequest, ...gax.CallOption) (*UpdateFeatureViewOperation, error) + UpdateFeatureViewOperation(name string) *UpdateFeatureViewOperation + DeleteFeatureView(context.Context, *aiplatformpb.DeleteFeatureViewRequest, ...gax.CallOption) (*DeleteFeatureViewOperation, error) + DeleteFeatureViewOperation(name string) *DeleteFeatureViewOperation + SyncFeatureView(context.Context, *aiplatformpb.SyncFeatureViewRequest, ...gax.CallOption) (*aiplatformpb.SyncFeatureViewResponse, error) + GetFeatureViewSync(context.Context, *aiplatformpb.GetFeatureViewSyncRequest, ...gax.CallOption) (*aiplatformpb.FeatureViewSync, error) + ListFeatureViewSyncs(context.Context, *aiplatformpb.ListFeatureViewSyncsRequest, ...gax.CallOption) *FeatureViewSyncIterator + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator + WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// FeatureOnlineStoreAdminClient is a client for interacting with Vertex AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The service that handles CRUD and List for resources for +// FeatureOnlineStore. +type FeatureOnlineStoreAdminClient struct { + // The internal transport-dependent client. + internalClient internalFeatureOnlineStoreAdminClient + + // The call options for this service. + CallOptions *FeatureOnlineStoreAdminCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *FeatureOnlineStoreAdminClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *FeatureOnlineStoreAdminClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *FeatureOnlineStoreAdminClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateFeatureOnlineStore creates a new FeatureOnlineStore in a given project and location. +func (c *FeatureOnlineStoreAdminClient) CreateFeatureOnlineStore(ctx context.Context, req *aiplatformpb.CreateFeatureOnlineStoreRequest, opts ...gax.CallOption) (*CreateFeatureOnlineStoreOperation, error) { + return c.internalClient.CreateFeatureOnlineStore(ctx, req, opts...) +} + +// CreateFeatureOnlineStoreOperation returns a new CreateFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created CreateFeatureOnlineStoreOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) CreateFeatureOnlineStoreOperation(name string) *CreateFeatureOnlineStoreOperation { + return c.internalClient.CreateFeatureOnlineStoreOperation(name) +} + +// GetFeatureOnlineStore gets details of a single FeatureOnlineStore. +func (c *FeatureOnlineStoreAdminClient) GetFeatureOnlineStore(ctx context.Context, req *aiplatformpb.GetFeatureOnlineStoreRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + return c.internalClient.GetFeatureOnlineStore(ctx, req, opts...) +} + +// ListFeatureOnlineStores lists FeatureOnlineStores in a given project and location. +func (c *FeatureOnlineStoreAdminClient) ListFeatureOnlineStores(ctx context.Context, req *aiplatformpb.ListFeatureOnlineStoresRequest, opts ...gax.CallOption) *FeatureOnlineStoreIterator { + return c.internalClient.ListFeatureOnlineStores(ctx, req, opts...) +} + +// UpdateFeatureOnlineStore updates the parameters of a single FeatureOnlineStore. +func (c *FeatureOnlineStoreAdminClient) UpdateFeatureOnlineStore(ctx context.Context, req *aiplatformpb.UpdateFeatureOnlineStoreRequest, opts ...gax.CallOption) (*UpdateFeatureOnlineStoreOperation, error) { + return c.internalClient.UpdateFeatureOnlineStore(ctx, req, opts...) +} + +// UpdateFeatureOnlineStoreOperation returns a new UpdateFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created UpdateFeatureOnlineStoreOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) UpdateFeatureOnlineStoreOperation(name string) *UpdateFeatureOnlineStoreOperation { + return c.internalClient.UpdateFeatureOnlineStoreOperation(name) +} + +// DeleteFeatureOnlineStore deletes a single FeatureOnlineStore. The FeatureOnlineStore must not +// contain any FeatureViews. +func (c *FeatureOnlineStoreAdminClient) DeleteFeatureOnlineStore(ctx context.Context, req *aiplatformpb.DeleteFeatureOnlineStoreRequest, opts ...gax.CallOption) (*DeleteFeatureOnlineStoreOperation, error) { + return c.internalClient.DeleteFeatureOnlineStore(ctx, req, opts...) +} + +// DeleteFeatureOnlineStoreOperation returns a new DeleteFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created DeleteFeatureOnlineStoreOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) DeleteFeatureOnlineStoreOperation(name string) *DeleteFeatureOnlineStoreOperation { + return c.internalClient.DeleteFeatureOnlineStoreOperation(name) +} + +// CreateFeatureView creates a new FeatureView in a given FeatureOnlineStore. +func (c *FeatureOnlineStoreAdminClient) CreateFeatureView(ctx context.Context, req *aiplatformpb.CreateFeatureViewRequest, opts ...gax.CallOption) (*CreateFeatureViewOperation, error) { + return c.internalClient.CreateFeatureView(ctx, req, opts...) +} + +// CreateFeatureViewOperation returns a new CreateFeatureViewOperation from a given name. +// The name must be that of a previously created CreateFeatureViewOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) CreateFeatureViewOperation(name string) *CreateFeatureViewOperation { + return c.internalClient.CreateFeatureViewOperation(name) +} + +// GetFeatureView gets details of a single FeatureView. +func (c *FeatureOnlineStoreAdminClient) GetFeatureView(ctx context.Context, req *aiplatformpb.GetFeatureViewRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + return c.internalClient.GetFeatureView(ctx, req, opts...) +} + +// ListFeatureViews lists FeatureViews in a given FeatureOnlineStore. +func (c *FeatureOnlineStoreAdminClient) ListFeatureViews(ctx context.Context, req *aiplatformpb.ListFeatureViewsRequest, opts ...gax.CallOption) *FeatureViewIterator { + return c.internalClient.ListFeatureViews(ctx, req, opts...) +} + +// UpdateFeatureView updates the parameters of a single FeatureView. +func (c *FeatureOnlineStoreAdminClient) UpdateFeatureView(ctx context.Context, req *aiplatformpb.UpdateFeatureViewRequest, opts ...gax.CallOption) (*UpdateFeatureViewOperation, error) { + return c.internalClient.UpdateFeatureView(ctx, req, opts...) +} + +// UpdateFeatureViewOperation returns a new UpdateFeatureViewOperation from a given name. +// The name must be that of a previously created UpdateFeatureViewOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) UpdateFeatureViewOperation(name string) *UpdateFeatureViewOperation { + return c.internalClient.UpdateFeatureViewOperation(name) +} + +// DeleteFeatureView deletes a single FeatureView. +func (c *FeatureOnlineStoreAdminClient) DeleteFeatureView(ctx context.Context, req *aiplatformpb.DeleteFeatureViewRequest, opts ...gax.CallOption) (*DeleteFeatureViewOperation, error) { + return c.internalClient.DeleteFeatureView(ctx, req, opts...) +} + +// DeleteFeatureViewOperation returns a new DeleteFeatureViewOperation from a given name. +// The name must be that of a previously created DeleteFeatureViewOperation, possibly from a different process. +func (c *FeatureOnlineStoreAdminClient) DeleteFeatureViewOperation(name string) *DeleteFeatureViewOperation { + return c.internalClient.DeleteFeatureViewOperation(name) +} + +// SyncFeatureView triggers on-demand sync for the FeatureView. +func (c *FeatureOnlineStoreAdminClient) SyncFeatureView(ctx context.Context, req *aiplatformpb.SyncFeatureViewRequest, opts ...gax.CallOption) (*aiplatformpb.SyncFeatureViewResponse, error) { + return c.internalClient.SyncFeatureView(ctx, req, opts...) +} + +// GetFeatureViewSync gets details of a single FeatureViewSync. +func (c *FeatureOnlineStoreAdminClient) GetFeatureViewSync(ctx context.Context, req *aiplatformpb.GetFeatureViewSyncRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureViewSync, error) { + return c.internalClient.GetFeatureViewSync(ctx, req, opts...) +} + +// ListFeatureViewSyncs lists FeatureViewSyncs in a given FeatureView. +func (c *FeatureOnlineStoreAdminClient) ListFeatureViewSyncs(ctx context.Context, req *aiplatformpb.ListFeatureViewSyncsRequest, opts ...gax.CallOption) *FeatureViewSyncIterator { + return c.internalClient.ListFeatureViewSyncs(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *FeatureOnlineStoreAdminClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *FeatureOnlineStoreAdminClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *FeatureOnlineStoreAdminClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *FeatureOnlineStoreAdminClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *FeatureOnlineStoreAdminClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreAdminClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreAdminClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreAdminClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreAdminClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreAdminClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.WaitOperation(ctx, req, opts...) +} + +// featureOnlineStoreAdminGRPCClient is a client for interacting with Vertex AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type featureOnlineStoreAdminGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing FeatureOnlineStoreAdminClient + CallOptions **FeatureOnlineStoreAdminCallOptions + + // The gRPC API client. + featureOnlineStoreAdminClient aiplatformpb.FeatureOnlineStoreAdminServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewFeatureOnlineStoreAdminClient creates a new feature online store admin service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The service that handles CRUD and List for resources for +// FeatureOnlineStore. +func NewFeatureOnlineStoreAdminClient(ctx context.Context, opts ...option.ClientOption) (*FeatureOnlineStoreAdminClient, error) { + clientOpts := defaultFeatureOnlineStoreAdminGRPCClientOptions() + if newFeatureOnlineStoreAdminClientHook != nil { + hookOpts, err := newFeatureOnlineStoreAdminClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := FeatureOnlineStoreAdminClient{CallOptions: defaultFeatureOnlineStoreAdminCallOptions()} + + c := &featureOnlineStoreAdminGRPCClient{ + connPool: connPool, + featureOnlineStoreAdminClient: aiplatformpb.NewFeatureOnlineStoreAdminServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *featureOnlineStoreAdminGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *featureOnlineStoreAdminGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *featureOnlineStoreAdminGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *featureOnlineStoreAdminGRPCClient) CreateFeatureOnlineStore(ctx context.Context, req *aiplatformpb.CreateFeatureOnlineStoreRequest, opts ...gax.CallOption) (*CreateFeatureOnlineStoreOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateFeatureOnlineStore[0:len((*c.CallOptions).CreateFeatureOnlineStore):len((*c.CallOptions).CreateFeatureOnlineStore)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.CreateFeatureOnlineStore(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) GetFeatureOnlineStore(ctx context.Context, req *aiplatformpb.GetFeatureOnlineStoreRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureOnlineStore, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetFeatureOnlineStore[0:len((*c.CallOptions).GetFeatureOnlineStore):len((*c.CallOptions).GetFeatureOnlineStore)], opts...) + var resp *aiplatformpb.FeatureOnlineStore + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.GetFeatureOnlineStore(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) ListFeatureOnlineStores(ctx context.Context, req *aiplatformpb.ListFeatureOnlineStoresRequest, opts ...gax.CallOption) *FeatureOnlineStoreIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListFeatureOnlineStores[0:len((*c.CallOptions).ListFeatureOnlineStores):len((*c.CallOptions).ListFeatureOnlineStores)], opts...) + it := &FeatureOnlineStoreIterator{} + req = proto.Clone(req).(*aiplatformpb.ListFeatureOnlineStoresRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*aiplatformpb.FeatureOnlineStore, string, error) { + resp := &aiplatformpb.ListFeatureOnlineStoresResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.ListFeatureOnlineStores(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetFeatureOnlineStores(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreAdminGRPCClient) UpdateFeatureOnlineStore(ctx context.Context, req *aiplatformpb.UpdateFeatureOnlineStoreRequest, opts ...gax.CallOption) (*UpdateFeatureOnlineStoreOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature_online_store.name", url.QueryEscape(req.GetFeatureOnlineStore().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateFeatureOnlineStore[0:len((*c.CallOptions).UpdateFeatureOnlineStore):len((*c.CallOptions).UpdateFeatureOnlineStore)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.UpdateFeatureOnlineStore(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) DeleteFeatureOnlineStore(ctx context.Context, req *aiplatformpb.DeleteFeatureOnlineStoreRequest, opts ...gax.CallOption) (*DeleteFeatureOnlineStoreOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteFeatureOnlineStore[0:len((*c.CallOptions).DeleteFeatureOnlineStore):len((*c.CallOptions).DeleteFeatureOnlineStore)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.DeleteFeatureOnlineStore(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) CreateFeatureView(ctx context.Context, req *aiplatformpb.CreateFeatureViewRequest, opts ...gax.CallOption) (*CreateFeatureViewOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateFeatureView[0:len((*c.CallOptions).CreateFeatureView):len((*c.CallOptions).CreateFeatureView)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.CreateFeatureView(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) GetFeatureView(ctx context.Context, req *aiplatformpb.GetFeatureViewRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureView, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetFeatureView[0:len((*c.CallOptions).GetFeatureView):len((*c.CallOptions).GetFeatureView)], opts...) + var resp *aiplatformpb.FeatureView + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.GetFeatureView(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) ListFeatureViews(ctx context.Context, req *aiplatformpb.ListFeatureViewsRequest, opts ...gax.CallOption) *FeatureViewIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListFeatureViews[0:len((*c.CallOptions).ListFeatureViews):len((*c.CallOptions).ListFeatureViews)], opts...) + it := &FeatureViewIterator{} + req = proto.Clone(req).(*aiplatformpb.ListFeatureViewsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*aiplatformpb.FeatureView, string, error) { + resp := &aiplatformpb.ListFeatureViewsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.ListFeatureViews(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetFeatureViews(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreAdminGRPCClient) UpdateFeatureView(ctx context.Context, req *aiplatformpb.UpdateFeatureViewRequest, opts ...gax.CallOption) (*UpdateFeatureViewOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature_view.name", url.QueryEscape(req.GetFeatureView().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateFeatureView[0:len((*c.CallOptions).UpdateFeatureView):len((*c.CallOptions).UpdateFeatureView)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.UpdateFeatureView(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) DeleteFeatureView(ctx context.Context, req *aiplatformpb.DeleteFeatureViewRequest, opts ...gax.CallOption) (*DeleteFeatureViewOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteFeatureView[0:len((*c.CallOptions).DeleteFeatureView):len((*c.CallOptions).DeleteFeatureView)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.DeleteFeatureView(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) SyncFeatureView(ctx context.Context, req *aiplatformpb.SyncFeatureViewRequest, opts ...gax.CallOption) (*aiplatformpb.SyncFeatureViewResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature_view", url.QueryEscape(req.GetFeatureView()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SyncFeatureView[0:len((*c.CallOptions).SyncFeatureView):len((*c.CallOptions).SyncFeatureView)], opts...) + var resp *aiplatformpb.SyncFeatureViewResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.SyncFeatureView(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) GetFeatureViewSync(ctx context.Context, req *aiplatformpb.GetFeatureViewSyncRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureViewSync, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetFeatureViewSync[0:len((*c.CallOptions).GetFeatureViewSync):len((*c.CallOptions).GetFeatureViewSync)], opts...) + var resp *aiplatformpb.FeatureViewSync + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.GetFeatureViewSync(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) ListFeatureViewSyncs(ctx context.Context, req *aiplatformpb.ListFeatureViewSyncsRequest, opts ...gax.CallOption) *FeatureViewSyncIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListFeatureViewSyncs[0:len((*c.CallOptions).ListFeatureViewSyncs):len((*c.CallOptions).ListFeatureViewSyncs)], opts...) + it := &FeatureViewSyncIterator{} + req = proto.Clone(req).(*aiplatformpb.ListFeatureViewSyncsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*aiplatformpb.FeatureViewSync, string, error) { + resp := &aiplatformpb.ListFeatureViewSyncsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreAdminClient.ListFeatureViewSyncs(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetFeatureViewSyncs(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreAdminGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreAdminGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.GetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.SetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.TestIamPermissions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureOnlineStoreAdminGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureOnlineStoreAdminGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreAdminGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreAdminGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// CreateFeatureOnlineStoreOperation returns a new CreateFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created CreateFeatureOnlineStoreOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) CreateFeatureOnlineStoreOperation(name string) *CreateFeatureOnlineStoreOperation { + return &CreateFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateFeatureViewOperation returns a new CreateFeatureViewOperation from a given name. +// The name must be that of a previously created CreateFeatureViewOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) CreateFeatureViewOperation(name string) *CreateFeatureViewOperation { + return &CreateFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteFeatureOnlineStoreOperation returns a new DeleteFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created DeleteFeatureOnlineStoreOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) DeleteFeatureOnlineStoreOperation(name string) *DeleteFeatureOnlineStoreOperation { + return &DeleteFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteFeatureViewOperation returns a new DeleteFeatureViewOperation from a given name. +// The name must be that of a previously created DeleteFeatureViewOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) DeleteFeatureViewOperation(name string) *DeleteFeatureViewOperation { + return &DeleteFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateFeatureOnlineStoreOperation returns a new UpdateFeatureOnlineStoreOperation from a given name. +// The name must be that of a previously created UpdateFeatureOnlineStoreOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) UpdateFeatureOnlineStoreOperation(name string) *UpdateFeatureOnlineStoreOperation { + return &UpdateFeatureOnlineStoreOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateFeatureViewOperation returns a new UpdateFeatureViewOperation from a given name. +// The name must be that of a previously created UpdateFeatureViewOperation, possibly from a different process. +func (c *featureOnlineStoreAdminGRPCClient) UpdateFeatureViewOperation(name string) *UpdateFeatureViewOperation { + return &UpdateFeatureViewOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/aiplatform/apiv1/feature_online_store_admin_client_example_test.go b/aiplatform/apiv1/feature_online_store_admin_client_example_test.go new file mode 100644 index 000000000000..c56d38df5cda --- /dev/null +++ b/aiplatform/apiv1/feature_online_store_admin_client_example_test.go @@ -0,0 +1,672 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform_test + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewFeatureOnlineStoreAdminClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleFeatureOnlineStoreAdminClient_CreateFeatureOnlineStore() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureOnlineStoreRequest. + } + op, err := c.CreateFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_CreateFeatureView() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureViewRequest. + } + op, err := c.CreateFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_DeleteFeatureOnlineStore() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureOnlineStoreRequest. + } + op, err := c.DeleteFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreAdminClient_DeleteFeatureView() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureViewRequest. + } + op, err := c.DeleteFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreAdminClient_GetFeatureOnlineStore() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureOnlineStoreRequest. + } + resp, err := c.GetFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_GetFeatureView() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureViewRequest. + } + resp, err := c.GetFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_GetFeatureViewSync() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureViewSyncRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureViewSyncRequest. + } + resp, err := c.GetFeatureViewSync(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_ListFeatureOnlineStores() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureOnlineStoresRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureOnlineStoresRequest. + } + it := c.ListFeatureOnlineStores(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreAdminClient_ListFeatureViewSyncs() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureViewSyncsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureViewSyncsRequest. + } + it := c.ListFeatureViewSyncs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreAdminClient_ListFeatureViews() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureViewsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureViewsRequest. + } + it := c.ListFeatureViews(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreAdminClient_SyncFeatureView() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.SyncFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#SyncFeatureViewRequest. + } + resp, err := c.SyncFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_UpdateFeatureOnlineStore() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureOnlineStoreRequest. + } + op, err := c.UpdateFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_UpdateFeatureView() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureViewRequest. + } + op, err := c.UpdateFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreAdminClient_GetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_SetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_TestIamPermissions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreAdminClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreAdminClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreAdminClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreAdminClient_WaitOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/aiplatform/apiv1/feature_online_store_client.go b/aiplatform/apiv1/feature_online_store_client.go new file mode 100755 index 000000000000..1f6809efaf40 --- /dev/null +++ b/aiplatform/apiv1/feature_online_store_client.go @@ -0,0 +1,523 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform + +import ( + "context" + "fmt" + "math" + "net/url" + + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" +) + +var newFeatureOnlineStoreClientHook clientHook + +// FeatureOnlineStoreCallOptions contains the retry settings for each method of FeatureOnlineStoreClient. +type FeatureOnlineStoreCallOptions struct { + FetchFeatureValues []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption +} + +func defaultFeatureOnlineStoreGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("aiplatform.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("aiplatform.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultFeatureOnlineStoreCallOptions() *FeatureOnlineStoreCallOptions { + return &FeatureOnlineStoreCallOptions{ + FetchFeatureValues: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +// internalFeatureOnlineStoreClient is an interface that defines the methods available from Vertex AI API. +type internalFeatureOnlineStoreClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + FetchFeatureValues(context.Context, *aiplatformpb.FetchFeatureValuesRequest, ...gax.CallOption) (*aiplatformpb.FetchFeatureValuesResponse, error) + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator + WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// FeatureOnlineStoreClient is a client for interacting with Vertex AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type FeatureOnlineStoreClient struct { + // The internal transport-dependent client. + internalClient internalFeatureOnlineStoreClient + + // The call options for this service. + CallOptions *FeatureOnlineStoreCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *FeatureOnlineStoreClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *FeatureOnlineStoreClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *FeatureOnlineStoreClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// FetchFeatureValues fetch feature values under a FeatureView. +func (c *FeatureOnlineStoreClient) FetchFeatureValues(ctx context.Context, req *aiplatformpb.FetchFeatureValuesRequest, opts ...gax.CallOption) (*aiplatformpb.FetchFeatureValuesResponse, error) { + return c.internalClient.FetchFeatureValues(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *FeatureOnlineStoreClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *FeatureOnlineStoreClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *FeatureOnlineStoreClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *FeatureOnlineStoreClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *FeatureOnlineStoreClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *FeatureOnlineStoreClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.WaitOperation(ctx, req, opts...) +} + +// featureOnlineStoreGRPCClient is a client for interacting with Vertex AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type featureOnlineStoreGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing FeatureOnlineStoreClient + CallOptions **FeatureOnlineStoreCallOptions + + // The gRPC API client. + featureOnlineStoreClient aiplatformpb.FeatureOnlineStoreServiceClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewFeatureOnlineStoreClient creates a new feature online store service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +func NewFeatureOnlineStoreClient(ctx context.Context, opts ...option.ClientOption) (*FeatureOnlineStoreClient, error) { + clientOpts := defaultFeatureOnlineStoreGRPCClientOptions() + if newFeatureOnlineStoreClientHook != nil { + hookOpts, err := newFeatureOnlineStoreClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := FeatureOnlineStoreClient{CallOptions: defaultFeatureOnlineStoreCallOptions()} + + c := &featureOnlineStoreGRPCClient{ + connPool: connPool, + featureOnlineStoreClient: aiplatformpb.NewFeatureOnlineStoreServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *featureOnlineStoreGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *featureOnlineStoreGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *featureOnlineStoreGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *featureOnlineStoreGRPCClient) FetchFeatureValues(ctx context.Context, req *aiplatformpb.FetchFeatureValuesRequest, opts ...gax.CallOption) (*aiplatformpb.FetchFeatureValuesResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature_view", url.QueryEscape(req.GetFeatureView()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).FetchFeatureValues[0:len((*c.CallOptions).FetchFeatureValues):len((*c.CallOptions).FetchFeatureValues)], opts...) + var resp *aiplatformpb.FetchFeatureValuesResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureOnlineStoreClient.FetchFeatureValues(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.GetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.SetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.TestIamPermissions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureOnlineStoreGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureOnlineStoreGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureOnlineStoreGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureOnlineStoreGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/aiplatform/apiv1/feature_online_store_client_example_test.go b/aiplatform/apiv1/feature_online_store_client_example_test.go new file mode 100644 index 000000000000..450e03ba512a --- /dev/null +++ b/aiplatform/apiv1/feature_online_store_client_example_test.go @@ -0,0 +1,328 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform_test + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewFeatureOnlineStoreClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleFeatureOnlineStoreClient_FetchFeatureValues() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.FetchFeatureValuesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#FetchFeatureValuesRequest. + } + resp, err := c.FetchFeatureValues(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreClient_GetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_SetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_TestIamPermissions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureOnlineStoreClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureOnlineStoreClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureOnlineStoreClient_WaitOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/aiplatform/apiv1/feature_registry_client.go b/aiplatform/apiv1/feature_registry_client.go new file mode 100755 index 000000000000..d4584c2ed78b --- /dev/null +++ b/aiplatform/apiv1/feature_registry_client.go @@ -0,0 +1,944 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform + +import ( + "context" + "fmt" + "math" + "net/url" + + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" +) + +var newFeatureRegistryClientHook clientHook + +// FeatureRegistryCallOptions contains the retry settings for each method of FeatureRegistryClient. +type FeatureRegistryCallOptions struct { + CreateFeatureGroup []gax.CallOption + GetFeatureGroup []gax.CallOption + ListFeatureGroups []gax.CallOption + UpdateFeatureGroup []gax.CallOption + DeleteFeatureGroup []gax.CallOption + CreateFeature []gax.CallOption + GetFeature []gax.CallOption + ListFeatures []gax.CallOption + UpdateFeature []gax.CallOption + DeleteFeature []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption +} + +func defaultFeatureRegistryGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("aiplatform.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("aiplatform.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultFeatureRegistryCallOptions() *FeatureRegistryCallOptions { + return &FeatureRegistryCallOptions{ + CreateFeatureGroup: []gax.CallOption{}, + GetFeatureGroup: []gax.CallOption{}, + ListFeatureGroups: []gax.CallOption{}, + UpdateFeatureGroup: []gax.CallOption{}, + DeleteFeatureGroup: []gax.CallOption{}, + CreateFeature: []gax.CallOption{}, + GetFeature: []gax.CallOption{}, + ListFeatures: []gax.CallOption{}, + UpdateFeature: []gax.CallOption{}, + DeleteFeature: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +// internalFeatureRegistryClient is an interface that defines the methods available from Vertex AI API. +type internalFeatureRegistryClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateFeatureGroup(context.Context, *aiplatformpb.CreateFeatureGroupRequest, ...gax.CallOption) (*CreateFeatureGroupOperation, error) + CreateFeatureGroupOperation(name string) *CreateFeatureGroupOperation + GetFeatureGroup(context.Context, *aiplatformpb.GetFeatureGroupRequest, ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) + ListFeatureGroups(context.Context, *aiplatformpb.ListFeatureGroupsRequest, ...gax.CallOption) *FeatureGroupIterator + UpdateFeatureGroup(context.Context, *aiplatformpb.UpdateFeatureGroupRequest, ...gax.CallOption) (*UpdateFeatureGroupOperation, error) + UpdateFeatureGroupOperation(name string) *UpdateFeatureGroupOperation + DeleteFeatureGroup(context.Context, *aiplatformpb.DeleteFeatureGroupRequest, ...gax.CallOption) (*DeleteFeatureGroupOperation, error) + DeleteFeatureGroupOperation(name string) *DeleteFeatureGroupOperation + CreateFeature(context.Context, *aiplatformpb.CreateFeatureRequest, ...gax.CallOption) (*CreateFeatureOperation, error) + CreateFeatureOperation(name string) *CreateFeatureOperation + GetFeature(context.Context, *aiplatformpb.GetFeatureRequest, ...gax.CallOption) (*aiplatformpb.Feature, error) + ListFeatures(context.Context, *aiplatformpb.ListFeaturesRequest, ...gax.CallOption) *FeatureIterator + UpdateFeature(context.Context, *aiplatformpb.UpdateFeatureRequest, ...gax.CallOption) (*UpdateFeatureOperation, error) + UpdateFeatureOperation(name string) *UpdateFeatureOperation + DeleteFeature(context.Context, *aiplatformpb.DeleteFeatureRequest, ...gax.CallOption) (*DeleteFeatureOperation, error) + DeleteFeatureOperation(name string) *DeleteFeatureOperation + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator + WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// FeatureRegistryClient is a client for interacting with Vertex AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The service that handles CRUD and List for resources for +// FeatureRegistry. +type FeatureRegistryClient struct { + // The internal transport-dependent client. + internalClient internalFeatureRegistryClient + + // The call options for this service. + CallOptions *FeatureRegistryCallOptions + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient *lroauto.OperationsClient +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *FeatureRegistryClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *FeatureRegistryClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *FeatureRegistryClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateFeatureGroup creates a new FeatureGroup in a given project and location. +func (c *FeatureRegistryClient) CreateFeatureGroup(ctx context.Context, req *aiplatformpb.CreateFeatureGroupRequest, opts ...gax.CallOption) (*CreateFeatureGroupOperation, error) { + return c.internalClient.CreateFeatureGroup(ctx, req, opts...) +} + +// CreateFeatureGroupOperation returns a new CreateFeatureGroupOperation from a given name. +// The name must be that of a previously created CreateFeatureGroupOperation, possibly from a different process. +func (c *FeatureRegistryClient) CreateFeatureGroupOperation(name string) *CreateFeatureGroupOperation { + return c.internalClient.CreateFeatureGroupOperation(name) +} + +// GetFeatureGroup gets details of a single FeatureGroup. +func (c *FeatureRegistryClient) GetFeatureGroup(ctx context.Context, req *aiplatformpb.GetFeatureGroupRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + return c.internalClient.GetFeatureGroup(ctx, req, opts...) +} + +// ListFeatureGroups lists FeatureGroups in a given project and location. +func (c *FeatureRegistryClient) ListFeatureGroups(ctx context.Context, req *aiplatformpb.ListFeatureGroupsRequest, opts ...gax.CallOption) *FeatureGroupIterator { + return c.internalClient.ListFeatureGroups(ctx, req, opts...) +} + +// UpdateFeatureGroup updates the parameters of a single FeatureGroup. +func (c *FeatureRegistryClient) UpdateFeatureGroup(ctx context.Context, req *aiplatformpb.UpdateFeatureGroupRequest, opts ...gax.CallOption) (*UpdateFeatureGroupOperation, error) { + return c.internalClient.UpdateFeatureGroup(ctx, req, opts...) +} + +// UpdateFeatureGroupOperation returns a new UpdateFeatureGroupOperation from a given name. +// The name must be that of a previously created UpdateFeatureGroupOperation, possibly from a different process. +func (c *FeatureRegistryClient) UpdateFeatureGroupOperation(name string) *UpdateFeatureGroupOperation { + return c.internalClient.UpdateFeatureGroupOperation(name) +} + +// DeleteFeatureGroup deletes a single FeatureGroup. +func (c *FeatureRegistryClient) DeleteFeatureGroup(ctx context.Context, req *aiplatformpb.DeleteFeatureGroupRequest, opts ...gax.CallOption) (*DeleteFeatureGroupOperation, error) { + return c.internalClient.DeleteFeatureGroup(ctx, req, opts...) +} + +// DeleteFeatureGroupOperation returns a new DeleteFeatureGroupOperation from a given name. +// The name must be that of a previously created DeleteFeatureGroupOperation, possibly from a different process. +func (c *FeatureRegistryClient) DeleteFeatureGroupOperation(name string) *DeleteFeatureGroupOperation { + return c.internalClient.DeleteFeatureGroupOperation(name) +} + +// CreateFeature creates a new Feature in a given FeatureGroup. +func (c *FeatureRegistryClient) CreateFeature(ctx context.Context, req *aiplatformpb.CreateFeatureRequest, opts ...gax.CallOption) (*CreateFeatureOperation, error) { + return c.internalClient.CreateFeature(ctx, req, opts...) +} + +// CreateFeatureOperation returns a new CreateFeatureOperation from a given name. +// The name must be that of a previously created CreateFeatureOperation, possibly from a different process. +func (c *FeatureRegistryClient) CreateFeatureOperation(name string) *CreateFeatureOperation { + return c.internalClient.CreateFeatureOperation(name) +} + +// GetFeature gets details of a single Feature. +func (c *FeatureRegistryClient) GetFeature(ctx context.Context, req *aiplatformpb.GetFeatureRequest, opts ...gax.CallOption) (*aiplatformpb.Feature, error) { + return c.internalClient.GetFeature(ctx, req, opts...) +} + +// ListFeatures lists Features in a given FeatureGroup. +func (c *FeatureRegistryClient) ListFeatures(ctx context.Context, req *aiplatformpb.ListFeaturesRequest, opts ...gax.CallOption) *FeatureIterator { + return c.internalClient.ListFeatures(ctx, req, opts...) +} + +// UpdateFeature updates the parameters of a single Feature. +func (c *FeatureRegistryClient) UpdateFeature(ctx context.Context, req *aiplatformpb.UpdateFeatureRequest, opts ...gax.CallOption) (*UpdateFeatureOperation, error) { + return c.internalClient.UpdateFeature(ctx, req, opts...) +} + +// UpdateFeatureOperation returns a new UpdateFeatureOperation from a given name. +// The name must be that of a previously created UpdateFeatureOperation, possibly from a different process. +func (c *FeatureRegistryClient) UpdateFeatureOperation(name string) *UpdateFeatureOperation { + return c.internalClient.UpdateFeatureOperation(name) +} + +// DeleteFeature deletes a single Feature. +func (c *FeatureRegistryClient) DeleteFeature(ctx context.Context, req *aiplatformpb.DeleteFeatureRequest, opts ...gax.CallOption) (*DeleteFeatureOperation, error) { + return c.internalClient.DeleteFeature(ctx, req, opts...) +} + +// DeleteFeatureOperation returns a new DeleteFeatureOperation from a given name. +// The name must be that of a previously created DeleteFeatureOperation, possibly from a different process. +func (c *FeatureRegistryClient) DeleteFeatureOperation(name string) *DeleteFeatureOperation { + return c.internalClient.DeleteFeatureOperation(name) +} + +// GetLocation gets information about a location. +func (c *FeatureRegistryClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *FeatureRegistryClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *FeatureRegistryClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *FeatureRegistryClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *FeatureRegistryClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *FeatureRegistryClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *FeatureRegistryClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *FeatureRegistryClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *FeatureRegistryClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *FeatureRegistryClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.WaitOperation(ctx, req, opts...) +} + +// featureRegistryGRPCClient is a client for interacting with Vertex AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type featureRegistryGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing FeatureRegistryClient + CallOptions **FeatureRegistryCallOptions + + // The gRPC API client. + featureRegistryClient aiplatformpb.FeatureRegistryServiceClient + + // LROClient is used internally to handle long-running operations. + // It is exposed so that its CallOptions can be modified if required. + // Users should not Close this client. + LROClient **lroauto.OperationsClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewFeatureRegistryClient creates a new feature registry service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The service that handles CRUD and List for resources for +// FeatureRegistry. +func NewFeatureRegistryClient(ctx context.Context, opts ...option.ClientOption) (*FeatureRegistryClient, error) { + clientOpts := defaultFeatureRegistryGRPCClientOptions() + if newFeatureRegistryClientHook != nil { + hookOpts, err := newFeatureRegistryClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := FeatureRegistryClient{CallOptions: defaultFeatureRegistryCallOptions()} + + c := &featureRegistryGRPCClient{ + connPool: connPool, + featureRegistryClient: aiplatformpb.NewFeatureRegistryServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + client.LROClient, err = lroauto.NewOperationsClient(ctx, gtransport.WithConnPool(connPool)) + if err != nil { + // This error "should not happen", since we are just reusing old connection pool + // and never actually need to dial. + // If this does happen, we could leak connp. However, we cannot close conn: + // If the user invoked the constructor with option.WithGRPCConn, + // we would close a connection that's still in use. + // TODO: investigate error conditions. + return nil, err + } + c.LROClient = &client.LROClient + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *featureRegistryGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *featureRegistryGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *featureRegistryGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *featureRegistryGRPCClient) CreateFeatureGroup(ctx context.Context, req *aiplatformpb.CreateFeatureGroupRequest, opts ...gax.CallOption) (*CreateFeatureGroupOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateFeatureGroup[0:len((*c.CallOptions).CreateFeatureGroup):len((*c.CallOptions).CreateFeatureGroup)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.CreateFeatureGroup(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) GetFeatureGroup(ctx context.Context, req *aiplatformpb.GetFeatureGroupRequest, opts ...gax.CallOption) (*aiplatformpb.FeatureGroup, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetFeatureGroup[0:len((*c.CallOptions).GetFeatureGroup):len((*c.CallOptions).GetFeatureGroup)], opts...) + var resp *aiplatformpb.FeatureGroup + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.GetFeatureGroup(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) ListFeatureGroups(ctx context.Context, req *aiplatformpb.ListFeatureGroupsRequest, opts ...gax.CallOption) *FeatureGroupIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListFeatureGroups[0:len((*c.CallOptions).ListFeatureGroups):len((*c.CallOptions).ListFeatureGroups)], opts...) + it := &FeatureGroupIterator{} + req = proto.Clone(req).(*aiplatformpb.ListFeatureGroupsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*aiplatformpb.FeatureGroup, string, error) { + resp := &aiplatformpb.ListFeatureGroupsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.ListFeatureGroups(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetFeatureGroups(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureRegistryGRPCClient) UpdateFeatureGroup(ctx context.Context, req *aiplatformpb.UpdateFeatureGroupRequest, opts ...gax.CallOption) (*UpdateFeatureGroupOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature_group.name", url.QueryEscape(req.GetFeatureGroup().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateFeatureGroup[0:len((*c.CallOptions).UpdateFeatureGroup):len((*c.CallOptions).UpdateFeatureGroup)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.UpdateFeatureGroup(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) DeleteFeatureGroup(ctx context.Context, req *aiplatformpb.DeleteFeatureGroupRequest, opts ...gax.CallOption) (*DeleteFeatureGroupOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteFeatureGroup[0:len((*c.CallOptions).DeleteFeatureGroup):len((*c.CallOptions).DeleteFeatureGroup)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.DeleteFeatureGroup(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) CreateFeature(ctx context.Context, req *aiplatformpb.CreateFeatureRequest, opts ...gax.CallOption) (*CreateFeatureOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CreateFeature[0:len((*c.CallOptions).CreateFeature):len((*c.CallOptions).CreateFeature)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.CreateFeature(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) GetFeature(ctx context.Context, req *aiplatformpb.GetFeatureRequest, opts ...gax.CallOption) (*aiplatformpb.Feature, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetFeature[0:len((*c.CallOptions).GetFeature):len((*c.CallOptions).GetFeature)], opts...) + var resp *aiplatformpb.Feature + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.GetFeature(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) ListFeatures(ctx context.Context, req *aiplatformpb.ListFeaturesRequest, opts ...gax.CallOption) *FeatureIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListFeatures[0:len((*c.CallOptions).ListFeatures):len((*c.CallOptions).ListFeatures)], opts...) + it := &FeatureIterator{} + req = proto.Clone(req).(*aiplatformpb.ListFeaturesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*aiplatformpb.Feature, string, error) { + resp := &aiplatformpb.ListFeaturesResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.ListFeatures(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetFeatures(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureRegistryGRPCClient) UpdateFeature(ctx context.Context, req *aiplatformpb.UpdateFeatureRequest, opts ...gax.CallOption) (*UpdateFeatureOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "feature.name", url.QueryEscape(req.GetFeature().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateFeature[0:len((*c.CallOptions).UpdateFeature):len((*c.CallOptions).UpdateFeature)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.UpdateFeature(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) DeleteFeature(ctx context.Context, req *aiplatformpb.DeleteFeatureRequest, opts ...gax.CallOption) (*DeleteFeatureOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteFeature[0:len((*c.CallOptions).DeleteFeature):len((*c.CallOptions).DeleteFeature)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.featureRegistryClient.DeleteFeature(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *featureRegistryGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureRegistryGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.GetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.SetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.TestIamPermissions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureRegistryGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *featureRegistryGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *featureRegistryGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *featureRegistryGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// CreateFeatureOperation returns a new CreateFeatureOperation from a given name. +// The name must be that of a previously created CreateFeatureOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) CreateFeatureOperation(name string) *CreateFeatureOperation { + return &CreateFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateFeatureGroupOperation returns a new CreateFeatureGroupOperation from a given name. +// The name must be that of a previously created CreateFeatureGroupOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) CreateFeatureGroupOperation(name string) *CreateFeatureGroupOperation { + return &CreateFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteFeatureOperation returns a new DeleteFeatureOperation from a given name. +// The name must be that of a previously created DeleteFeatureOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) DeleteFeatureOperation(name string) *DeleteFeatureOperation { + return &DeleteFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteFeatureGroupOperation returns a new DeleteFeatureGroupOperation from a given name. +// The name must be that of a previously created DeleteFeatureGroupOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) DeleteFeatureGroupOperation(name string) *DeleteFeatureGroupOperation { + return &DeleteFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateFeatureOperation returns a new UpdateFeatureOperation from a given name. +// The name must be that of a previously created UpdateFeatureOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) UpdateFeatureOperation(name string) *UpdateFeatureOperation { + return &UpdateFeatureOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateFeatureGroupOperation returns a new UpdateFeatureGroupOperation from a given name. +// The name must be that of a previously created UpdateFeatureGroupOperation, possibly from a different process. +func (c *featureRegistryGRPCClient) UpdateFeatureGroupOperation(name string) *UpdateFeatureGroupOperation { + return &UpdateFeatureGroupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} diff --git a/aiplatform/apiv1/feature_registry_client_example_test.go b/aiplatform/apiv1/feature_registry_client_example_test.go new file mode 100644 index 000000000000..712c7af4c21f --- /dev/null +++ b/aiplatform/apiv1/feature_registry_client_example_test.go @@ -0,0 +1,591 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform_test + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewFeatureRegistryClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleFeatureRegistryClient_CreateFeature() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureRequest. + } + op, err := c.CreateFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_CreateFeatureGroup() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureGroupRequest. + } + op, err := c.CreateFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_DeleteFeature() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureRequest. + } + op, err := c.DeleteFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureRegistryClient_DeleteFeatureGroup() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureGroupRequest. + } + op, err := c.DeleteFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureRegistryClient_GetFeature() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureRequest. + } + resp, err := c.GetFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_GetFeatureGroup() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureGroupRequest. + } + resp, err := c.GetFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_ListFeatureGroups() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureGroupsRequest. + } + it := c.ListFeatureGroups(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureRegistryClient_ListFeatures() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeaturesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeaturesRequest. + } + it := c.ListFeatures(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureRegistryClient_UpdateFeature() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureRequest. + } + op, err := c.UpdateFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_UpdateFeatureGroup() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureGroupRequest. + } + op, err := c.UpdateFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureRegistryClient_GetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_SetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_TestIamPermissions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureRegistryClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleFeatureRegistryClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleFeatureRegistryClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleFeatureRegistryClient_WaitOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/aiplatform/apiv1/gapic_metadata.json b/aiplatform/apiv1/gapic_metadata.json index 916a9f7ec275..ab1cd296d1f2 100644 --- a/aiplatform/apiv1/gapic_metadata.json +++ b/aiplatform/apiv1/gapic_metadata.json @@ -253,6 +253,303 @@ } } }, + "FeatureOnlineStoreAdminService": { + "clients": { + "grpc": { + "libraryClient": "FeatureOnlineStoreAdminClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateFeatureOnlineStore": { + "methods": [ + "CreateFeatureOnlineStore" + ] + }, + "CreateFeatureView": { + "methods": [ + "CreateFeatureView" + ] + }, + "DeleteFeatureOnlineStore": { + "methods": [ + "DeleteFeatureOnlineStore" + ] + }, + "DeleteFeatureView": { + "methods": [ + "DeleteFeatureView" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetFeatureOnlineStore": { + "methods": [ + "GetFeatureOnlineStore" + ] + }, + "GetFeatureView": { + "methods": [ + "GetFeatureView" + ] + }, + "GetFeatureViewSync": { + "methods": [ + "GetFeatureViewSync" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListFeatureOnlineStores": { + "methods": [ + "ListFeatureOnlineStores" + ] + }, + "ListFeatureViewSyncs": { + "methods": [ + "ListFeatureViewSyncs" + ] + }, + "ListFeatureViews": { + "methods": [ + "ListFeatureViews" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "SyncFeatureView": { + "methods": [ + "SyncFeatureView" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateFeatureOnlineStore": { + "methods": [ + "UpdateFeatureOnlineStore" + ] + }, + "UpdateFeatureView": { + "methods": [ + "UpdateFeatureView" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + } + } + }, + "FeatureOnlineStoreService": { + "clients": { + "grpc": { + "libraryClient": "FeatureOnlineStoreClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "FetchFeatureValues": { + "methods": [ + "FetchFeatureValues" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + } + } + }, + "FeatureRegistryService": { + "clients": { + "grpc": { + "libraryClient": "FeatureRegistryClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateFeature": { + "methods": [ + "CreateFeature" + ] + }, + "CreateFeatureGroup": { + "methods": [ + "CreateFeatureGroup" + ] + }, + "DeleteFeature": { + "methods": [ + "DeleteFeature" + ] + }, + "DeleteFeatureGroup": { + "methods": [ + "DeleteFeatureGroup" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetFeature": { + "methods": [ + "GetFeature" + ] + }, + "GetFeatureGroup": { + "methods": [ + "GetFeatureGroup" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListFeatureGroups": { + "methods": [ + "ListFeatureGroups" + ] + }, + "ListFeatures": { + "methods": [ + "ListFeatures" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateFeature": { + "methods": [ + "UpdateFeature" + ] + }, + "UpdateFeatureGroup": { + "methods": [ + "UpdateFeatureGroup" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + } + } + }, "FeaturestoreOnlineServingService": { "clients": { "grpc": { @@ -918,6 +1215,75 @@ } } }, + "LlmUtilityService": { + "clients": { + "grpc": { + "libraryClient": "LlmUtilityClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "ComputeTokens": { + "methods": [ + "ComputeTokens" + ] + }, + "CountTokens": { + "methods": [ + "CountTokens" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + } + } + }, "MatchService": { "clients": { "grpc": { diff --git a/aiplatform/apiv1/llm_utility_client.go b/aiplatform/apiv1/llm_utility_client.go new file mode 100755 index 000000000000..dacbc3151f4a --- /dev/null +++ b/aiplatform/apiv1/llm_utility_client.go @@ -0,0 +1,553 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform + +import ( + "context" + "fmt" + "math" + "net/url" + + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/proto" +) + +var newLlmUtilityClientHook clientHook + +// LlmUtilityCallOptions contains the retry settings for each method of LlmUtilityClient. +type LlmUtilityCallOptions struct { + CountTokens []gax.CallOption + ComputeTokens []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption +} + +func defaultLlmUtilityGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("aiplatform.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("aiplatform.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultLlmUtilityCallOptions() *LlmUtilityCallOptions { + return &LlmUtilityCallOptions{ + CountTokens: []gax.CallOption{}, + ComputeTokens: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +// internalLlmUtilityClient is an interface that defines the methods available from Vertex AI API. +type internalLlmUtilityClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CountTokens(context.Context, *aiplatformpb.CountTokensRequest, ...gax.CallOption) (*aiplatformpb.CountTokensResponse, error) + ComputeTokens(context.Context, *aiplatformpb.ComputeTokensRequest, ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator + WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// LlmUtilityClient is a client for interacting with Vertex AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service for LLM related utility functions. +type LlmUtilityClient struct { + // The internal transport-dependent client. + internalClient internalLlmUtilityClient + + // The call options for this service. + CallOptions *LlmUtilityCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *LlmUtilityClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *LlmUtilityClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *LlmUtilityClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CountTokens perform a token counting. +func (c *LlmUtilityClient) CountTokens(ctx context.Context, req *aiplatformpb.CountTokensRequest, opts ...gax.CallOption) (*aiplatformpb.CountTokensResponse, error) { + return c.internalClient.CountTokens(ctx, req, opts...) +} + +// ComputeTokens return a list of tokens based on the input text. +func (c *LlmUtilityClient) ComputeTokens(ctx context.Context, req *aiplatformpb.ComputeTokensRequest, opts ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) { + return c.internalClient.ComputeTokens(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *LlmUtilityClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *LlmUtilityClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *LlmUtilityClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *LlmUtilityClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *LlmUtilityClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.WaitOperation(ctx, req, opts...) +} + +// llmUtilityGRPCClient is a client for interacting with Vertex AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type llmUtilityGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing LlmUtilityClient + CallOptions **LlmUtilityCallOptions + + // The gRPC API client. + llmUtilityClient aiplatformpb.LlmUtilityServiceClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewLlmUtilityClient creates a new llm utility service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service for LLM related utility functions. +func NewLlmUtilityClient(ctx context.Context, opts ...option.ClientOption) (*LlmUtilityClient, error) { + clientOpts := defaultLlmUtilityGRPCClientOptions() + if newLlmUtilityClientHook != nil { + hookOpts, err := newLlmUtilityClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := LlmUtilityClient{CallOptions: defaultLlmUtilityCallOptions()} + + c := &llmUtilityGRPCClient{ + connPool: connPool, + llmUtilityClient: aiplatformpb.NewLlmUtilityServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *llmUtilityGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *llmUtilityGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *llmUtilityGRPCClient) Close() error { + return c.connPool.Close() +} + +func (c *llmUtilityGRPCClient) CountTokens(ctx context.Context, req *aiplatformpb.CountTokensRequest, opts ...gax.CallOption) (*aiplatformpb.CountTokensResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CountTokens[0:len((*c.CallOptions).CountTokens):len((*c.CallOptions).CountTokens)], opts...) + var resp *aiplatformpb.CountTokensResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.llmUtilityClient.CountTokens(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) ComputeTokens(ctx context.Context, req *aiplatformpb.ComputeTokensRequest, opts ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ComputeTokens[0:len((*c.CallOptions).ComputeTokens):len((*c.CallOptions).ComputeTokens)], opts...) + var resp *aiplatformpb.ComputeTokensResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.llmUtilityClient.ComputeTokens(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *llmUtilityGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.GetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.SetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.TestIamPermissions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *llmUtilityGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *llmUtilityGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *llmUtilityGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/aiplatform/apiv1/llm_utility_client_example_test.go b/aiplatform/apiv1/llm_utility_client_example_test.go new file mode 100644 index 000000000000..f5809ea39ee5 --- /dev/null +++ b/aiplatform/apiv1/llm_utility_client_example_test.go @@ -0,0 +1,353 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform_test + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewLlmUtilityClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleLlmUtilityClient_ComputeTokens() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ComputeTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ComputeTokensRequest. + } + resp, err := c.ComputeTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_CountTokens() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CountTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CountTokensRequest. + } + resp, err := c.CountTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLlmUtilityClient_GetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_SetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_TestIamPermissions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLlmUtilityClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLlmUtilityClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLlmUtilityClient_WaitOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/aiplatform/apiv1beta1/aiplatformpb/custom_job.pb.go b/aiplatform/apiv1beta1/aiplatformpb/custom_job.pb.go index f6a82aedb6d5..10cd46234041 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/custom_job.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/custom_job.pb.go @@ -285,6 +285,11 @@ type CustomJobSpec struct { // * AIP_CHECKPOINT_DIR = `//checkpoints/` // * AIP_TENSORBOARD_LOG_DIR = `//logs/` BaseOutputDirectory *GcsDestination `protobuf:"bytes,6,opt,name=base_output_directory,json=baseOutputDirectory,proto3" json:"base_output_directory,omitempty"` + // The ID of the location to store protected artifacts. e.g. us-central1. + // Populate only when the location is different than CustomJob location. + // List of supported locations: + // https://cloud.google.com/vertex-ai/docs/general/locations + ProtectedArtifactLocationId string `protobuf:"bytes,19,opt,name=protected_artifact_location_id,json=protectedArtifactLocationId,proto3" json:"protected_artifact_location_id,omitempty"` // Optional. The name of a Vertex AI // [Tensorboard][google.cloud.aiplatform.v1beta1.Tensorboard] resource to // which this CustomJob will upload Tensorboard logs. Format: @@ -404,6 +409,13 @@ func (x *CustomJobSpec) GetBaseOutputDirectory() *GcsDestination { return nil } +func (x *CustomJobSpec) GetProtectedArtifactLocationId() string { + if x != nil { + return x.ProtectedArtifactLocationId + } + return "" +} + func (x *CustomJobSpec) GetTensorboard() string { if x != nil { return x.Tensorboard @@ -901,7 +913,7 @@ var file_google_cloud_aiplatform_v1beta1_custom_job_proto_rawDesc = []byte{ 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0x89, 0x07, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x6a, 0x6f, 0x62, 0x7d, 0x22, 0xce, 0x07, 0x0a, 0x0d, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6a, 0x0a, 0x16, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x34, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x2e, 0x0a, @@ -936,110 +948,115 @@ var file_google_cloud_aiplatform_v1beta1_custom_job_proto_rawDesc = []byte{ 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x62, 0x61, 0x73, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x44, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, - 0x6f, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x01, 0xfa, - 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x54, 0x65, - 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x0b, 0x74, 0x65, 0x6e, 0x73, 0x6f, - 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, - 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x15, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, - 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x50, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x75, - 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, - 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x75, - 0x6e, 0x22, 0xf1, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x50, 0x6f, 0x6f, 0x6c, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, - 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0d, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x64, 0x0a, - 0x13, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, - 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x79, 0x74, - 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, - 0x52, 0x11, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, - 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x01, 0xe0, 0x41, 0x05, 0x52, - 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0d, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0a, 0x6e, 0x66, 0x73, 0x5f, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x66, 0x73, - 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x6e, 0x66, 0x73, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x70, - 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x69, 0x73, 0x6b, 0x53, - 0x70, 0x65, 0x63, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, - 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, - 0x6e, 0x76, 0x22, 0xe7, 0x01, 0x0a, 0x11, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, - 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x12, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, - 0x74, 0x6f, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x70, - 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x55, - 0x72, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0c, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, - 0x73, 0x12, 0x39, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x63, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x43, 0x0a, 0x1e, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x65, 0x64, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1b, 0x70, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4f, 0x0a, 0x0b, 0x74, 0x65, + 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2d, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x54, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x0b, + 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x12, 0x2f, 0x0a, 0x11, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x17, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x73, 0x68, 0x62, 0x6f, 0x61, 0x72, 0x64, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x61, 0x73, 0x68, 0x62, 0x6f, + 0x61, 0x72, 0x64, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x0a, 0x65, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, + 0x41, 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, + 0x01, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x0d, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x52, 0x75, 0x6e, 0x22, 0xf1, 0x03, 0x0a, 0x0e, 0x57, 0x6f, 0x72, 0x6b, 0x65, + 0x72, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, + 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x64, 0x0a, 0x13, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x11, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x50, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0xb1, 0x01, 0x0a, - 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, - 0x12, 0x40, 0x0a, 0x1d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, - 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x4a, 0x6f, 0x62, 0x4f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x65, - 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, - 0x42, 0xe5, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, - 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, - 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, + 0x01, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x72, + 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x0a, 0x6e, + 0x66, 0x73, 0x5f, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x6e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x69, + 0x73, 0x6b, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x61, 0x73, 0x6b, 0x22, 0x9a, 0x01, 0x0a, 0x0d, 0x43, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x03, + 0x65, 0x6e, 0x76, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, + 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, 0x76, 0x22, 0xe7, 0x01, 0x0a, 0x11, 0x50, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x31, 0x0a, + 0x12, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, + 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x6f, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, + 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x63, + 0x6b, 0x61, 0x67, 0x65, 0x55, 0x72, 0x69, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x79, 0x74, 0x68, + 0x6f, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0c, 0x70, 0x79, 0x74, 0x68, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x03, 0x65, 0x6e, 0x76, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x56, 0x61, 0x72, 0x52, 0x03, 0x65, 0x6e, + 0x76, 0x22, 0xb1, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, + 0x12, 0x33, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x40, 0x0a, 0x1d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6f, 0x6e, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x4f, 0x6e, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x42, 0xe5, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4a, 0x6f, 0x62, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, + 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, + 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/aiplatform/apiv1beta1/aiplatformpb/feature.pb.go b/aiplatform/apiv1beta1/aiplatformpb/feature.pb.go index 39c711cf7b7d..caf77b680959 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/feature.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/feature.pb.go @@ -37,6 +37,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Only applicable for Vertex AI Legacy Feature Store. // An enum representing the value type of a feature. type Feature_ValueType int32 @@ -174,9 +175,8 @@ func (Feature_MonitoringStatsAnomaly_Objective) EnumDescriptor() ([]byte, []int) return file_google_cloud_aiplatform_v1beta1_feature_proto_rawDescGZIP(), []int{0, 0, 0} } -// Feature Metadata information that describes an attribute of an entity type. -// For example, apple is an entity type, and color is a feature that describes -// apple. +// Feature Metadata information. +// For example, color is a feature that describes an apple. type Feature struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -185,6 +185,7 @@ type Feature struct { // Immutable. Name of the Feature. // Format: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}/features/{feature}` + // `projects/{project}/locations/{location}/featureGroups/{feature_group}/features/{feature}` // // The last part feature is assigned by the client. The feature can be up to // 64 characters long and can consist only of ASCII Latin letters A-Z and a-z, @@ -193,11 +194,14 @@ type Feature struct { Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Description of the Feature. Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` - // Immutable. Type of Feature value. + // Immutable. Only applicable for Vertex AI Feature Store (Legacy). + // Type of Feature value. ValueType Feature_ValueType `protobuf:"varint,3,opt,name=value_type,json=valueType,proto3,enum=google.cloud.aiplatform.v1beta1.Feature_ValueType" json:"value_type,omitempty"` - // Output only. Timestamp when this EntityType was created. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // Timestamp when this EntityType was created. CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` - // Output only. Timestamp when this EntityType was most recently updated. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // Timestamp when this EntityType was most recently updated. UpdateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` // Optional. The labels with user-defined metadata to organize your Features. // @@ -214,9 +218,11 @@ type Feature struct { // Used to perform a consistent read-modify-write updates. If not set, a blind // "overwrite" update happens. Etag string `protobuf:"bytes,7,opt,name=etag,proto3" json:"etag,omitempty"` - // Optional. Deprecated: The custom monitoring configuration for this Feature, - // if not set, use the monitoring_config defined for the EntityType this - // Feature belongs to. Only Features with type + // Optional. Only applicable for Vertex AI Feature Store (Legacy). + // Deprecated: The custom monitoring configuration for this Feature, if not + // set, use the monitoring_config defined for the EntityType this Feature + // belongs to. + // Only Features with type // ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) // BOOL, STRING, DOUBLE or INT64 can enable monitoring. // @@ -229,23 +235,30 @@ type Feature struct { // // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature.proto. MonitoringConfig *FeaturestoreMonitoringConfig `protobuf:"bytes,9,opt,name=monitoring_config,json=monitoringConfig,proto3" json:"monitoring_config,omitempty"` - // Optional. If not set, use the monitoring_config defined for the EntityType - // this Feature belongs to. Only Features with type + // Optional. Only applicable for Vertex AI Feature Store (Legacy). + // If not set, use the monitoring_config defined for the EntityType this + // Feature belongs to. + // Only Features with type // ([Feature.ValueType][google.cloud.aiplatform.v1beta1.Feature.ValueType]) // BOOL, STRING, DOUBLE or INT64 can enable monitoring. // // If set to true, all types of data monitoring are disabled despite the // config on EntityType. DisableMonitoring bool `protobuf:"varint,12,opt,name=disable_monitoring,json=disableMonitoring,proto3" json:"disable_monitoring,omitempty"` - // Output only. A list of historical + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // A list of historical // [SnapshotAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis] // stats requested by user, sorted by // [FeatureStatsAnomaly.start_time][google.cloud.aiplatform.v1beta1.FeatureStatsAnomaly.start_time] // descending. MonitoringStats []*FeatureStatsAnomaly `protobuf:"bytes,10,rep,name=monitoring_stats,json=monitoringStats,proto3" json:"monitoring_stats,omitempty"` - // Output only. The list of historical stats and anomalies with specified - // objectives. + // Output only. Only applicable for Vertex AI Feature Store (Legacy). + // The list of historical stats and anomalies with specified objectives. MonitoringStatsAnomalies []*Feature_MonitoringStatsAnomaly `protobuf:"bytes,11,rep,name=monitoring_stats_anomalies,json=monitoringStatsAnomalies,proto3" json:"monitoring_stats_anomalies,omitempty"` + // Only applicable for Vertex AI Feature Store. + // The name of the BigQuery Table/View columnn hosting data for this version. + // If no value is provided, will use feature_id. + VersionColumnName string `protobuf:"bytes,106,opt,name=version_column_name,json=versionColumnName,proto3" json:"version_column_name,omitempty"` } func (x *Feature) Reset() { @@ -358,6 +371,13 @@ func (x *Feature) GetMonitoringStatsAnomalies() []*Feature_MonitoringStatsAnomal return nil } +func (x *Feature) GetVersionColumnName() string { + if x != nil { + return x.VersionColumnName + } + return "" +} + // A list of historical // [SnapshotAnalysis][google.cloud.aiplatform.v1beta1.FeaturestoreMonitoringConfig.SnapshotAnalysis] // or @@ -443,7 +463,7 @@ var file_google_cloud_aiplatform_v1beta1_feature_proto_rawDesc = []byte{ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd9, 0x0c, 0x0a, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x89, 0x0d, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, @@ -493,7 +513,10 @@ var file_google_cloud_aiplatform_v1beta1_feature_proto_rawDesc = []byte{ 0x72, 0x65, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, - 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x1a, 0xd1, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x6e, + 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x6a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x1a, 0xd1, 0x02, 0x0a, 0x16, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x73, 0x41, 0x6e, 0x6f, 0x6d, 0x61, 0x6c, 0x79, 0x12, 0x6c, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, diff --git a/aiplatform/apiv1beta1/aiplatformpb/feature_online_store.pb.go b/aiplatform/apiv1beta1/aiplatformpb/feature_online_store.pb.go index ccf3ed2ddf3d..e02b922463b3 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/feature_online_store.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/feature_online_store.pb.go @@ -319,7 +319,7 @@ func (x *FeatureOnlineStore_Bigtable) GetAutoScaling() *FeatureOnlineStore_Bigta return nil } -// Optimized storage type to replace lightning +// Optimized storage type type FeatureOnlineStore_Optimized struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/aiplatform/apiv1beta1/aiplatformpb/feature_online_store_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/feature_online_store_service.pb.go index 04daa0437855..bbd7e7d18916 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/feature_online_store_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/feature_online_store_service.pb.go @@ -41,7 +41,62 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +// Format of the data in the Feature View. +type FeatureViewDataFormat int32 + +const ( + // Not set. Will be treated as the KeyValue format. + FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED FeatureViewDataFormat = 0 + // Return response data in key-value format. + FeatureViewDataFormat_KEY_VALUE FeatureViewDataFormat = 1 + // Return response data in proto Struct format. + FeatureViewDataFormat_PROTO_STRUCT FeatureViewDataFormat = 2 +) + +// Enum value maps for FeatureViewDataFormat. +var ( + FeatureViewDataFormat_name = map[int32]string{ + 0: "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED", + 1: "KEY_VALUE", + 2: "PROTO_STRUCT", + } + FeatureViewDataFormat_value = map[string]int32{ + "FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED": 0, + "KEY_VALUE": 1, + "PROTO_STRUCT": 2, + } +) + +func (x FeatureViewDataFormat) Enum() *FeatureViewDataFormat { + p := new(FeatureViewDataFormat) + *p = x + return p +} + +func (x FeatureViewDataFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FeatureViewDataFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[0].Descriptor() +} + +func (FeatureViewDataFormat) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[0] +} + +func (x FeatureViewDataFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FeatureViewDataFormat.Descriptor instead. +func (FeatureViewDataFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{0} +} + // Format of the response data. +// +// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature_online_store_service.proto. type FetchFeatureValuesRequest_Format int32 const ( @@ -78,11 +133,11 @@ func (x FetchFeatureValuesRequest_Format) String() string { } func (FetchFeatureValuesRequest_Format) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[0].Descriptor() + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[1].Descriptor() } func (FetchFeatureValuesRequest_Format) Type() protoreflect.EnumType { - return &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[0] + return &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes[1] } func (x FetchFeatureValuesRequest_Format) Number() protoreflect.EnumNumber { @@ -91,9 +146,77 @@ func (x FetchFeatureValuesRequest_Format) Number() protoreflect.EnumNumber { // Deprecated: Use FetchFeatureValuesRequest_Format.Descriptor instead. func (FetchFeatureValuesRequest_Format) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{0, 0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{1, 0} +} + +// Lookup key for a feature view. +type FeatureViewDataKey struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to KeyOneof: + // *FeatureViewDataKey_Key + KeyOneof isFeatureViewDataKey_KeyOneof `protobuf_oneof:"key_oneof"` +} + +func (x *FeatureViewDataKey) Reset() { + *x = FeatureViewDataKey{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FeatureViewDataKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FeatureViewDataKey) ProtoMessage() {} + +func (x *FeatureViewDataKey) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FeatureViewDataKey.ProtoReflect.Descriptor instead. +func (*FeatureViewDataKey) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{0} +} + +func (m *FeatureViewDataKey) GetKeyOneof() isFeatureViewDataKey_KeyOneof { + if m != nil { + return m.KeyOneof + } + return nil +} + +func (x *FeatureViewDataKey) GetKey() string { + if x, ok := x.GetKeyOneof().(*FeatureViewDataKey_Key); ok { + return x.Key + } + return "" +} + +type isFeatureViewDataKey_KeyOneof interface { + isFeatureViewDataKey_KeyOneof() +} + +type FeatureViewDataKey_Key struct { + // String key to use for lookup. + Key string `protobuf:"bytes,1,opt,name=key,proto3,oneof"` } +func (*FeatureViewDataKey_Key) isFeatureViewDataKey_KeyOneof() {} + // Request message for // [FeatureOnlineStoreService.FetchFeatureValues][google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues]. // All the features under the requested feature view will be returned. @@ -103,6 +226,8 @@ type FetchFeatureValuesRequest struct { unknownFields protoimpl.UnknownFields // Entity ID to fetch feature values for. + // Deprecated. Use + // [FetchFeatureValuesRequest.data_key][google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_key]. // // Types that are assignable to EntityId: // *FetchFeatureValuesRequest_Id @@ -110,14 +235,24 @@ type FetchFeatureValuesRequest struct { // Required. FeatureView resource format // `projects/{project}/locations/{location}/featureOnlineStores/{featureOnlineStore}/featureViews/{featureView}` FeatureView string `protobuf:"bytes,1,opt,name=feature_view,json=featureView,proto3" json:"feature_view,omitempty"` + // Optional. The request key to fetch feature values for. + DataKey *FeatureViewDataKey `protobuf:"bytes,6,opt,name=data_key,json=dataKey,proto3" json:"data_key,omitempty"` + // Optional. Response data format. If not set, + // [FeatureViewDataFormat.KEY_VALUE][google.cloud.aiplatform.v1beta1.FeatureViewDataFormat.KEY_VALUE] + // will be used. + DataFormat FeatureViewDataFormat `protobuf:"varint,7,opt,name=data_format,json=dataFormat,proto3,enum=google.cloud.aiplatform.v1beta1.FeatureViewDataFormat" json:"data_format,omitempty"` // Specify response data format. If not set, KeyValue format will be used. + // Deprecated. Use + // [FetchFeatureValuesRequest.data_format][google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_format]. + // + // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature_online_store_service.proto. Format FetchFeatureValuesRequest_Format `protobuf:"varint,5,opt,name=format,proto3,enum=google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest_Format" json:"format,omitempty"` } func (x *FetchFeatureValuesRequest) Reset() { *x = FetchFeatureValuesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -130,7 +265,7 @@ func (x *FetchFeatureValuesRequest) String() string { func (*FetchFeatureValuesRequest) ProtoMessage() {} func (x *FetchFeatureValuesRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -143,7 +278,7 @@ func (x *FetchFeatureValuesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchFeatureValuesRequest.ProtoReflect.Descriptor instead. func (*FetchFeatureValuesRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{1} } func (m *FetchFeatureValuesRequest) GetEntityId() isFetchFeatureValuesRequest_EntityId { @@ -153,6 +288,7 @@ func (m *FetchFeatureValuesRequest) GetEntityId() isFetchFeatureValuesRequest_En return nil } +// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature_online_store_service.proto. func (x *FetchFeatureValuesRequest) GetId() string { if x, ok := x.GetEntityId().(*FetchFeatureValuesRequest_Id); ok { return x.Id @@ -167,6 +303,21 @@ func (x *FetchFeatureValuesRequest) GetFeatureView() string { return "" } +func (x *FetchFeatureValuesRequest) GetDataKey() *FeatureViewDataKey { + if x != nil { + return x.DataKey + } + return nil +} + +func (x *FetchFeatureValuesRequest) GetDataFormat() FeatureViewDataFormat { + if x != nil { + return x.DataFormat + } + return FeatureViewDataFormat_FEATURE_VIEW_DATA_FORMAT_UNSPECIFIED +} + +// Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature_online_store_service.proto. func (x *FetchFeatureValuesRequest) GetFormat() FetchFeatureValuesRequest_Format { if x != nil { return x.Format @@ -181,6 +332,8 @@ type isFetchFeatureValuesRequest_EntityId interface { type FetchFeatureValuesRequest_Id struct { // Simple ID. The whole string will be used as is to identify Entity to // fetch feature values for. + // + // Deprecated: Marked as deprecated in google/cloud/aiplatform/v1beta1/feature_online_store_service.proto. Id string `protobuf:"bytes,3,opt,name=id,proto3,oneof"` } @@ -202,7 +355,7 @@ type FetchFeatureValuesResponse struct { func (x *FetchFeatureValuesResponse) Reset() { *x = FetchFeatureValuesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -215,7 +368,7 @@ func (x *FetchFeatureValuesResponse) String() string { func (*FetchFeatureValuesResponse) ProtoMessage() {} func (x *FetchFeatureValuesResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -228,7 +381,7 @@ func (x *FetchFeatureValuesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use FetchFeatureValuesResponse.ProtoReflect.Descriptor instead. func (*FetchFeatureValuesResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{1} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2} } func (m *FetchFeatureValuesResponse) GetFormat() isFetchFeatureValuesResponse_Format { @@ -297,7 +450,7 @@ type NearestNeighborQuery struct { func (x *NearestNeighborQuery) Reset() { *x = NearestNeighborQuery{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -310,7 +463,7 @@ func (x *NearestNeighborQuery) String() string { func (*NearestNeighborQuery) ProtoMessage() {} func (x *NearestNeighborQuery) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -323,7 +476,7 @@ func (x *NearestNeighborQuery) ProtoReflect() protoreflect.Message { // Deprecated: Use NearestNeighborQuery.ProtoReflect.Descriptor instead. func (*NearestNeighborQuery) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{3} } func (m *NearestNeighborQuery) GetInstance() isNearestNeighborQuery_Instance { @@ -417,7 +570,7 @@ type SearchNearestEntitiesRequest struct { func (x *SearchNearestEntitiesRequest) Reset() { *x = SearchNearestEntitiesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -430,7 +583,7 @@ func (x *SearchNearestEntitiesRequest) String() string { func (*SearchNearestEntitiesRequest) ProtoMessage() {} func (x *SearchNearestEntitiesRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -443,7 +596,7 @@ func (x *SearchNearestEntitiesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchNearestEntitiesRequest.ProtoReflect.Descriptor instead. func (*SearchNearestEntitiesRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{4} } func (x *SearchNearestEntitiesRequest) GetFeatureView() string { @@ -480,7 +633,7 @@ type NearestNeighbors struct { func (x *NearestNeighbors) Reset() { *x = NearestNeighbors{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -493,7 +646,7 @@ func (x *NearestNeighbors) String() string { func (*NearestNeighbors) ProtoMessage() {} func (x *NearestNeighbors) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -506,7 +659,7 @@ func (x *NearestNeighbors) ProtoReflect() protoreflect.Message { // Deprecated: Use NearestNeighbors.ProtoReflect.Descriptor instead. func (*NearestNeighbors) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{4} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{5} } func (x *NearestNeighbors) GetNeighbors() []*NearestNeighbors_Neighbor { @@ -530,7 +683,7 @@ type SearchNearestEntitiesResponse struct { func (x *SearchNearestEntitiesResponse) Reset() { *x = SearchNearestEntitiesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -543,7 +696,7 @@ func (x *SearchNearestEntitiesResponse) String() string { func (*SearchNearestEntitiesResponse) ProtoMessage() {} func (x *SearchNearestEntitiesResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -556,7 +709,7 @@ func (x *SearchNearestEntitiesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchNearestEntitiesResponse.ProtoReflect.Descriptor instead. func (*SearchNearestEntitiesResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{5} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{6} } func (x *SearchNearestEntitiesResponse) GetNearestNeighbors() *NearestNeighbors { @@ -580,7 +733,7 @@ type FetchFeatureValuesResponse_FeatureNameValuePairList struct { func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) Reset() { *x = FetchFeatureValuesResponse_FeatureNameValuePairList{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -593,7 +746,7 @@ func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) String() string { func (*FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoMessage() {} func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -606,7 +759,7 @@ func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) ProtoReflect() pro // Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList.ProtoReflect.Descriptor instead. func (*FetchFeatureValuesResponse_FeatureNameValuePairList) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{1, 0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0} } func (x *FetchFeatureValuesResponse_FeatureNameValuePairList) GetFeatures() []*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair { @@ -632,7 +785,7 @@ type FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair st func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Reset() { *x = FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -645,7 +798,7 @@ func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePai func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoMessage() {} func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -658,7 +811,7 @@ func (x *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePai // Deprecated: Use FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair.ProtoReflect.Descriptor instead. func (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{1, 0, 0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0, 0} } func (m *FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair) GetData() isFetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Data { @@ -707,7 +860,7 @@ type NearestNeighborQuery_Embedding struct { func (x *NearestNeighborQuery_Embedding) Reset() { *x = NearestNeighborQuery_Embedding{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -720,7 +873,7 @@ func (x *NearestNeighborQuery_Embedding) String() string { func (*NearestNeighborQuery_Embedding) ProtoMessage() {} func (x *NearestNeighborQuery_Embedding) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -733,7 +886,7 @@ func (x *NearestNeighborQuery_Embedding) ProtoReflect() protoreflect.Message { // Deprecated: Use NearestNeighborQuery_Embedding.ProtoReflect.Descriptor instead. func (*NearestNeighborQuery_Embedding) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 0} } func (x *NearestNeighborQuery_Embedding) GetValue() []float32 { @@ -766,7 +919,7 @@ type NearestNeighborQuery_StringFilter struct { func (x *NearestNeighborQuery_StringFilter) Reset() { *x = NearestNeighborQuery_StringFilter{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +932,7 @@ func (x *NearestNeighborQuery_StringFilter) String() string { func (*NearestNeighborQuery_StringFilter) ProtoMessage() {} func (x *NearestNeighborQuery_StringFilter) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,7 +945,7 @@ func (x *NearestNeighborQuery_StringFilter) ProtoReflect() protoreflect.Message // Deprecated: Use NearestNeighborQuery_StringFilter.ProtoReflect.Descriptor instead. func (*NearestNeighborQuery_StringFilter) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 1} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 1} } func (x *NearestNeighborQuery_StringFilter) GetName() string { @@ -837,7 +990,7 @@ type NearestNeighborQuery_Parameters struct { func (x *NearestNeighborQuery_Parameters) Reset() { *x = NearestNeighborQuery_Parameters{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -850,7 +1003,7 @@ func (x *NearestNeighborQuery_Parameters) String() string { func (*NearestNeighborQuery_Parameters) ProtoMessage() {} func (x *NearestNeighborQuery_Parameters) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -863,7 +1016,7 @@ func (x *NearestNeighborQuery_Parameters) ProtoReflect() protoreflect.Message { // Deprecated: Use NearestNeighborQuery_Parameters.ProtoReflect.Descriptor instead. func (*NearestNeighborQuery_Parameters) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{2, 2} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{3, 2} } func (x *NearestNeighborQuery_Parameters) GetApproximateNeighborCandidates() int32 { @@ -900,7 +1053,7 @@ type NearestNeighbors_Neighbor struct { func (x *NearestNeighbors_Neighbor) Reset() { *x = NearestNeighbors_Neighbor{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -913,7 +1066,7 @@ func (x *NearestNeighbors_Neighbor) String() string { func (*NearestNeighbors_Neighbor) ProtoMessage() {} func (x *NearestNeighbors_Neighbor) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -926,7 +1079,7 @@ func (x *NearestNeighbors_Neighbor) ProtoReflect() protoreflect.Message { // Deprecated: Use NearestNeighbors_Neighbor.ProtoReflect.Descriptor instead. func (*NearestNeighbors_Neighbor) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{4, 0} + return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescGZIP(), []int{5, 0} } func (x *NearestNeighbors_Neighbor) GetEntityId() string { @@ -972,164 +1125,186 @@ var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawD 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x02, 0x0a, 0x19, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, - 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x59, 0x0a, 0x06, 0x66, - 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, - 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x41, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x12, 0x16, 0x0a, 0x12, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, 0x59, 0x5f, - 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, 0x54, 0x4f, - 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x65, 0x6e, 0x74, - 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x22, 0xfb, 0x03, 0x0a, 0x1a, 0x46, 0x65, 0x74, 0x63, 0x68, - 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0a, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x35, 0x0a, 0x12, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, + 0x12, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, + 0x22, 0xe9, 0x03, 0x0a, 0x19, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, + 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x53, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x07, 0x64, 0x61, 0x74, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x5c, 0x0a, 0x0b, 0x64, + 0x61, 0x74, 0x61, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, + 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, + 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x5d, 0x0a, 0x06, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, - 0x00, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x9d, 0x02, 0x0a, 0x18, 0x46, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, - 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x69, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, - 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, - 0x79, 0x0a, 0x14, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x22, 0xc3, 0x06, 0x0a, 0x14, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, - 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x22, 0x0a, - 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, - 0x64, 0x12, 0x64, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x45, 0x6d, 0x62, 0x65, - 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x6e, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, - 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x25, 0x70, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x70, 0x65, 0x72, 0x43, 0x72, 0x6f, 0x77, - 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x65, 0x0a, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x73, 0x1a, 0x26, 0x0a, 0x09, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x02, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x65, - 0x6e, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x79, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x1a, 0x9b, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x4b, 0x0a, 0x1f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x1d, 0x61, - 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1a, - 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x6c, 0x65, 0x61, 0x66, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, - 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf5, 0x01, 0x0a, 0x1c, 0x53, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x66, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, - 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x12, 0x50, 0x0a, - 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x45, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, + 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x02, 0x1a, 0x02, 0x18, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x22, 0xfb, 0x03, 0x0a, + 0x1a, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, 0x0a, 0x0a, 0x6b, + 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x6b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x1a, 0x9d, 0x02, 0x0a, 0x18, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x85, 0x01, + 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, + 0x69, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x52, 0x08, 0x66, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x73, 0x1a, 0x79, 0x0a, 0x14, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x50, 0x61, 0x69, 0x72, 0x12, 0x45, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0xc3, 0x06, 0x0a, 0x14, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, - 0x31, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x65, - 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x10, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x46, 0x75, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x22, 0x9b, 0x02, 0x0a, 0x10, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x58, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, + 0x65, 0x72, 0x79, 0x12, 0x22, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x08, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x64, 0x0a, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, - 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2e, 0x4e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x08, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x1b, - 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x67, 0x0a, 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x2e, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x48, 0x00, 0x52, 0x09, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x2a, 0x0a, + 0x0e, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x6e, 0x0a, 0x0e, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x55, 0x0a, 0x25, 0x70, 0x65, 0x72, + 0x5f, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x21, 0x70, + 0x65, 0x72, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x65, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x26, 0x0a, 0x09, 0x45, 0x6d, 0x62, 0x65, 0x64, + 0x64, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x02, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, + 0x75, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, + 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x24, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x79, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x9b, 0x01, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x4b, 0x0a, 0x1f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, + 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x63, 0x61, + 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x1d, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x43, 0x61, 0x6e, 0x64, 0x69, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x40, 0x0a, 0x1a, 0x6c, 0x65, 0x61, 0x66, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x6c, 0x65, 0x61, + 0x66, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0xf5, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, + 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x50, 0x0a, 0x0c, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, + 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, + 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x52, 0x0b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x69, 0x65, 0x77, 0x12, 0x50, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x22, 0x7f, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, - 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, - 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x52, - 0x10, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x32, 0x90, 0x05, 0x0a, 0x19, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, - 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x94, 0x02, 0x0a, 0x12, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x12, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, + 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x46, 0x75, + 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x9b, 0x02, 0x0a, 0x10, 0x4e, 0x65, 0x61, + 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x58, 0x0a, + 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x1a, 0xac, 0x01, 0x0a, 0x08, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x67, 0x0a, + 0x11, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4b, 0x65, 0x79, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x7f, 0x0a, 0x1d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5e, 0x0a, 0x11, 0x6e, 0x65, 0x61, 0x72, 0x65, + 0x73, 0x74, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x84, 0x01, 0xda, 0x41, 0x10, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, - 0x77, 0x2c, 0x20, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x3a, 0x01, 0x2a, 0x22, 0x66, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x52, 0x10, 0x6e, 0x65, 0x61, 0x72, 0x65, 0x73, 0x74, 0x4e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x2a, 0x62, 0x0a, 0x15, 0x46, 0x65, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x56, 0x69, 0x65, 0x77, 0x44, 0x61, 0x74, 0x61, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, + 0x12, 0x28, 0x0a, 0x24, 0x46, 0x45, 0x41, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x56, 0x49, 0x45, 0x57, + 0x5f, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4b, 0x45, + 0x59, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x02, 0x32, 0x96, 0x05, 0x0a, 0x19, + 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x9a, 0x02, 0x0a, 0x12, 0x46, 0x65, + 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x65, 0x74, 0x63, 0x68, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0xda, 0x41, 0x16, 0x66, + 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x2c, 0x20, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x6b, 0x3a, 0x01, 0x2a, 0x22, 0x66, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x66, 0x65, @@ -1189,47 +1364,51 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_raw return file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_goTypes = []interface{}{ - (FetchFeatureValuesRequest_Format)(0), // 0: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.Format - (*FetchFeatureValuesRequest)(nil), // 1: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest - (*FetchFeatureValuesResponse)(nil), // 2: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse - (*NearestNeighborQuery)(nil), // 3: google.cloud.aiplatform.v1beta1.NearestNeighborQuery - (*SearchNearestEntitiesRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest - (*NearestNeighbors)(nil), // 5: google.cloud.aiplatform.v1beta1.NearestNeighbors - (*SearchNearestEntitiesResponse)(nil), // 6: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse - (*FetchFeatureValuesResponse_FeatureNameValuePairList)(nil), // 7: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList - (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair)(nil), // 8: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair - (*NearestNeighborQuery_Embedding)(nil), // 9: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Embedding - (*NearestNeighborQuery_StringFilter)(nil), // 10: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.StringFilter - (*NearestNeighborQuery_Parameters)(nil), // 11: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Parameters - (*NearestNeighbors_Neighbor)(nil), // 12: google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor - (*structpb.Struct)(nil), // 13: google.protobuf.Struct - (*FeatureValue)(nil), // 14: google.cloud.aiplatform.v1beta1.FeatureValue + (FeatureViewDataFormat)(0), // 0: google.cloud.aiplatform.v1beta1.FeatureViewDataFormat + (FetchFeatureValuesRequest_Format)(0), // 1: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.Format + (*FeatureViewDataKey)(nil), // 2: google.cloud.aiplatform.v1beta1.FeatureViewDataKey + (*FetchFeatureValuesRequest)(nil), // 3: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest + (*FetchFeatureValuesResponse)(nil), // 4: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse + (*NearestNeighborQuery)(nil), // 5: google.cloud.aiplatform.v1beta1.NearestNeighborQuery + (*SearchNearestEntitiesRequest)(nil), // 6: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest + (*NearestNeighbors)(nil), // 7: google.cloud.aiplatform.v1beta1.NearestNeighbors + (*SearchNearestEntitiesResponse)(nil), // 8: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse + (*FetchFeatureValuesResponse_FeatureNameValuePairList)(nil), // 9: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList + (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair)(nil), // 10: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair + (*NearestNeighborQuery_Embedding)(nil), // 11: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Embedding + (*NearestNeighborQuery_StringFilter)(nil), // 12: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.StringFilter + (*NearestNeighborQuery_Parameters)(nil), // 13: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Parameters + (*NearestNeighbors_Neighbor)(nil), // 14: google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor + (*structpb.Struct)(nil), // 15: google.protobuf.Struct + (*FeatureValue)(nil), // 16: google.cloud.aiplatform.v1beta1.FeatureValue } var file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_depIdxs = []int32{ - 0, // 0: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.format:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.Format - 7, // 1: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.key_values:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList - 13, // 2: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.proto_struct:type_name -> google.protobuf.Struct - 9, // 3: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.embedding:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Embedding - 10, // 4: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.string_filters:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.StringFilter - 11, // 5: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.parameters:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Parameters - 3, // 6: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest.query:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery - 12, // 7: google.cloud.aiplatform.v1beta1.NearestNeighbors.neighbors:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor - 5, // 8: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse.nearest_neighbors:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighbors - 8, // 9: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.features:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair - 14, // 10: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair.value:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue - 2, // 11: google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor.entity_key_values:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse - 1, // 12: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest - 4, // 13: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities:input_type -> google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest - 2, // 14: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues:output_type -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse - 6, // 15: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities:output_type -> google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse - 14, // [14:16] is the sub-list for method output_type - 12, // [12:14] is the sub-list for method input_type - 12, // [12:12] is the sub-list for extension type_name - 12, // [12:12] is the sub-list for extension extendee - 0, // [0:12] is the sub-list for field type_name + 2, // 0: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_key:type_name -> google.cloud.aiplatform.v1beta1.FeatureViewDataKey + 0, // 1: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.data_format:type_name -> google.cloud.aiplatform.v1beta1.FeatureViewDataFormat + 1, // 2: google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.format:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest.Format + 9, // 3: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.key_values:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList + 15, // 4: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.proto_struct:type_name -> google.protobuf.Struct + 11, // 5: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.embedding:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Embedding + 12, // 6: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.string_filters:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.StringFilter + 13, // 7: google.cloud.aiplatform.v1beta1.NearestNeighborQuery.parameters:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery.Parameters + 5, // 8: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest.query:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighborQuery + 14, // 9: google.cloud.aiplatform.v1beta1.NearestNeighbors.neighbors:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor + 7, // 10: google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse.nearest_neighbors:type_name -> google.cloud.aiplatform.v1beta1.NearestNeighbors + 10, // 11: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.features:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair + 16, // 12: google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse.FeatureNameValuePairList.FeatureNameValuePair.value:type_name -> google.cloud.aiplatform.v1beta1.FeatureValue + 4, // 13: google.cloud.aiplatform.v1beta1.NearestNeighbors.Neighbor.entity_key_values:type_name -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse + 3, // 14: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues:input_type -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesRequest + 6, // 15: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities:input_type -> google.cloud.aiplatform.v1beta1.SearchNearestEntitiesRequest + 4, // 16: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.FetchFeatureValues:output_type -> google.cloud.aiplatform.v1beta1.FetchFeatureValuesResponse + 8, // 17: google.cloud.aiplatform.v1beta1.FeatureOnlineStoreService.SearchNearestEntities:output_type -> google.cloud.aiplatform.v1beta1.SearchNearestEntitiesResponse + 16, // [16:18] is the sub-list for method output_type + 14, // [14:16] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_init() } @@ -1240,7 +1419,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini file_google_cloud_aiplatform_v1beta1_featurestore_online_service_proto_init() if !protoimpl.UnsafeEnabled { file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchFeatureValuesRequest); i { + switch v := v.(*FeatureViewDataKey); i { case 0: return &v.state case 1: @@ -1252,7 +1431,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchFeatureValuesResponse); i { + switch v := v.(*FetchFeatureValuesRequest); i { case 0: return &v.state case 1: @@ -1264,7 +1443,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NearestNeighborQuery); i { + switch v := v.(*FetchFeatureValuesResponse); i { case 0: return &v.state case 1: @@ -1276,7 +1455,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchNearestEntitiesRequest); i { + switch v := v.(*NearestNeighborQuery); i { case 0: return &v.state case 1: @@ -1288,7 +1467,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NearestNeighbors); i { + switch v := v.(*SearchNearestEntitiesRequest); i { case 0: return &v.state case 1: @@ -1300,7 +1479,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchNearestEntitiesResponse); i { + switch v := v.(*NearestNeighbors); i { case 0: return &v.state case 1: @@ -1312,7 +1491,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList); i { + switch v := v.(*SearchNearestEntitiesResponse); i { case 0: return &v.state case 1: @@ -1324,7 +1503,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair); i { + switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList); i { case 0: return &v.state case 1: @@ -1336,7 +1515,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NearestNeighborQuery_Embedding); i { + switch v := v.(*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair); i { case 0: return &v.state case 1: @@ -1348,7 +1527,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NearestNeighborQuery_StringFilter); i { + switch v := v.(*NearestNeighborQuery_Embedding); i { case 0: return &v.state case 1: @@ -1360,7 +1539,7 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NearestNeighborQuery_Parameters); i { + switch v := v.(*NearestNeighborQuery_StringFilter); i { case 0: return &v.state case 1: @@ -1372,6 +1551,18 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NearestNeighborQuery_Parameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NearestNeighbors_Neighbor); i { case 0: return &v.state @@ -1385,17 +1576,20 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini } } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[0].OneofWrappers = []interface{}{ - (*FetchFeatureValuesRequest_Id)(nil), + (*FeatureViewDataKey_Key)(nil), } file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[1].OneofWrappers = []interface{}{ + (*FetchFeatureValuesRequest_Id)(nil), + } + file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2].OneofWrappers = []interface{}{ (*FetchFeatureValuesResponse_KeyValues)(nil), (*FetchFeatureValuesResponse_ProtoStruct)(nil), } - file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[2].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[3].OneofWrappers = []interface{}{ (*NearestNeighborQuery_EntityId)(nil), (*NearestNeighborQuery_Embedding_)(nil), } - file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[7].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_msgTypes[8].OneofWrappers = []interface{}{ (*FetchFeatureValuesResponse_FeatureNameValuePairList_FeatureNameValuePair_Value)(nil), } type x struct{} @@ -1403,8 +1597,8 @@ func file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_ini File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_feature_online_store_service_proto_rawDesc, - NumEnums: 1, - NumMessages: 12, + NumEnums: 2, + NumMessages: 13, NumExtensions: 0, NumServices: 1, }, diff --git a/aiplatform/apiv1beta1/aiplatformpb/featurestore_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/featurestore_service.pb.go index 8938ec859726..b31500ed4e01 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/featurestore_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/featurestore_service.pb.go @@ -1807,6 +1807,11 @@ type CreateFeatureRequest struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Required. The resource name of the EntityType or FeatureGroup to create a + // Feature. Format for entity_type as parent: + // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: + // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Required. The Feature to create. Feature *Feature `protobuf:"bytes,2,opt,name=feature,proto3" json:"feature,omitempty"` @@ -1998,8 +2003,9 @@ type GetFeatureRequest struct { unknownFields protoimpl.UnknownFields // Required. The name of the Feature resource. - // Format: + // Format for entity_type as parent: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } @@ -2053,8 +2059,9 @@ type ListFeaturesRequest struct { unknownFields protoimpl.UnknownFields // Required. The resource name of the Location to list Features. - // Format: + // Format for entity_type as parent: // `projects/{project}/locations/{location}/featurestores/{featurestore}/entityTypes/{entity_type}` + // Format for feature_group as parent: // `projects/{project}/locations/{location}/featureGroups/{feature_group}` Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` // Lists the Features that match the filter expression. The following @@ -2085,10 +2092,14 @@ type ListFeaturesRequest struct { PageSize int32 `protobuf:"varint,3,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` // A page token, received from a previous // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] + // call or + // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures] // call. Provide this to retrieve the subsequent page. // // When paginating, all other parameters provided to // [FeaturestoreService.ListFeatures][google.cloud.aiplatform.v1beta1.FeaturestoreService.ListFeatures] + // or or + // [FeatureRegistryService.ListFeatures][google.cloud.aiplatform.v1beta1.FeatureRegistryService.ListFeatures] // must match the call that provided the page token. PageToken string `protobuf:"bytes,4,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // A comma-separated list of fields to order by, sorted in ascending order. @@ -2102,6 +2113,7 @@ type ListFeaturesRequest struct { OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` // Mask specifying which fields to read. ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,6,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` + // Only applicable for Vertex AI Feature Store (Legacy). // If set, return the most recent // [ListFeaturesRequest.latest_stats_count][google.cloud.aiplatform.v1beta1.ListFeaturesRequest.latest_stats_count] // of stats for each Feature in response. Valid value is [0, 10]. If number of @@ -2500,7 +2512,7 @@ type UpdateFeatureRequest struct { // // * `description` // * `labels` - // * `disable_monitoring` + // * `disable_monitoring` (Not supported for FeatureRegistry Feature) UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` } diff --git a/aiplatform/apiv1beta1/aiplatformpb/index.pb.go b/aiplatform/apiv1beta1/aiplatformpb/index.pb.go index 50c944db59f4..e72995f0cdae 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/index.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/index.pb.go @@ -94,6 +94,75 @@ func (Index_IndexUpdateMethod) EnumDescriptor() ([]byte, []int) { return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP(), []int{0, 0} } +// Which comparison operator to use. Should be specified for queries only; +// specifying this for a datapoint is an error. +// +// Datapoints for which Operator is true relative to the query's Value +// field will be allowlisted. +type IndexDatapoint_NumericRestriction_Operator int32 + +const ( + // Default value of the enum. + IndexDatapoint_NumericRestriction_OPERATOR_UNSPECIFIED IndexDatapoint_NumericRestriction_Operator = 0 + // Datapoints are eligible iff their value is < the query's. + IndexDatapoint_NumericRestriction_LESS IndexDatapoint_NumericRestriction_Operator = 1 + // Datapoints are eligible iff their value is <= the query's. + IndexDatapoint_NumericRestriction_LESS_EQUAL IndexDatapoint_NumericRestriction_Operator = 2 + // Datapoints are eligible iff their value is == the query's. + IndexDatapoint_NumericRestriction_EQUAL IndexDatapoint_NumericRestriction_Operator = 3 + // Datapoints are eligible iff their value is >= the query's. + IndexDatapoint_NumericRestriction_GREATER_EQUAL IndexDatapoint_NumericRestriction_Operator = 4 + // Datapoints are eligible iff their value is > the query's. + IndexDatapoint_NumericRestriction_GREATER IndexDatapoint_NumericRestriction_Operator = 5 +) + +// Enum value maps for IndexDatapoint_NumericRestriction_Operator. +var ( + IndexDatapoint_NumericRestriction_Operator_name = map[int32]string{ + 0: "OPERATOR_UNSPECIFIED", + 1: "LESS", + 2: "LESS_EQUAL", + 3: "EQUAL", + 4: "GREATER_EQUAL", + 5: "GREATER", + } + IndexDatapoint_NumericRestriction_Operator_value = map[string]int32{ + "OPERATOR_UNSPECIFIED": 0, + "LESS": 1, + "LESS_EQUAL": 2, + "EQUAL": 3, + "GREATER_EQUAL": 4, + "GREATER": 5, + } +) + +func (x IndexDatapoint_NumericRestriction_Operator) Enum() *IndexDatapoint_NumericRestriction_Operator { + p := new(IndexDatapoint_NumericRestriction_Operator) + *p = x + return p +} + +func (x IndexDatapoint_NumericRestriction_Operator) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IndexDatapoint_NumericRestriction_Operator) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_aiplatform_v1beta1_index_proto_enumTypes[1].Descriptor() +} + +func (IndexDatapoint_NumericRestriction_Operator) Type() protoreflect.EnumType { + return &file_google_cloud_aiplatform_v1beta1_index_proto_enumTypes[1] +} + +func (x IndexDatapoint_NumericRestriction_Operator) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IndexDatapoint_NumericRestriction_Operator.Descriptor instead. +func (IndexDatapoint_NumericRestriction_Operator) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP(), []int{1, 1, 0} +} + // A representation of a collection of database items organized in a way that // allows for approximate nearest neighbor (a.k.a ANN) algorithms search. type Index struct { @@ -297,6 +366,10 @@ type IndexDatapoint struct { // eligible for matching. This uses categorical tokens. See: // https://cloud.google.com/vertex-ai/docs/matching-engine/filtering Restricts []*IndexDatapoint_Restriction `protobuf:"bytes,4,rep,name=restricts,proto3" json:"restricts,omitempty"` + // Optional. List of Restrict of the datapoint, used to perform "restricted + // searches" where boolean rule are used to filter the subset of the database + // eligible for matching. This uses numeric comparisons. + NumericRestricts []*IndexDatapoint_NumericRestriction `protobuf:"bytes,6,rep,name=numeric_restricts,json=numericRestricts,proto3" json:"numeric_restricts,omitempty"` // Optional. CrowdingTag of the datapoint, the number of neighbors to return // in each crowding can be configured during query. CrowdingTag *IndexDatapoint_CrowdingTag `protobuf:"bytes,5,opt,name=crowding_tag,json=crowdingTag,proto3" json:"crowding_tag,omitempty"` @@ -355,6 +428,13 @@ func (x *IndexDatapoint) GetRestricts() []*IndexDatapoint_Restriction { return nil } +func (x *IndexDatapoint) GetNumericRestricts() []*IndexDatapoint_NumericRestriction { + if x != nil { + return x.NumericRestricts + } + return nil +} + func (x *IndexDatapoint) GetCrowdingTag() *IndexDatapoint_CrowdingTag { if x != nil { return x.CrowdingTag @@ -488,6 +568,127 @@ func (x *IndexDatapoint_Restriction) GetDenyList() []string { return nil } +// This field allows restricts to be based on numeric comparisons rather +// than categorical tokens. +type IndexDatapoint_NumericRestriction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of Value must be consistent for all datapoints with a given + // namespace name. This is verified at runtime. + // + // Types that are assignable to Value: + // *IndexDatapoint_NumericRestriction_ValueInt + // *IndexDatapoint_NumericRestriction_ValueFloat + // *IndexDatapoint_NumericRestriction_ValueDouble + Value isIndexDatapoint_NumericRestriction_Value `protobuf_oneof:"Value"` + // The namespace of this restriction. e.g.: cost. + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + // This MUST be specified for queries and must NOT be specified for + // datapoints. + Op IndexDatapoint_NumericRestriction_Operator `protobuf:"varint,5,opt,name=op,proto3,enum=google.cloud.aiplatform.v1beta1.IndexDatapoint_NumericRestriction_Operator" json:"op,omitempty"` +} + +func (x *IndexDatapoint_NumericRestriction) Reset() { + *x = IndexDatapoint_NumericRestriction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexDatapoint_NumericRestriction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexDatapoint_NumericRestriction) ProtoMessage() {} + +func (x *IndexDatapoint_NumericRestriction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IndexDatapoint_NumericRestriction.ProtoReflect.Descriptor instead. +func (*IndexDatapoint_NumericRestriction) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP(), []int{1, 1} +} + +func (m *IndexDatapoint_NumericRestriction) GetValue() isIndexDatapoint_NumericRestriction_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *IndexDatapoint_NumericRestriction) GetValueInt() int64 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueInt); ok { + return x.ValueInt + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetValueFloat() float32 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueFloat); ok { + return x.ValueFloat + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetValueDouble() float64 { + if x, ok := x.GetValue().(*IndexDatapoint_NumericRestriction_ValueDouble); ok { + return x.ValueDouble + } + return 0 +} + +func (x *IndexDatapoint_NumericRestriction) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *IndexDatapoint_NumericRestriction) GetOp() IndexDatapoint_NumericRestriction_Operator { + if x != nil { + return x.Op + } + return IndexDatapoint_NumericRestriction_OPERATOR_UNSPECIFIED +} + +type isIndexDatapoint_NumericRestriction_Value interface { + isIndexDatapoint_NumericRestriction_Value() +} + +type IndexDatapoint_NumericRestriction_ValueInt struct { + // Represents 64 bit integer. + ValueInt int64 `protobuf:"varint,2,opt,name=value_int,json=valueInt,proto3,oneof"` +} + +type IndexDatapoint_NumericRestriction_ValueFloat struct { + // Represents 32 bit float. + ValueFloat float32 `protobuf:"fixed32,3,opt,name=value_float,json=valueFloat,proto3,oneof"` +} + +type IndexDatapoint_NumericRestriction_ValueDouble struct { + // Represents 64 bit float. + ValueDouble float64 `protobuf:"fixed64,4,opt,name=value_double,json=valueDouble,proto3,oneof"` +} + +func (*IndexDatapoint_NumericRestriction_ValueInt) isIndexDatapoint_NumericRestriction_Value() {} + +func (*IndexDatapoint_NumericRestriction_ValueFloat) isIndexDatapoint_NumericRestriction_Value() {} + +func (*IndexDatapoint_NumericRestriction_ValueDouble) isIndexDatapoint_NumericRestriction_Value() {} + // Crowding tag is a constraint on a neighbor list produced by nearest // neighbor search requiring that no more than some value k' of the k // neighbors returned have the same value of crowding_attribute. @@ -507,7 +708,7 @@ type IndexDatapoint_CrowdingTag struct { func (x *IndexDatapoint_CrowdingTag) Reset() { *x = IndexDatapoint_CrowdingTag{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -520,7 +721,7 @@ func (x *IndexDatapoint_CrowdingTag) String() string { func (*IndexDatapoint_CrowdingTag) ProtoMessage() {} func (x *IndexDatapoint_CrowdingTag) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -533,7 +734,7 @@ func (x *IndexDatapoint_CrowdingTag) ProtoReflect() protoreflect.Message { // Deprecated: Use IndexDatapoint_CrowdingTag.ProtoReflect.Descriptor instead. func (*IndexDatapoint_CrowdingTag) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP(), []int{1, 1} + return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP(), []int{1, 2} } func (x *IndexDatapoint_CrowdingTag) GetCrowdingAttribute() string { @@ -633,7 +834,7 @@ var file_google_cloud_aiplatform_v1beta1_index_proto_rawDesc = []byte{ 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, - 0x7d, 0x22, 0xd0, 0x03, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, + 0x7d, 0x22, 0xb3, 0x07, 0x0a, 0x0e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x0e, @@ -645,44 +846,75 @@ var file_google_cloud_aiplatform_v1beta1_index_proto_rawDesc = []byte{ 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x63, 0x0a, 0x0c, 0x63, 0x72, 0x6f, 0x77, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, - 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x0b, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x1a, 0x67, 0x0a, - 0x0b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, - 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6e, - 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, - 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x3c, 0x0a, 0x0b, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, - 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x53, 0x74, 0x61, - 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, - 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, - 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x49, 0x6e, - 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, - 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, - 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x74, 0x0a, 0x11, 0x6e, 0x75, 0x6d, 0x65, + 0x72, 0x69, 0x63, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6e, 0x75, + 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x73, 0x12, 0x63, + 0x0a, 0x0c, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x43, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, + 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, + 0x54, 0x61, 0x67, 0x1a, 0x67, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0xea, 0x02, 0x0a, + 0x12, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x69, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x49, + 0x6e, 0x74, 0x12, 0x21, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x02, 0x6f, 0x70, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x44, 0x61, 0x74, 0x61, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4e, 0x75, 0x6d, 0x65, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x02, 0x6f, 0x70, 0x22, 0x69, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x4c, + 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x51, + 0x55, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x51, 0x55, 0x41, 0x4c, 0x10, 0x03, + 0x12, 0x11, 0x0a, 0x0d, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x5f, 0x45, 0x51, 0x55, 0x41, + 0x4c, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x47, 0x52, 0x45, 0x41, 0x54, 0x45, 0x52, 0x10, 0x05, + 0x42, 0x07, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x3c, 0x0a, 0x0b, 0x43, 0x72, 0x6f, + 0x77, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x61, 0x67, 0x12, 0x2d, 0x0a, 0x12, 0x63, 0x72, 0x6f, 0x77, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x63, 0x72, 0x6f, 0x77, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x22, 0x5e, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0c, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x26, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x72, + 0x64, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x0a, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -697,37 +929,41 @@ func file_google_cloud_aiplatform_v1beta1_index_proto_rawDescGZIP() []byte { return file_google_cloud_aiplatform_v1beta1_index_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_index_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_google_cloud_aiplatform_v1beta1_index_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_google_cloud_aiplatform_v1beta1_index_proto_goTypes = []interface{}{ - (Index_IndexUpdateMethod)(0), // 0: google.cloud.aiplatform.v1beta1.Index.IndexUpdateMethod - (*Index)(nil), // 1: google.cloud.aiplatform.v1beta1.Index - (*IndexDatapoint)(nil), // 2: google.cloud.aiplatform.v1beta1.IndexDatapoint - (*IndexStats)(nil), // 3: google.cloud.aiplatform.v1beta1.IndexStats - nil, // 4: google.cloud.aiplatform.v1beta1.Index.LabelsEntry - (*IndexDatapoint_Restriction)(nil), // 5: google.cloud.aiplatform.v1beta1.IndexDatapoint.Restriction - (*IndexDatapoint_CrowdingTag)(nil), // 6: google.cloud.aiplatform.v1beta1.IndexDatapoint.CrowdingTag - (*structpb.Value)(nil), // 7: google.protobuf.Value - (*DeployedIndexRef)(nil), // 8: google.cloud.aiplatform.v1beta1.DeployedIndexRef - (*timestamppb.Timestamp)(nil), // 9: google.protobuf.Timestamp - (*EncryptionSpec)(nil), // 10: google.cloud.aiplatform.v1beta1.EncryptionSpec + (Index_IndexUpdateMethod)(0), // 0: google.cloud.aiplatform.v1beta1.Index.IndexUpdateMethod + (IndexDatapoint_NumericRestriction_Operator)(0), // 1: google.cloud.aiplatform.v1beta1.IndexDatapoint.NumericRestriction.Operator + (*Index)(nil), // 2: google.cloud.aiplatform.v1beta1.Index + (*IndexDatapoint)(nil), // 3: google.cloud.aiplatform.v1beta1.IndexDatapoint + (*IndexStats)(nil), // 4: google.cloud.aiplatform.v1beta1.IndexStats + nil, // 5: google.cloud.aiplatform.v1beta1.Index.LabelsEntry + (*IndexDatapoint_Restriction)(nil), // 6: google.cloud.aiplatform.v1beta1.IndexDatapoint.Restriction + (*IndexDatapoint_NumericRestriction)(nil), // 7: google.cloud.aiplatform.v1beta1.IndexDatapoint.NumericRestriction + (*IndexDatapoint_CrowdingTag)(nil), // 8: google.cloud.aiplatform.v1beta1.IndexDatapoint.CrowdingTag + (*structpb.Value)(nil), // 9: google.protobuf.Value + (*DeployedIndexRef)(nil), // 10: google.cloud.aiplatform.v1beta1.DeployedIndexRef + (*timestamppb.Timestamp)(nil), // 11: google.protobuf.Timestamp + (*EncryptionSpec)(nil), // 12: google.cloud.aiplatform.v1beta1.EncryptionSpec } var file_google_cloud_aiplatform_v1beta1_index_proto_depIdxs = []int32{ - 7, // 0: google.cloud.aiplatform.v1beta1.Index.metadata:type_name -> google.protobuf.Value - 8, // 1: google.cloud.aiplatform.v1beta1.Index.deployed_indexes:type_name -> google.cloud.aiplatform.v1beta1.DeployedIndexRef - 4, // 2: google.cloud.aiplatform.v1beta1.Index.labels:type_name -> google.cloud.aiplatform.v1beta1.Index.LabelsEntry - 9, // 3: google.cloud.aiplatform.v1beta1.Index.create_time:type_name -> google.protobuf.Timestamp - 9, // 4: google.cloud.aiplatform.v1beta1.Index.update_time:type_name -> google.protobuf.Timestamp - 3, // 5: google.cloud.aiplatform.v1beta1.Index.index_stats:type_name -> google.cloud.aiplatform.v1beta1.IndexStats + 9, // 0: google.cloud.aiplatform.v1beta1.Index.metadata:type_name -> google.protobuf.Value + 10, // 1: google.cloud.aiplatform.v1beta1.Index.deployed_indexes:type_name -> google.cloud.aiplatform.v1beta1.DeployedIndexRef + 5, // 2: google.cloud.aiplatform.v1beta1.Index.labels:type_name -> google.cloud.aiplatform.v1beta1.Index.LabelsEntry + 11, // 3: google.cloud.aiplatform.v1beta1.Index.create_time:type_name -> google.protobuf.Timestamp + 11, // 4: google.cloud.aiplatform.v1beta1.Index.update_time:type_name -> google.protobuf.Timestamp + 4, // 5: google.cloud.aiplatform.v1beta1.Index.index_stats:type_name -> google.cloud.aiplatform.v1beta1.IndexStats 0, // 6: google.cloud.aiplatform.v1beta1.Index.index_update_method:type_name -> google.cloud.aiplatform.v1beta1.Index.IndexUpdateMethod - 10, // 7: google.cloud.aiplatform.v1beta1.Index.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec - 5, // 8: google.cloud.aiplatform.v1beta1.IndexDatapoint.restricts:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.Restriction - 6, // 9: google.cloud.aiplatform.v1beta1.IndexDatapoint.crowding_tag:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.CrowdingTag - 10, // [10:10] is the sub-list for method output_type - 10, // [10:10] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 12, // 7: google.cloud.aiplatform.v1beta1.Index.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec + 6, // 8: google.cloud.aiplatform.v1beta1.IndexDatapoint.restricts:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.Restriction + 7, // 9: google.cloud.aiplatform.v1beta1.IndexDatapoint.numeric_restricts:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.NumericRestriction + 8, // 10: google.cloud.aiplatform.v1beta1.IndexDatapoint.crowding_tag:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.CrowdingTag + 1, // 11: google.cloud.aiplatform.v1beta1.IndexDatapoint.NumericRestriction.op:type_name -> google.cloud.aiplatform.v1beta1.IndexDatapoint.NumericRestriction.Operator + 12, // [12:12] is the sub-list for method output_type + 12, // [12:12] is the sub-list for method input_type + 12, // [12:12] is the sub-list for extension type_name + 12, // [12:12] is the sub-list for extension extendee + 0, // [0:12] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_index_proto_init() } @@ -787,6 +1023,18 @@ func file_google_cloud_aiplatform_v1beta1_index_proto_init() { } } file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexDatapoint_NumericRestriction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*IndexDatapoint_CrowdingTag); i { case 0: return &v.state @@ -799,13 +1047,18 @@ func file_google_cloud_aiplatform_v1beta1_index_proto_init() { } } } + file_google_cloud_aiplatform_v1beta1_index_proto_msgTypes[5].OneofWrappers = []interface{}{ + (*IndexDatapoint_NumericRestriction_ValueInt)(nil), + (*IndexDatapoint_NumericRestriction_ValueFloat)(nil), + (*IndexDatapoint_NumericRestriction_ValueDouble)(nil), + } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_index_proto_rawDesc, - NumEnums: 1, - NumMessages: 6, + NumEnums: 2, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1beta1/aiplatformpb/index_endpoint.pb.go b/aiplatform/apiv1beta1/aiplatformpb/index_endpoint.pb.go index 9cf78b61ec07..bb9cdaaeb422 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/index_endpoint.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/index_endpoint.pb.go @@ -298,10 +298,11 @@ type DeployedIndex struct { // 1000. AutomaticResources *AutomaticResources `protobuf:"bytes,7,opt,name=automatic_resources,json=automaticResources,proto3" json:"automatic_resources,omitempty"` // Optional. A description of resources that are dedicated to the - // DeployedIndex, and that need a higher degree of manual configuration. If - // min_replica_count is not set, the default value is 2 (we don't provide SLA - // when min_replica_count=1). If max_replica_count is not set, the default - // value is min_replica_count. The max allowed replica count is 1000. + // DeployedIndex, and that need a higher degree of manual configuration. The + // field min_replica_count must be set to a value strictly greater than 0, or + // else validation will fail. We don't provide SLA when min_replica_count=1. + // If max_replica_count is not set, the default value is min_replica_count. + // The max allowed replica count is 1000. // // Available machine types for SMALL shard: // e2-standard-2 and all machine types available for MEDIUM and LARGE shard. diff --git a/aiplatform/apiv1beta1/aiplatformpb/llm_utility_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/llm_utility_service.pb.go new file mode 100755 index 000000000000..dadb29c35b04 --- /dev/null +++ b/aiplatform/apiv1beta1/aiplatformpb/llm_utility_service.pb.go @@ -0,0 +1,470 @@ +// Copyright 2023 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. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.23.2 +// source: google/cloud/aiplatform/v1beta1/llm_utility_service.proto + +package aiplatformpb + +import ( + context "context" + reflect "reflect" + sync "sync" + + _ "google.golang.org/genproto/googleapis/api/annotations" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Request message for ComputeTokens RPC call. +type ComputeTokensRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the Endpoint requested to get lists of tokens and + // token ids. + Endpoint string `protobuf:"bytes,1,opt,name=endpoint,proto3" json:"endpoint,omitempty"` + // Required. The instances that are the input to token computing API call. + // Schema is identical to the prediction schema of the text model, even for + // the non-text models, like chat models, or Codey models. + Instances []*structpb.Value `protobuf:"bytes,2,rep,name=instances,proto3" json:"instances,omitempty"` +} + +func (x *ComputeTokensRequest) Reset() { + *x = ComputeTokensRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComputeTokensRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeTokensRequest) ProtoMessage() {} + +func (x *ComputeTokensRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeTokensRequest.ProtoReflect.Descriptor instead. +func (*ComputeTokensRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ComputeTokensRequest) GetEndpoint() string { + if x != nil { + return x.Endpoint + } + return "" +} + +func (x *ComputeTokensRequest) GetInstances() []*structpb.Value { + if x != nil { + return x.Instances + } + return nil +} + +// Tokens info with a list of tokens and the corresponding list of token ids. +type TokensInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of tokens from the input. + Tokens [][]byte `protobuf:"bytes,1,rep,name=tokens,proto3" json:"tokens,omitempty"` + // A list of token ids from the input. + TokenIds []int64 `protobuf:"varint,2,rep,packed,name=token_ids,json=tokenIds,proto3" json:"token_ids,omitempty"` +} + +func (x *TokensInfo) Reset() { + *x = TokensInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokensInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokensInfo) ProtoMessage() {} + +func (x *TokensInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TokensInfo.ProtoReflect.Descriptor instead. +func (*TokensInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescGZIP(), []int{1} +} + +func (x *TokensInfo) GetTokens() [][]byte { + if x != nil { + return x.Tokens + } + return nil +} + +func (x *TokensInfo) GetTokenIds() []int64 { + if x != nil { + return x.TokenIds + } + return nil +} + +// Response message for ComputeTokens RPC call. +type ComputeTokensResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lists of tokens info from the input. A ComputeTokensRequest could have + // multiple instances with a prompt in each instance. We also need to return + // lists of tokens info for the request with multiple instances. + TokensInfo []*TokensInfo `protobuf:"bytes,1,rep,name=tokens_info,json=tokensInfo,proto3" json:"tokens_info,omitempty"` +} + +func (x *ComputeTokensResponse) Reset() { + *x = ComputeTokensResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ComputeTokensResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ComputeTokensResponse) ProtoMessage() {} + +func (x *ComputeTokensResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ComputeTokensResponse.ProtoReflect.Descriptor instead. +func (*ComputeTokensResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ComputeTokensResponse) GetTokensInfo() []*TokensInfo { + if x != nil { + return x.TokensInfo + } + return nil +} + +var File_google_cloud_aiplatform_v1beta1_llm_utility_service_proto protoreflect.FileDescriptor + +var file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDesc = []byte{ + 0x0a, 0x39, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2f, 0x6c, 0x6c, 0x6d, 0x5f, 0x75, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1f, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x1a, 0x1c, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x99, 0x01, + 0x0a, 0x14, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, + 0x0a, 0x22, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x39, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x41, 0x0a, 0x0a, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x08, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x73, 0x22, 0x65, 0x0a, 0x15, + 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x32, 0xa0, 0x03, 0x0a, 0x11, 0x4c, 0x6c, 0x6d, 0x55, 0x74, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xbb, 0x02, 0x0a, 0x0d, 0x43, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xba, 0x01, 0xda, 0x41, 0x12, + 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x9e, 0x01, 0x3a, 0x01, 0x2a, 0x5a, 0x53, 0x3a, 0x01, + 0x2a, 0x22, 0x4e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x22, 0x44, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, + 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xed, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x16, + 0x4c, 0x6c, 0x6d, 0x55, 0x74, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, + 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescOnce sync.Once + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescData = file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDesc +) + +func file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescGZIP() []byte { + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescOnce.Do(func() { + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescData) + }) + return file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDescData +} + +var file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_goTypes = []interface{}{ + (*ComputeTokensRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.ComputeTokensRequest + (*TokensInfo)(nil), // 1: google.cloud.aiplatform.v1beta1.TokensInfo + (*ComputeTokensResponse)(nil), // 2: google.cloud.aiplatform.v1beta1.ComputeTokensResponse + (*structpb.Value)(nil), // 3: google.protobuf.Value +} +var file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_depIdxs = []int32{ + 3, // 0: google.cloud.aiplatform.v1beta1.ComputeTokensRequest.instances:type_name -> google.protobuf.Value + 1, // 1: google.cloud.aiplatform.v1beta1.ComputeTokensResponse.tokens_info:type_name -> google.cloud.aiplatform.v1beta1.TokensInfo + 0, // 2: google.cloud.aiplatform.v1beta1.LlmUtilityService.ComputeTokens:input_type -> google.cloud.aiplatform.v1beta1.ComputeTokensRequest + 2, // 3: google.cloud.aiplatform.v1beta1.LlmUtilityService.ComputeTokens:output_type -> google.cloud.aiplatform.v1beta1.ComputeTokensResponse + 3, // [3:4] is the sub-list for method output_type + 2, // [2:3] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_init() } +func file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_init() { + if File_google_cloud_aiplatform_v1beta1_llm_utility_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComputeTokensRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokensInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ComputeTokensResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_goTypes, + DependencyIndexes: file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_depIdxs, + MessageInfos: file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_msgTypes, + }.Build() + File_google_cloud_aiplatform_v1beta1_llm_utility_service_proto = out.File + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_rawDesc = nil + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_goTypes = nil + file_google_cloud_aiplatform_v1beta1_llm_utility_service_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +const _ = grpc.SupportPackageIsVersion6 + +// LlmUtilityServiceClient is the client API for LlmUtilityService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type LlmUtilityServiceClient interface { + // Return a list of tokens based on the input text. + ComputeTokens(ctx context.Context, in *ComputeTokensRequest, opts ...grpc.CallOption) (*ComputeTokensResponse, error) +} + +type llmUtilityServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewLlmUtilityServiceClient(cc grpc.ClientConnInterface) LlmUtilityServiceClient { + return &llmUtilityServiceClient{cc} +} + +func (c *llmUtilityServiceClient) ComputeTokens(ctx context.Context, in *ComputeTokensRequest, opts ...grpc.CallOption) (*ComputeTokensResponse, error) { + out := new(ComputeTokensResponse) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1beta1.LlmUtilityService/ComputeTokens", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LlmUtilityServiceServer is the server API for LlmUtilityService service. +type LlmUtilityServiceServer interface { + // Return a list of tokens based on the input text. + ComputeTokens(context.Context, *ComputeTokensRequest) (*ComputeTokensResponse, error) +} + +// UnimplementedLlmUtilityServiceServer can be embedded to have forward compatible implementations. +type UnimplementedLlmUtilityServiceServer struct { +} + +func (*UnimplementedLlmUtilityServiceServer) ComputeTokens(context.Context, *ComputeTokensRequest) (*ComputeTokensResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ComputeTokens not implemented") +} + +func RegisterLlmUtilityServiceServer(s *grpc.Server, srv LlmUtilityServiceServer) { + s.RegisterService(&_LlmUtilityService_serviceDesc, srv) +} + +func _LlmUtilityService_ComputeTokens_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ComputeTokensRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LlmUtilityServiceServer).ComputeTokens(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1beta1.LlmUtilityService/ComputeTokens", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LlmUtilityServiceServer).ComputeTokens(ctx, req.(*ComputeTokensRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _LlmUtilityService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.aiplatform.v1beta1.LlmUtilityService", + HandlerType: (*LlmUtilityServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ComputeTokens", + Handler: _LlmUtilityService_ComputeTokens_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/aiplatform/v1beta1/llm_utility_service.proto", +} diff --git a/aiplatform/apiv1beta1/aiplatformpb/machine_resources.pb.go b/aiplatform/apiv1beta1/aiplatformpb/machine_resources.pb.go index e8966f9418bc..8a24d2c716b9 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/machine_resources.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/machine_resources.pb.go @@ -62,6 +62,9 @@ type MachineSpec struct { AcceleratorType AcceleratorType `protobuf:"varint,2,opt,name=accelerator_type,json=acceleratorType,proto3,enum=google.cloud.aiplatform.v1beta1.AcceleratorType" json:"accelerator_type,omitempty"` // The number of accelerators to attach to the machine. AcceleratorCount int32 `protobuf:"varint,3,opt,name=accelerator_count,json=acceleratorCount,proto3" json:"accelerator_count,omitempty"` + // Immutable. The topology of the TPUs. Corresponds to the TPU topologies + // available from GKE. (Example: tpu_topology: "2x2x1"). + TpuTopology string `protobuf:"bytes,4,opt,name=tpu_topology,json=tpuTopology,proto3" json:"tpu_topology,omitempty"` } func (x *MachineSpec) Reset() { @@ -117,6 +120,13 @@ func (x *MachineSpec) GetAcceleratorCount() int32 { return 0 } +func (x *MachineSpec) GetTpuTopology() string { + if x != nil { + return x.TpuTopology + } + return "" +} + // A description of resources that are dedicated to a DeployedModel, and // that need a higher degree of manual configuration. type DedicatedResources struct { @@ -706,7 +716,7 @@ var file_google_cloud_aiplatform_v1beta1_machine_resources_proto_rawDesc = []byt 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0xc4, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, + 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x01, 0x0a, 0x0b, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x60, 0x0a, 0x10, 0x61, @@ -718,92 +728,94 @@ var file_google_cloud_aiplatform_v1beta1_machine_resources_proto_rawDesc = []byt 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc9, 0x02, 0x0a, 0x12, 0x44, - 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x73, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x32, 0x0a, 0x11, 0x6d, 0x69, - 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, - 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, - 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, - 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x75, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16, - 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x53, 0x70, 0x65, 0x63, 0x73, 0x22, 0x76, 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, - 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, - 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, - 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, - 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xde, - 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, - 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x39, 0x0a, 0x16, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, - 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, - 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, - 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x22, 0x5b, - 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6f, - 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x29, 0x0a, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x6f, 0x6f, - 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x22, 0x53, 0x0a, 0x12, 0x50, - 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, - 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, - 0x22, 0x66, 0x0a, 0x08, 0x4e, 0x66, 0x73, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x55, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x70, + 0x75, 0x5f, 0x74, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, 0x67, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x74, 0x70, 0x75, 0x54, 0x6f, 0x70, 0x6f, 0x6c, 0x6f, + 0x67, 0x79, 0x22, 0xc9, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, + 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x32, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x06, 0xe0, + 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x75, 0x0a, 0x18, 0x61, 0x75, 0x74, 0x6f, 0x73, + 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, - 0xec, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x15, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, + 0x69, 0x6e, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x73, 0x22, 0x76, + 0x0a, 0x12, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x69, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, + 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x57, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0b, + 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x39, 0x0a, 0x16, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, + 0x52, 0x14, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x52, 0x65, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x3d, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x0d, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x68, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x08, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x74, + 0x44, 0x69, 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x62, 0x6f, 0x6f, 0x74, + 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x69, 0x7a, + 0x65, 0x47, 0x62, 0x22, 0x53, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, + 0x74, 0x44, 0x69, 0x73, 0x6b, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x69, 0x73, + 0x6b, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x69, + 0x73, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x64, 0x69, + 0x73, 0x6b, 0x53, 0x69, 0x7a, 0x65, 0x47, 0x62, 0x22, 0x66, 0x0a, 0x08, 0x4e, 0x66, 0x73, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x50, 0x6f, 0x69, 0x6e, 0x74, + 0x22, 0x55, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0xec, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x15, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, + 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, + 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/aiplatform/apiv1beta1/aiplatformpb/model.pb.go b/aiplatform/apiv1beta1/aiplatformpb/model.pb.go index 3a9a28a4128f..ed5254241a0b 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/model.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/model.pb.go @@ -27,6 +27,7 @@ import ( _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" ) @@ -1075,6 +1076,16 @@ type ModelContainerSpec struct { // [`AIP_DEPLOYED_MODEL_ID` environment // variable](https://cloud.google.com/vertex-ai/docs/predictions/custom-container-requirements#aip-variables).) HealthRoute string `protobuf:"bytes,7,opt,name=health_route,json=healthRoute,proto3" json:"health_route,omitempty"` + // Immutable. Deployment timeout. + // Limit for deployment timeout is 2 hours. + DeploymentTimeout *durationpb.Duration `protobuf:"bytes,10,opt,name=deployment_timeout,json=deploymentTimeout,proto3" json:"deployment_timeout,omitempty"` + // Immutable. The amount of the VM memory to reserve as the shared memory for + // the model in megabytes. + SharedMemorySizeMb int64 `protobuf:"varint,11,opt,name=shared_memory_size_mb,json=sharedMemorySizeMb,proto3" json:"shared_memory_size_mb,omitempty"` + // Immutable. Specification for Kubernetes startup probe. + StartupProbe *Probe `protobuf:"bytes,12,opt,name=startup_probe,json=startupProbe,proto3" json:"startup_probe,omitempty"` + // Immutable. Specification for Kubernetes readiness probe. + HealthProbe *Probe `protobuf:"bytes,13,opt,name=health_probe,json=healthProbe,proto3" json:"health_probe,omitempty"` } func (x *ModelContainerSpec) Reset() { @@ -1158,6 +1169,34 @@ func (x *ModelContainerSpec) GetHealthRoute() string { return "" } +func (x *ModelContainerSpec) GetDeploymentTimeout() *durationpb.Duration { + if x != nil { + return x.DeploymentTimeout + } + return nil +} + +func (x *ModelContainerSpec) GetSharedMemorySizeMb() int64 { + if x != nil { + return x.SharedMemorySizeMb + } + return 0 +} + +func (x *ModelContainerSpec) GetStartupProbe() *Probe { + if x != nil { + return x.StartupProbe + } + return nil +} + +func (x *ModelContainerSpec) GetHealthProbe() *Probe { + if x != nil { + return x.HealthProbe + } + return nil +} + // Represents a network port in a container. type Port struct { state protoimpl.MessageState @@ -1268,6 +1307,99 @@ func (x *ModelSourceInfo) GetCopy() bool { return false } +// Probe describes a health check to be performed against a container to +// determine whether it is alive or ready to receive traffic. +type Probe struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ProbeType: + // *Probe_Exec + ProbeType isProbe_ProbeType `protobuf_oneof:"probe_type"` + // How often (in seconds) to perform the probe. Default to 10 seconds. + // Minimum value is 1. Must be less than timeout_seconds. + // + // Maps to Kubernetes probe argument 'periodSeconds'. + PeriodSeconds int32 `protobuf:"varint,2,opt,name=period_seconds,json=periodSeconds,proto3" json:"period_seconds,omitempty"` + // Number of seconds after which the probe times out. Defaults to 1 second. + // Minimum value is 1. Must be greater or equal to period_seconds. + // + // Maps to Kubernetes probe argument 'timeoutSeconds'. + TimeoutSeconds int32 `protobuf:"varint,3,opt,name=timeout_seconds,json=timeoutSeconds,proto3" json:"timeout_seconds,omitempty"` +} + +func (x *Probe) Reset() { + *x = Probe{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Probe) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Probe) ProtoMessage() {} + +func (x *Probe) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Probe.ProtoReflect.Descriptor instead. +func (*Probe) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{6} +} + +func (m *Probe) GetProbeType() isProbe_ProbeType { + if m != nil { + return m.ProbeType + } + return nil +} + +func (x *Probe) GetExec() *Probe_ExecAction { + if x, ok := x.GetProbeType().(*Probe_Exec); ok { + return x.Exec + } + return nil +} + +func (x *Probe) GetPeriodSeconds() int32 { + if x != nil { + return x.PeriodSeconds + } + return 0 +} + +func (x *Probe) GetTimeoutSeconds() int32 { + if x != nil { + return x.TimeoutSeconds + } + return 0 +} + +type isProbe_ProbeType interface { + isProbe_ProbeType() +} + +type Probe_Exec struct { + // Exec specifies the action to take. + Exec *Probe_ExecAction `protobuf:"bytes,1,opt,name=exec,proto3,oneof"` +} + +func (*Probe_Exec) isProbe_ProbeType() {} + // Represents export format supported by the Model. // All formats export to Google Cloud Storage. type Model_ExportFormat struct { @@ -1304,7 +1436,7 @@ type Model_ExportFormat struct { func (x *Model_ExportFormat) Reset() { *x = Model_ExportFormat{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1317,7 +1449,7 @@ func (x *Model_ExportFormat) String() string { func (*Model_ExportFormat) ProtoMessage() {} func (x *Model_ExportFormat) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6] + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1362,7 +1494,7 @@ type Model_OriginalModelInfo struct { func (x *Model_OriginalModelInfo) Reset() { *x = Model_OriginalModelInfo{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1375,7 +1507,7 @@ func (x *Model_OriginalModelInfo) String() string { func (*Model_OriginalModelInfo) ProtoMessage() {} func (x *Model_OriginalModelInfo) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1398,6 +1530,60 @@ func (x *Model_OriginalModelInfo) GetModel() string { return "" } +// ExecAction specifies a command to execute. +type Probe_ExecAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Command is the command line to execute inside the container, the working + // directory for the command is root ('/') in the container's filesystem. + // The command is simply exec'd, it is not run inside a shell, so + // traditional shell instructions ('|', etc) won't work. To use a shell, you + // need to explicitly call out to that shell. Exit status of 0 is treated as + // live/healthy and non-zero is unhealthy. + Command []string `protobuf:"bytes,1,rep,name=command,proto3" json:"command,omitempty"` +} + +func (x *Probe_ExecAction) Reset() { + *x = Probe_ExecAction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Probe_ExecAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Probe_ExecAction) ProtoMessage() {} + +func (x *Probe_ExecAction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Probe_ExecAction.ProtoReflect.Descriptor instead. +func (*Probe_ExecAction) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *Probe_ExecAction) GetCommand() []string { + if x != nil { + return x.Command + } + return nil +} + var File_google_cloud_aiplatform_v1beta1_model_proto protoreflect.FileDescriptor var file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = []byte{ @@ -1422,7 +1608,9 @@ var file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = []byte{ 0x5f, 0x76, 0x61, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x65, 0x78, 0x70, 0x6c, - 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, + 0x61, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, @@ -1606,7 +1794,7 @@ var file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = []byte{ 0x61, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x13, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xc5, 0x02, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x55, 0x72, 0x69, 0x22, 0xee, 0x04, 0x0a, 0x12, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, @@ -1627,40 +1815,73 @@ var file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc = []byte{ 0x0c, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, - 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x50, 0x6f, 0x72, 0x74, 0x22, 0xfd, 0x01, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, - 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x70, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x22, - 0x73, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x42, 0x51, 0x4d, 0x4c, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x4c, - 0x5f, 0x47, 0x41, 0x52, 0x44, 0x45, 0x4e, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x45, 0x4e, - 0x49, 0x45, 0x10, 0x05, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x4d, 0x6f, - 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, - 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, - 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, - 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, - 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, + 0x05, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x6f, 0x75, 0x74, 0x12, 0x36, 0x0a, 0x15, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x5f, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x6d, 0x62, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x12, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x53, 0x69, 0x7a, 0x65, 0x4d, 0x62, 0x12, 0x50, 0x0a, 0x0d, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, + 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x75, 0x70, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x4e, + 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x05, 0x52, 0x0b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x22, 0x2d, + 0x0a, 0x04, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x22, 0xfd, 0x01, + 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x61, 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x63, 0x6f, 0x70, 0x79, 0x22, 0x73, 0x0a, 0x0f, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4d, + 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, + 0x0a, 0x06, 0x41, 0x55, 0x54, 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x55, + 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x51, 0x4d, 0x4c, 0x10, 0x03, + 0x12, 0x10, 0x0a, 0x0c, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x47, 0x41, 0x52, 0x44, 0x45, 0x4e, + 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x45, 0x4e, 0x49, 0x45, 0x10, 0x05, 0x22, 0xd6, 0x01, + 0x0a, 0x05, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x12, 0x47, 0x0a, 0x04, 0x65, 0x78, 0x65, 0x63, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x62, 0x65, 0x2e, 0x45, 0x78, + 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x04, 0x65, 0x78, 0x65, 0x63, + 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x1a, 0x26, 0x0a, 0x0a, 0x45, 0x78, 0x65, 0x63, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x62, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, + 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, + 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1676,7 +1897,7 @@ func file_google_cloud_aiplatform_v1beta1_model_proto_rawDescGZIP() []byte { } var file_google_cloud_aiplatform_v1beta1_model_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes = make([]protoimpl.MessageInfo, 11) var file_google_cloud_aiplatform_v1beta1_model_proto_goTypes = []interface{}{ (Model_DeploymentResourcesType)(0), // 0: google.cloud.aiplatform.v1beta1.Model.DeploymentResourcesType (Model_ExportFormat_ExportableContent)(0), // 1: google.cloud.aiplatform.v1beta1.Model.ExportFormat.ExportableContent @@ -1687,41 +1908,48 @@ var file_google_cloud_aiplatform_v1beta1_model_proto_goTypes = []interface{}{ (*ModelContainerSpec)(nil), // 6: google.cloud.aiplatform.v1beta1.ModelContainerSpec (*Port)(nil), // 7: google.cloud.aiplatform.v1beta1.Port (*ModelSourceInfo)(nil), // 8: google.cloud.aiplatform.v1beta1.ModelSourceInfo - (*Model_ExportFormat)(nil), // 9: google.cloud.aiplatform.v1beta1.Model.ExportFormat - (*Model_OriginalModelInfo)(nil), // 10: google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo - nil, // 11: google.cloud.aiplatform.v1beta1.Model.LabelsEntry - (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp - (*structpb.Value)(nil), // 13: google.protobuf.Value - (*DeployedModelRef)(nil), // 14: google.cloud.aiplatform.v1beta1.DeployedModelRef - (*ExplanationSpec)(nil), // 15: google.cloud.aiplatform.v1beta1.ExplanationSpec - (*EncryptionSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.EncryptionSpec - (*EnvVar)(nil), // 17: google.cloud.aiplatform.v1beta1.EnvVar + (*Probe)(nil), // 9: google.cloud.aiplatform.v1beta1.Probe + (*Model_ExportFormat)(nil), // 10: google.cloud.aiplatform.v1beta1.Model.ExportFormat + (*Model_OriginalModelInfo)(nil), // 11: google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo + nil, // 12: google.cloud.aiplatform.v1beta1.Model.LabelsEntry + (*Probe_ExecAction)(nil), // 13: google.cloud.aiplatform.v1beta1.Probe.ExecAction + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp + (*structpb.Value)(nil), // 15: google.protobuf.Value + (*DeployedModelRef)(nil), // 16: google.cloud.aiplatform.v1beta1.DeployedModelRef + (*ExplanationSpec)(nil), // 17: google.cloud.aiplatform.v1beta1.ExplanationSpec + (*EncryptionSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.EncryptionSpec + (*EnvVar)(nil), // 19: google.cloud.aiplatform.v1beta1.EnvVar + (*durationpb.Duration)(nil), // 20: google.protobuf.Duration } var file_google_cloud_aiplatform_v1beta1_model_proto_depIdxs = []int32{ - 12, // 0: google.cloud.aiplatform.v1beta1.Model.version_create_time:type_name -> google.protobuf.Timestamp - 12, // 1: google.cloud.aiplatform.v1beta1.Model.version_update_time:type_name -> google.protobuf.Timestamp + 14, // 0: google.cloud.aiplatform.v1beta1.Model.version_create_time:type_name -> google.protobuf.Timestamp + 14, // 1: google.cloud.aiplatform.v1beta1.Model.version_update_time:type_name -> google.protobuf.Timestamp 5, // 2: google.cloud.aiplatform.v1beta1.Model.predict_schemata:type_name -> google.cloud.aiplatform.v1beta1.PredictSchemata - 13, // 3: google.cloud.aiplatform.v1beta1.Model.metadata:type_name -> google.protobuf.Value - 9, // 4: google.cloud.aiplatform.v1beta1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat + 15, // 3: google.cloud.aiplatform.v1beta1.Model.metadata:type_name -> google.protobuf.Value + 10, // 4: google.cloud.aiplatform.v1beta1.Model.supported_export_formats:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat 6, // 5: google.cloud.aiplatform.v1beta1.Model.container_spec:type_name -> google.cloud.aiplatform.v1beta1.ModelContainerSpec 0, // 6: google.cloud.aiplatform.v1beta1.Model.supported_deployment_resources_types:type_name -> google.cloud.aiplatform.v1beta1.Model.DeploymentResourcesType - 12, // 7: google.cloud.aiplatform.v1beta1.Model.create_time:type_name -> google.protobuf.Timestamp - 12, // 8: google.cloud.aiplatform.v1beta1.Model.update_time:type_name -> google.protobuf.Timestamp - 14, // 9: google.cloud.aiplatform.v1beta1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1beta1.DeployedModelRef - 15, // 10: google.cloud.aiplatform.v1beta1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec - 11, // 11: google.cloud.aiplatform.v1beta1.Model.labels:type_name -> google.cloud.aiplatform.v1beta1.Model.LabelsEntry - 16, // 12: google.cloud.aiplatform.v1beta1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec + 14, // 7: google.cloud.aiplatform.v1beta1.Model.create_time:type_name -> google.protobuf.Timestamp + 14, // 8: google.cloud.aiplatform.v1beta1.Model.update_time:type_name -> google.protobuf.Timestamp + 16, // 9: google.cloud.aiplatform.v1beta1.Model.deployed_models:type_name -> google.cloud.aiplatform.v1beta1.DeployedModelRef + 17, // 10: google.cloud.aiplatform.v1beta1.Model.explanation_spec:type_name -> google.cloud.aiplatform.v1beta1.ExplanationSpec + 12, // 11: google.cloud.aiplatform.v1beta1.Model.labels:type_name -> google.cloud.aiplatform.v1beta1.Model.LabelsEntry + 18, // 12: google.cloud.aiplatform.v1beta1.Model.encryption_spec:type_name -> google.cloud.aiplatform.v1beta1.EncryptionSpec 8, // 13: google.cloud.aiplatform.v1beta1.Model.model_source_info:type_name -> google.cloud.aiplatform.v1beta1.ModelSourceInfo - 10, // 14: google.cloud.aiplatform.v1beta1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo - 17, // 15: google.cloud.aiplatform.v1beta1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1beta1.EnvVar + 11, // 14: google.cloud.aiplatform.v1beta1.Model.original_model_info:type_name -> google.cloud.aiplatform.v1beta1.Model.OriginalModelInfo + 19, // 15: google.cloud.aiplatform.v1beta1.ModelContainerSpec.env:type_name -> google.cloud.aiplatform.v1beta1.EnvVar 7, // 16: google.cloud.aiplatform.v1beta1.ModelContainerSpec.ports:type_name -> google.cloud.aiplatform.v1beta1.Port - 2, // 17: google.cloud.aiplatform.v1beta1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1beta1.ModelSourceInfo.ModelSourceType - 1, // 18: google.cloud.aiplatform.v1beta1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat.ExportableContent - 19, // [19:19] is the sub-list for method output_type - 19, // [19:19] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 20, // 17: google.cloud.aiplatform.v1beta1.ModelContainerSpec.deployment_timeout:type_name -> google.protobuf.Duration + 9, // 18: google.cloud.aiplatform.v1beta1.ModelContainerSpec.startup_probe:type_name -> google.cloud.aiplatform.v1beta1.Probe + 9, // 19: google.cloud.aiplatform.v1beta1.ModelContainerSpec.health_probe:type_name -> google.cloud.aiplatform.v1beta1.Probe + 2, // 20: google.cloud.aiplatform.v1beta1.ModelSourceInfo.source_type:type_name -> google.cloud.aiplatform.v1beta1.ModelSourceInfo.ModelSourceType + 13, // 21: google.cloud.aiplatform.v1beta1.Probe.exec:type_name -> google.cloud.aiplatform.v1beta1.Probe.ExecAction + 1, // 22: google.cloud.aiplatform.v1beta1.Model.ExportFormat.exportable_contents:type_name -> google.cloud.aiplatform.v1beta1.Model.ExportFormat.ExportableContent + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_model_proto_init() } @@ -1807,7 +2035,7 @@ func file_google_cloud_aiplatform_v1beta1_model_proto_init() { } } file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Model_ExportFormat); i { + switch v := v.(*Probe); i { case 0: return &v.state case 1: @@ -1819,6 +2047,18 @@ func file_google_cloud_aiplatform_v1beta1_model_proto_init() { } } file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Model_ExportFormat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Model_OriginalModelInfo); i { case 0: return &v.state @@ -1830,6 +2070,21 @@ func file_google_cloud_aiplatform_v1beta1_model_proto_init() { return nil } } + file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Probe_ExecAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_aiplatform_v1beta1_model_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Probe_Exec)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -1837,7 +2092,7 @@ func file_google_cloud_aiplatform_v1beta1_model_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_model_proto_rawDesc, NumEnums: 3, - NumMessages: 9, + NumMessages: 11, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1beta1/aiplatformpb/pipeline_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/pipeline_service.pb.go index 57e1b5453e65..60b85e65f53b 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/pipeline_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/pipeline_service.pb.go @@ -818,6 +818,119 @@ func (x *DeletePipelineJobRequest) GetName() string { return "" } +// Request message for +// [PipelineService.BatchDeletePipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.BatchDeletePipelineJobs]. +type BatchDeletePipelineJobsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the PipelineJobs' parent resource. + // Format: `projects/{project}/locations/{location}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The names of the PipelineJobs to delete. + // A maximum of 32 PipelineJobs can be deleted in a batch. + // Format: + // `projects/{project}/locations/{location}/pipelineJobs/{pipelineJob}` + Names []string `protobuf:"bytes,2,rep,name=names,proto3" json:"names,omitempty"` +} + +func (x *BatchDeletePipelineJobsRequest) Reset() { + *x = BatchDeletePipelineJobsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeletePipelineJobsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeletePipelineJobsRequest) ProtoMessage() {} + +func (x *BatchDeletePipelineJobsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeletePipelineJobsRequest.ProtoReflect.Descriptor instead. +func (*BatchDeletePipelineJobsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescGZIP(), []int{11} +} + +func (x *BatchDeletePipelineJobsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *BatchDeletePipelineJobsRequest) GetNames() []string { + if x != nil { + return x.Names + } + return nil +} + +// Response message for +// [PipelineService.BatchDeletePipelineJobs][google.cloud.aiplatform.v1beta1.PipelineService.BatchDeletePipelineJobs]. +type BatchDeletePipelineJobsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // PipelineJobs deleted. + PipelineJobs []*PipelineJob `protobuf:"bytes,1,rep,name=pipeline_jobs,json=pipelineJobs,proto3" json:"pipeline_jobs,omitempty"` +} + +func (x *BatchDeletePipelineJobsResponse) Reset() { + *x = BatchDeletePipelineJobsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchDeletePipelineJobsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchDeletePipelineJobsResponse) ProtoMessage() {} + +func (x *BatchDeletePipelineJobsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BatchDeletePipelineJobsResponse.ProtoReflect.Descriptor instead. +func (*BatchDeletePipelineJobsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescGZIP(), []int{12} +} + +func (x *BatchDeletePipelineJobsResponse) GetPipelineJobs() []*PipelineJob { + if x != nil { + return x.PipelineJobs + } + return nil +} + // Request message for // [PipelineService.CancelPipelineJob][google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob]. type CancelPipelineJobRequest struct { @@ -834,7 +947,7 @@ type CancelPipelineJobRequest struct { func (x *CancelPipelineJobRequest) Reset() { *x = CancelPipelineJobRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -847,7 +960,7 @@ func (x *CancelPipelineJobRequest) String() string { func (*CancelPipelineJobRequest) ProtoMessage() {} func (x *CancelPipelineJobRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -860,7 +973,7 @@ func (x *CancelPipelineJobRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelPipelineJobRequest.ProtoReflect.Descriptor instead. func (*CancelPipelineJobRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescGZIP(), []int{11} + return file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescGZIP(), []int{13} } func (x *CancelPipelineJobRequest) GetName() string { @@ -1011,172 +1124,208 @@ var file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDesc = []byte 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x18, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xfe, 0x11, 0x0a, 0x0f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfd, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x70, 0xda, 0x41, 0x18, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x2c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x11, 0x74, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x3a, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0xd0, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, - 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe3, 0x01, 0x0a, 0x15, - 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x1e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, + 0x12, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x43, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x2d, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x05, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0x74, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x70, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x0c, 0x70, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0x5d, 0x0a, 0x18, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x4a, 0x6f, 0x62, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0x95, 0x14, 0x0a, 0x0f, 0x50, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xfd, 0x01, + 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x70, 0xda, 0x41, 0x18, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x11, + 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0xd0, 0x01, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x73, 0x12, 0xf5, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x2e, 0x67, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x22, 0x49, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xe3, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x12, 0xf5, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, + 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, + 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x7c, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3c, 0x2a, 0x3a, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc5, + 0x01, 0x0a, 0x16, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x22, 0x53, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, + 0x3a, 0x01, 0x2a, 0x22, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x12, 0xef, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, - 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0xca, 0x41, 0x30, - 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x2a, 0x3a, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, - 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc5, 0x01, 0x0a, 0x16, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x53, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x22, 0x41, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x12, 0xef, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, - 0x22, 0x71, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x2c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, - 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x0c, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x22, 0x35, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, - 0x6f, 0x62, 0x73, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, + 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x22, 0x71, 0xda, 0x41, 0x23, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x2c, 0x70, 0x69, + 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x45, 0x3a, 0x0c, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6a, 0x6f, + 0x62, 0x22, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xbc, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x36, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, + 0x62, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, + 0x12, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x38, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x22, 0x44, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x46, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x37, 0x12, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x69, 0x70, + 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, + 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0xca, 0x41, 0x30, 0x0a, 0x15, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x2f, - 0x2a, 0x7d, 0x12, 0xcf, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, - 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2a, 0x7d, 0x12, 0x94, 0x02, 0x0a, 0x17, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x3f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, + 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x98, + 0x01, 0xca, 0x41, 0x3a, 0x0a, 0x1f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x0c, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x46, 0x3a, 0x01, 0x2a, 0x22, 0x41, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x3a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0xb6, 0x01, 0x0a, 0x11, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, + 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x22, 0x4e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x69, 0x70, 0x65, + 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x42, 0xeb, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0xda, 0x41, - 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x35, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x4a, 0x6f, 0x62, 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, - 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x77, 0xca, 0x41, 0x30, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x12, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x2a, 0x35, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x69, - 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb6, 0x01, - 0x0a, 0x11, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, - 0x4a, 0x6f, 0x62, 0x12, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x69, 0x70, 0x65, - 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x4e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x1a, 0x4d, 0xca, 0x41, 0x19, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, - 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xeb, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x14, 0x50, - 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, - 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, - 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x14, 0x50, 0x69, 0x70, 0x65, 0x6c, + 0x69, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1191,58 +1340,63 @@ func file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescGZIP() [ return file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDescData } -var file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_goTypes = []interface{}{ - (*CreateTrainingPipelineRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest - (*GetTrainingPipelineRequest)(nil), // 1: google.cloud.aiplatform.v1beta1.GetTrainingPipelineRequest - (*ListTrainingPipelinesRequest)(nil), // 2: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest - (*ListTrainingPipelinesResponse)(nil), // 3: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse - (*DeleteTrainingPipelineRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.DeleteTrainingPipelineRequest - (*CancelTrainingPipelineRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.CancelTrainingPipelineRequest - (*CreatePipelineJobRequest)(nil), // 6: google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest - (*GetPipelineJobRequest)(nil), // 7: google.cloud.aiplatform.v1beta1.GetPipelineJobRequest - (*ListPipelineJobsRequest)(nil), // 8: google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest - (*ListPipelineJobsResponse)(nil), // 9: google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse - (*DeletePipelineJobRequest)(nil), // 10: google.cloud.aiplatform.v1beta1.DeletePipelineJobRequest - (*CancelPipelineJobRequest)(nil), // 11: google.cloud.aiplatform.v1beta1.CancelPipelineJobRequest - (*TrainingPipeline)(nil), // 12: google.cloud.aiplatform.v1beta1.TrainingPipeline - (*fieldmaskpb.FieldMask)(nil), // 13: google.protobuf.FieldMask - (*PipelineJob)(nil), // 14: google.cloud.aiplatform.v1beta1.PipelineJob - (*longrunningpb.Operation)(nil), // 15: google.longrunning.Operation - (*emptypb.Empty)(nil), // 16: google.protobuf.Empty + (*CreateTrainingPipelineRequest)(nil), // 0: google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest + (*GetTrainingPipelineRequest)(nil), // 1: google.cloud.aiplatform.v1beta1.GetTrainingPipelineRequest + (*ListTrainingPipelinesRequest)(nil), // 2: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest + (*ListTrainingPipelinesResponse)(nil), // 3: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse + (*DeleteTrainingPipelineRequest)(nil), // 4: google.cloud.aiplatform.v1beta1.DeleteTrainingPipelineRequest + (*CancelTrainingPipelineRequest)(nil), // 5: google.cloud.aiplatform.v1beta1.CancelTrainingPipelineRequest + (*CreatePipelineJobRequest)(nil), // 6: google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest + (*GetPipelineJobRequest)(nil), // 7: google.cloud.aiplatform.v1beta1.GetPipelineJobRequest + (*ListPipelineJobsRequest)(nil), // 8: google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest + (*ListPipelineJobsResponse)(nil), // 9: google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse + (*DeletePipelineJobRequest)(nil), // 10: google.cloud.aiplatform.v1beta1.DeletePipelineJobRequest + (*BatchDeletePipelineJobsRequest)(nil), // 11: google.cloud.aiplatform.v1beta1.BatchDeletePipelineJobsRequest + (*BatchDeletePipelineJobsResponse)(nil), // 12: google.cloud.aiplatform.v1beta1.BatchDeletePipelineJobsResponse + (*CancelPipelineJobRequest)(nil), // 13: google.cloud.aiplatform.v1beta1.CancelPipelineJobRequest + (*TrainingPipeline)(nil), // 14: google.cloud.aiplatform.v1beta1.TrainingPipeline + (*fieldmaskpb.FieldMask)(nil), // 15: google.protobuf.FieldMask + (*PipelineJob)(nil), // 16: google.cloud.aiplatform.v1beta1.PipelineJob + (*longrunningpb.Operation)(nil), // 17: google.longrunning.Operation + (*emptypb.Empty)(nil), // 18: google.protobuf.Empty } var file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_depIdxs = []int32{ - 12, // 0: google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest.training_pipeline:type_name -> google.cloud.aiplatform.v1beta1.TrainingPipeline - 13, // 1: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest.read_mask:type_name -> google.protobuf.FieldMask - 12, // 2: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse.training_pipelines:type_name -> google.cloud.aiplatform.v1beta1.TrainingPipeline - 14, // 3: google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest.pipeline_job:type_name -> google.cloud.aiplatform.v1beta1.PipelineJob - 13, // 4: google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest.read_mask:type_name -> google.protobuf.FieldMask - 14, // 5: google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse.pipeline_jobs:type_name -> google.cloud.aiplatform.v1beta1.PipelineJob - 0, // 6: google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest - 1, // 7: google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.GetTrainingPipelineRequest - 2, // 8: google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines:input_type -> google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest - 4, // 9: google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.DeleteTrainingPipelineRequest - 5, // 10: google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.CancelTrainingPipelineRequest - 6, // 11: google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob:input_type -> google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest - 7, // 12: google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob:input_type -> google.cloud.aiplatform.v1beta1.GetPipelineJobRequest - 8, // 13: google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs:input_type -> google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest - 10, // 14: google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob:input_type -> google.cloud.aiplatform.v1beta1.DeletePipelineJobRequest - 11, // 15: google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob:input_type -> google.cloud.aiplatform.v1beta1.CancelPipelineJobRequest - 12, // 16: google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline:output_type -> google.cloud.aiplatform.v1beta1.TrainingPipeline - 12, // 17: google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline:output_type -> google.cloud.aiplatform.v1beta1.TrainingPipeline - 3, // 18: google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines:output_type -> google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse - 15, // 19: google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline:output_type -> google.longrunning.Operation - 16, // 20: google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline:output_type -> google.protobuf.Empty - 14, // 21: google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob:output_type -> google.cloud.aiplatform.v1beta1.PipelineJob - 14, // 22: google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob:output_type -> google.cloud.aiplatform.v1beta1.PipelineJob - 9, // 23: google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs:output_type -> google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse - 15, // 24: google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob:output_type -> google.longrunning.Operation - 16, // 25: google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob:output_type -> google.protobuf.Empty - 16, // [16:26] is the sub-list for method output_type - 6, // [6:16] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 14, // 0: google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest.training_pipeline:type_name -> google.cloud.aiplatform.v1beta1.TrainingPipeline + 15, // 1: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest.read_mask:type_name -> google.protobuf.FieldMask + 14, // 2: google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse.training_pipelines:type_name -> google.cloud.aiplatform.v1beta1.TrainingPipeline + 16, // 3: google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest.pipeline_job:type_name -> google.cloud.aiplatform.v1beta1.PipelineJob + 15, // 4: google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest.read_mask:type_name -> google.protobuf.FieldMask + 16, // 5: google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse.pipeline_jobs:type_name -> google.cloud.aiplatform.v1beta1.PipelineJob + 16, // 6: google.cloud.aiplatform.v1beta1.BatchDeletePipelineJobsResponse.pipeline_jobs:type_name -> google.cloud.aiplatform.v1beta1.PipelineJob + 0, // 7: google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.CreateTrainingPipelineRequest + 1, // 8: google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.GetTrainingPipelineRequest + 2, // 9: google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines:input_type -> google.cloud.aiplatform.v1beta1.ListTrainingPipelinesRequest + 4, // 10: google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.DeleteTrainingPipelineRequest + 5, // 11: google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline:input_type -> google.cloud.aiplatform.v1beta1.CancelTrainingPipelineRequest + 6, // 12: google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob:input_type -> google.cloud.aiplatform.v1beta1.CreatePipelineJobRequest + 7, // 13: google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob:input_type -> google.cloud.aiplatform.v1beta1.GetPipelineJobRequest + 8, // 14: google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs:input_type -> google.cloud.aiplatform.v1beta1.ListPipelineJobsRequest + 10, // 15: google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob:input_type -> google.cloud.aiplatform.v1beta1.DeletePipelineJobRequest + 11, // 16: google.cloud.aiplatform.v1beta1.PipelineService.BatchDeletePipelineJobs:input_type -> google.cloud.aiplatform.v1beta1.BatchDeletePipelineJobsRequest + 13, // 17: google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob:input_type -> google.cloud.aiplatform.v1beta1.CancelPipelineJobRequest + 14, // 18: google.cloud.aiplatform.v1beta1.PipelineService.CreateTrainingPipeline:output_type -> google.cloud.aiplatform.v1beta1.TrainingPipeline + 14, // 19: google.cloud.aiplatform.v1beta1.PipelineService.GetTrainingPipeline:output_type -> google.cloud.aiplatform.v1beta1.TrainingPipeline + 3, // 20: google.cloud.aiplatform.v1beta1.PipelineService.ListTrainingPipelines:output_type -> google.cloud.aiplatform.v1beta1.ListTrainingPipelinesResponse + 17, // 21: google.cloud.aiplatform.v1beta1.PipelineService.DeleteTrainingPipeline:output_type -> google.longrunning.Operation + 18, // 22: google.cloud.aiplatform.v1beta1.PipelineService.CancelTrainingPipeline:output_type -> google.protobuf.Empty + 16, // 23: google.cloud.aiplatform.v1beta1.PipelineService.CreatePipelineJob:output_type -> google.cloud.aiplatform.v1beta1.PipelineJob + 16, // 24: google.cloud.aiplatform.v1beta1.PipelineService.GetPipelineJob:output_type -> google.cloud.aiplatform.v1beta1.PipelineJob + 9, // 25: google.cloud.aiplatform.v1beta1.PipelineService.ListPipelineJobs:output_type -> google.cloud.aiplatform.v1beta1.ListPipelineJobsResponse + 17, // 26: google.cloud.aiplatform.v1beta1.PipelineService.DeletePipelineJob:output_type -> google.longrunning.Operation + 17, // 27: google.cloud.aiplatform.v1beta1.PipelineService.BatchDeletePipelineJobs:output_type -> google.longrunning.Operation + 18, // 28: google.cloud.aiplatform.v1beta1.PipelineService.CancelPipelineJob:output_type -> google.protobuf.Empty + 18, // [18:29] is the sub-list for method output_type + 7, // [7:18] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_init() } @@ -1387,6 +1541,30 @@ func file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_init() { } } file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchDeletePipelineJobsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchDeletePipelineJobsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CancelPipelineJobRequest); i { case 0: return &v.state @@ -1405,7 +1583,7 @@ func file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_pipeline_service_proto_rawDesc, NumEnums: 0, - NumMessages: 12, + NumMessages: 14, NumExtensions: 0, NumServices: 1, }, @@ -1463,6 +1641,10 @@ type PipelineServiceClient interface { ListPipelineJobs(ctx context.Context, in *ListPipelineJobsRequest, opts ...grpc.CallOption) (*ListPipelineJobsResponse, error) // Deletes a PipelineJob. DeletePipelineJob(ctx context.Context, in *DeletePipelineJobRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Batch deletes PipelineJobs + // The Operation is atomic. If it fails, none of the PipelineJobs are deleted. + // If it succeeds, all of the PipelineJobs are deleted. + BatchDeletePipelineJobs(ctx context.Context, in *BatchDeletePipelineJobsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) // Cancels a PipelineJob. // Starts asynchronous cancellation on the PipelineJob. The server // makes a best effort to cancel the pipeline, but success is not @@ -1568,6 +1750,15 @@ func (c *pipelineServiceClient) DeletePipelineJob(ctx context.Context, in *Delet return out, nil } +func (c *pipelineServiceClient) BatchDeletePipelineJobs(ctx context.Context, in *BatchDeletePipelineJobsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1beta1.PipelineService/BatchDeletePipelineJobs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *pipelineServiceClient) CancelPipelineJob(ctx context.Context, in *CancelPipelineJobRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { out := new(emptypb.Empty) err := c.cc.Invoke(ctx, "/google.cloud.aiplatform.v1beta1.PipelineService/CancelPipelineJob", in, out, opts...) @@ -1611,6 +1802,10 @@ type PipelineServiceServer interface { ListPipelineJobs(context.Context, *ListPipelineJobsRequest) (*ListPipelineJobsResponse, error) // Deletes a PipelineJob. DeletePipelineJob(context.Context, *DeletePipelineJobRequest) (*longrunningpb.Operation, error) + // Batch deletes PipelineJobs + // The Operation is atomic. If it fails, none of the PipelineJobs are deleted. + // If it succeeds, all of the PipelineJobs are deleted. + BatchDeletePipelineJobs(context.Context, *BatchDeletePipelineJobsRequest) (*longrunningpb.Operation, error) // Cancels a PipelineJob. // Starts asynchronous cancellation on the PipelineJob. The server // makes a best effort to cancel the pipeline, but success is not @@ -1658,6 +1853,9 @@ func (*UnimplementedPipelineServiceServer) ListPipelineJobs(context.Context, *Li func (*UnimplementedPipelineServiceServer) DeletePipelineJob(context.Context, *DeletePipelineJobRequest) (*longrunningpb.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method DeletePipelineJob not implemented") } +func (*UnimplementedPipelineServiceServer) BatchDeletePipelineJobs(context.Context, *BatchDeletePipelineJobsRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchDeletePipelineJobs not implemented") +} func (*UnimplementedPipelineServiceServer) CancelPipelineJob(context.Context, *CancelPipelineJobRequest) (*emptypb.Empty, error) { return nil, status.Errorf(codes.Unimplemented, "method CancelPipelineJob not implemented") } @@ -1828,6 +2026,24 @@ func _PipelineService_DeletePipelineJob_Handler(srv interface{}, ctx context.Con return interceptor(ctx, in, info, handler) } +func _PipelineService_BatchDeletePipelineJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchDeletePipelineJobsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PipelineServiceServer).BatchDeletePipelineJobs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.aiplatform.v1beta1.PipelineService/BatchDeletePipelineJobs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PipelineServiceServer).BatchDeletePipelineJobs(ctx, req.(*BatchDeletePipelineJobsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _PipelineService_CancelPipelineJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CancelPipelineJobRequest) if err := dec(in); err != nil { @@ -1886,6 +2102,10 @@ var _PipelineService_serviceDesc = grpc.ServiceDesc{ MethodName: "DeletePipelineJob", Handler: _PipelineService_DeletePipelineJob_Handler, }, + { + MethodName: "BatchDeletePipelineJobs", + Handler: _PipelineService_BatchDeletePipelineJobs_Handler, + }, { MethodName: "CancelPipelineJob", Handler: _PipelineService_CancelPipelineJob_Handler, diff --git a/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go b/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go index 3fad53b30f46..eb9a1309045a 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/prediction_service.pb.go @@ -579,7 +579,7 @@ type ExplainResponse struct { // explained. Explanations []*Explanation `protobuf:"bytes,1,rep,name=explanations,proto3" json:"explanations,omitempty"` // This field stores the results of the explanations run in parallel with - // the default explanation strategy/method. + // The default explanation strategy/method. ConcurrentExplanations map[string]*ExplainResponse_ConcurrentExplanation `protobuf:"bytes,4,rep,name=concurrent_explanations,json=concurrentExplanations,proto3" json:"concurrent_explanations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // ID of the Endpoint's DeployedModel that served this explanation. DeployedModelId string `protobuf:"bytes,2,opt,name=deployed_model_id,json=deployedModelId,proto3" json:"deployed_model_id,omitempty"` diff --git a/aiplatform/apiv1beta1/aiplatformpb/study.pb.go b/aiplatform/apiv1beta1/aiplatformpb/study.pb.go index e7e61a9043ea..a37dfdaf1ded 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/study.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/study.pb.go @@ -30,6 +30,7 @@ import ( durationpb "google.golang.org/protobuf/types/known/durationpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" ) const ( @@ -218,7 +219,7 @@ func (x StudySpec_Algorithm) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_Algorithm.Descriptor instead. func (StudySpec_Algorithm) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0} } // Describes the noise level of the repeated observations. @@ -277,7 +278,7 @@ func (x StudySpec_ObservationNoise) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_ObservationNoise.Descriptor instead. func (StudySpec_ObservationNoise) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1} } // This indicates which measurement to use if/when the service automatically @@ -343,7 +344,7 @@ func (x StudySpec_MeasurementSelectionType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_MeasurementSelectionType.Descriptor instead. func (StudySpec_MeasurementSelectionType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 2} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2} } // The available types of optimization goals. @@ -396,7 +397,7 @@ func (x StudySpec_MetricSpec_GoalType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_MetricSpec_GoalType.Descriptor instead. func (StudySpec_MetricSpec_GoalType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 0, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0} } // The type of scaling that should be applied to this parameter. @@ -457,7 +458,7 @@ func (x StudySpec_ParameterSpec_ScaleType) Number() protoreflect.EnumNumber { // Deprecated: Use StudySpec_ParameterSpec_ScaleType.Descriptor instead. func (StudySpec_ParameterSpec_ScaleType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0} } // A message representing a Study. @@ -799,6 +800,89 @@ func (x *TrialContext) GetParameters() []*Trial_Parameter { return nil } +// Time-based Constraint for Study +type StudyTimeConstraint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Constraint: + // *StudyTimeConstraint_MaxDuration + // *StudyTimeConstraint_EndTime + Constraint isStudyTimeConstraint_Constraint `protobuf_oneof:"constraint"` +} + +func (x *StudyTimeConstraint) Reset() { + *x = StudyTimeConstraint{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudyTimeConstraint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudyTimeConstraint) ProtoMessage() {} + +func (x *StudyTimeConstraint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudyTimeConstraint.ProtoReflect.Descriptor instead. +func (*StudyTimeConstraint) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3} +} + +func (m *StudyTimeConstraint) GetConstraint() isStudyTimeConstraint_Constraint { + if m != nil { + return m.Constraint + } + return nil +} + +func (x *StudyTimeConstraint) GetMaxDuration() *durationpb.Duration { + if x, ok := x.GetConstraint().(*StudyTimeConstraint_MaxDuration); ok { + return x.MaxDuration + } + return nil +} + +func (x *StudyTimeConstraint) GetEndTime() *timestamppb.Timestamp { + if x, ok := x.GetConstraint().(*StudyTimeConstraint_EndTime); ok { + return x.EndTime + } + return nil +} + +type isStudyTimeConstraint_Constraint interface { + isStudyTimeConstraint_Constraint() +} + +type StudyTimeConstraint_MaxDuration struct { + // Counts the wallclock time passed since the creation of this Study. + MaxDuration *durationpb.Duration `protobuf:"bytes,1,opt,name=max_duration,json=maxDuration,proto3,oneof"` +} + +type StudyTimeConstraint_EndTime struct { + // Compares the wallclock time to this time. Must use UTC timezone. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3,oneof"` +} + +func (*StudyTimeConstraint_MaxDuration) isStudyTimeConstraint_Constraint() {} + +func (*StudyTimeConstraint_EndTime) isStudyTimeConstraint_Constraint() {} + // Represents specification of a Study. type StudySpec struct { state protoimpl.MessageState @@ -826,12 +910,15 @@ type StudySpec struct { // The configuration info/options for transfer learning. Currently supported // for Vertex AI Vizier service, not HyperParameterTuningJob TransferLearningConfig *StudySpec_TransferLearningConfig `protobuf:"bytes,10,opt,name=transfer_learning_config,json=transferLearningConfig,proto3" json:"transfer_learning_config,omitempty"` + // Conditions for automated stopping of a Study. Enable automated stopping by + // configuring at least one condition. + StudyStoppingConfig *StudySpec_StudyStoppingConfig `protobuf:"bytes,11,opt,name=study_stopping_config,json=studyStoppingConfig,proto3,oneof" json:"study_stopping_config,omitempty"` } func (x *StudySpec) Reset() { *x = StudySpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -844,7 +931,7 @@ func (x *StudySpec) String() string { func (*StudySpec) ProtoMessage() {} func (x *StudySpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -857,7 +944,7 @@ func (x *StudySpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec.ProtoReflect.Descriptor instead. func (*StudySpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4} } func (m *StudySpec) GetAutomatedStoppingSpec() isStudySpec_AutomatedStoppingSpec { @@ -938,6 +1025,13 @@ func (x *StudySpec) GetTransferLearningConfig() *StudySpec_TransferLearningConfi return nil } +func (x *StudySpec) GetStudyStoppingConfig() *StudySpec_StudyStoppingConfig { + if x != nil { + return x.StudyStoppingConfig + } + return nil +} + type isStudySpec_AutomatedStoppingSpec interface { isStudySpec_AutomatedStoppingSpec() } @@ -995,7 +1089,7 @@ type Measurement struct { func (x *Measurement) Reset() { *x = Measurement{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +1102,7 @@ func (x *Measurement) String() string { func (*Measurement) ProtoMessage() {} func (x *Measurement) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1021,7 +1115,7 @@ func (x *Measurement) ProtoReflect() protoreflect.Message { // Deprecated: Use Measurement.ProtoReflect.Descriptor instead. func (*Measurement) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5} } func (x *Measurement) GetElapsedDuration() *durationpb.Duration { @@ -1066,7 +1160,7 @@ type Trial_Parameter struct { func (x *Trial_Parameter) Reset() { *x = Trial_Parameter{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1079,7 +1173,7 @@ func (x *Trial_Parameter) String() string { func (*Trial_Parameter) ProtoMessage() {} func (x *Trial_Parameter) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1128,7 +1222,7 @@ type StudySpec_MetricSpec struct { func (x *StudySpec_MetricSpec) Reset() { *x = StudySpec_MetricSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1141,7 +1235,7 @@ func (x *StudySpec_MetricSpec) String() string { func (*StudySpec_MetricSpec) ProtoMessage() {} func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1154,7 +1248,7 @@ func (x *StudySpec_MetricSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_MetricSpec.ProtoReflect.Descriptor instead. func (*StudySpec_MetricSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0} } func (x *StudySpec_MetricSpec) GetMetricId() string { @@ -1207,7 +1301,7 @@ type StudySpec_ParameterSpec struct { func (x *StudySpec_ParameterSpec) Reset() { *x = StudySpec_ParameterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1220,7 +1314,7 @@ func (x *StudySpec_ParameterSpec) String() string { func (*StudySpec_ParameterSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1233,7 +1327,7 @@ func (x *StudySpec_ParameterSpec) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_ParameterSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1} } func (m *StudySpec_ParameterSpec) GetParameterValueSpec() isStudySpec_ParameterSpec_ParameterValueSpec { @@ -1346,7 +1440,7 @@ type StudySpec_DecayCurveAutomatedStoppingSpec struct { func (x *StudySpec_DecayCurveAutomatedStoppingSpec) Reset() { *x = StudySpec_DecayCurveAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1359,7 +1453,7 @@ func (x *StudySpec_DecayCurveAutomatedStoppingSpec) String() string { func (*StudySpec_DecayCurveAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1372,7 +1466,7 @@ func (x *StudySpec_DecayCurveAutomatedStoppingSpec) ProtoReflect() protoreflect. // Deprecated: Use StudySpec_DecayCurveAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_DecayCurveAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 2} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 2} } func (x *StudySpec_DecayCurveAutomatedStoppingSpec) GetUseElapsedDuration() bool { @@ -1403,7 +1497,7 @@ type StudySpec_MedianAutomatedStoppingSpec struct { func (x *StudySpec_MedianAutomatedStoppingSpec) Reset() { *x = StudySpec_MedianAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1416,7 +1510,7 @@ func (x *StudySpec_MedianAutomatedStoppingSpec) String() string { func (*StudySpec_MedianAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1429,7 +1523,7 @@ func (x *StudySpec_MedianAutomatedStoppingSpec) ProtoReflect() protoreflect.Mess // Deprecated: Use StudySpec_MedianAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_MedianAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 3} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 3} } func (x *StudySpec_MedianAutomatedStoppingSpec) GetUseElapsedDuration() bool { @@ -1498,7 +1592,7 @@ type StudySpec_ConvexAutomatedStoppingSpec struct { func (x *StudySpec_ConvexAutomatedStoppingSpec) Reset() { *x = StudySpec_ConvexAutomatedStoppingSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1511,7 +1605,7 @@ func (x *StudySpec_ConvexAutomatedStoppingSpec) String() string { func (*StudySpec_ConvexAutomatedStoppingSpec) ProtoMessage() {} func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1524,7 +1618,7 @@ func (x *StudySpec_ConvexAutomatedStoppingSpec) ProtoReflect() protoreflect.Mess // Deprecated: Use StudySpec_ConvexAutomatedStoppingSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ConvexAutomatedStoppingSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 4} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 4} } func (x *StudySpec_ConvexAutomatedStoppingSpec) GetMaxStepCount() int64 { @@ -1611,7 +1705,7 @@ type StudySpec_ConvexStopConfig struct { func (x *StudySpec_ConvexStopConfig) Reset() { *x = StudySpec_ConvexStopConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1624,7 +1718,7 @@ func (x *StudySpec_ConvexStopConfig) String() string { func (*StudySpec_ConvexStopConfig) ProtoMessage() {} func (x *StudySpec_ConvexStopConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1637,7 +1731,7 @@ func (x *StudySpec_ConvexStopConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_ConvexStopConfig.ProtoReflect.Descriptor instead. func (*StudySpec_ConvexStopConfig) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 5} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 5} } func (x *StudySpec_ConvexStopConfig) GetMaxNumSteps() int64 { @@ -1694,7 +1788,7 @@ type StudySpec_TransferLearningConfig struct { func (x *StudySpec_TransferLearningConfig) Reset() { *x = StudySpec_TransferLearningConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1707,7 +1801,7 @@ func (x *StudySpec_TransferLearningConfig) String() string { func (*StudySpec_TransferLearningConfig) ProtoMessage() {} func (x *StudySpec_TransferLearningConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1720,7 +1814,7 @@ func (x *StudySpec_TransferLearningConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use StudySpec_TransferLearningConfig.ProtoReflect.Descriptor instead. func (*StudySpec_TransferLearningConfig) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 6} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 6} } func (x *StudySpec_TransferLearningConfig) GetDisableTransferLearning() bool { @@ -1737,6 +1831,141 @@ func (x *StudySpec_TransferLearningConfig) GetPriorStudyNames() []string { return nil } +// The configuration (stopping conditions) for automated stopping of a Study. +// Conditions include trial budgets, time budgets, and convergence detection. +type StudySpec_StudyStoppingConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // If true, a Study enters STOPPING_ASAP whenever it would normally enters + // STOPPING state. + // + // The bottom line is: set to true if you want to interrupt on-going + // evaluations of Trials as soon as the study stopping condition is met. + // (Please see Study.State documentation for the source of truth). + ShouldStopAsap *wrapperspb.BoolValue `protobuf:"bytes,1,opt,name=should_stop_asap,json=shouldStopAsap,proto3" json:"should_stop_asap,omitempty"` + // Each "stopping rule" in this proto specifies an "if" condition. Before + // Vizier would generate a new suggestion, it first checks each specified + // stopping rule, from top to bottom in this list. + // Note that the first few rules (e.g. minimum_runtime_constraint, + // min_num_trials) will prevent other stopping rules from being evaluated + // until they are met. For example, setting `min_num_trials=5` and + // `always_stop_after= 1 hour` means that the Study will ONLY stop after it + // has 5 COMPLETED trials, even if more than an hour has passed since its + // creation. It follows the first applicable rule (whose "if" condition is + // satisfied) to make a stopping decision. If none of the specified rules + // are applicable, then Vizier decides that the study should not stop. + // If Vizier decides that the study should stop, the study enters + // STOPPING state (or STOPPING_ASAP if should_stop_asap = true). + // IMPORTANT: The automatic study state transition happens precisely as + // described above; that is, deleting trials or updating StudyConfig NEVER + // automatically moves the study state back to ACTIVE. If you want to + // _resume_ a Study that was stopped, 1) change the stopping conditions if + // necessary, 2) activate the study, and then 3) ask for suggestions. + // If the specified time or duration has not passed, do not stop the + // study. + MinimumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,2,opt,name=minimum_runtime_constraint,json=minimumRuntimeConstraint,proto3" json:"minimum_runtime_constraint,omitempty"` + // If the specified time or duration has passed, stop the study. + MaximumRuntimeConstraint *StudyTimeConstraint `protobuf:"bytes,3,opt,name=maximum_runtime_constraint,json=maximumRuntimeConstraint,proto3" json:"maximum_runtime_constraint,omitempty"` + // If there are fewer than this many COMPLETED trials, do not stop the + // study. + MinNumTrials *wrapperspb.Int32Value `protobuf:"bytes,4,opt,name=min_num_trials,json=minNumTrials,proto3" json:"min_num_trials,omitempty"` + // If there are more than this many trials, stop the study. + MaxNumTrials *wrapperspb.Int32Value `protobuf:"bytes,5,opt,name=max_num_trials,json=maxNumTrials,proto3" json:"max_num_trials,omitempty"` + // If the objective value has not improved for this many consecutive + // trials, stop the study. + // + // WARNING: Effective only for single-objective studies. + MaxNumTrialsNoProgress *wrapperspb.Int32Value `protobuf:"bytes,6,opt,name=max_num_trials_no_progress,json=maxNumTrialsNoProgress,proto3" json:"max_num_trials_no_progress,omitempty"` + // If the objective value has not improved for this much time, stop the + // study. + // + // WARNING: Effective only for single-objective studies. + MaxDurationNoProgress *durationpb.Duration `protobuf:"bytes,7,opt,name=max_duration_no_progress,json=maxDurationNoProgress,proto3" json:"max_duration_no_progress,omitempty"` +} + +func (x *StudySpec_StudyStoppingConfig) Reset() { + *x = StudySpec_StudyStoppingConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudySpec_StudyStoppingConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudySpec_StudyStoppingConfig) ProtoMessage() {} + +func (x *StudySpec_StudyStoppingConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudySpec_StudyStoppingConfig.ProtoReflect.Descriptor instead. +func (*StudySpec_StudyStoppingConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 7} +} + +func (x *StudySpec_StudyStoppingConfig) GetShouldStopAsap() *wrapperspb.BoolValue { + if x != nil { + return x.ShouldStopAsap + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMinimumRuntimeConstraint() *StudyTimeConstraint { + if x != nil { + return x.MinimumRuntimeConstraint + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaximumRuntimeConstraint() *StudyTimeConstraint { + if x != nil { + return x.MaximumRuntimeConstraint + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMinNumTrials() *wrapperspb.Int32Value { + if x != nil { + return x.MinNumTrials + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrials() *wrapperspb.Int32Value { + if x != nil { + return x.MaxNumTrials + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxNumTrialsNoProgress() *wrapperspb.Int32Value { + if x != nil { + return x.MaxNumTrialsNoProgress + } + return nil +} + +func (x *StudySpec_StudyStoppingConfig) GetMaxDurationNoProgress() *durationpb.Duration { + if x != nil { + return x.MaxDurationNoProgress + } + return nil +} + // Used in safe optimization to specify threshold levels and risk tolerance. type StudySpec_MetricSpec_SafetyMetricConfig struct { state protoimpl.MessageState @@ -1758,7 +1987,7 @@ type StudySpec_MetricSpec_SafetyMetricConfig struct { func (x *StudySpec_MetricSpec_SafetyMetricConfig) Reset() { *x = StudySpec_MetricSpec_SafetyMetricConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1771,7 +2000,7 @@ func (x *StudySpec_MetricSpec_SafetyMetricConfig) String() string { func (*StudySpec_MetricSpec_SafetyMetricConfig) ProtoMessage() {} func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1784,7 +2013,7 @@ func (x *StudySpec_MetricSpec_SafetyMetricConfig) ProtoReflect() protoreflect.Me // Deprecated: Use StudySpec_MetricSpec_SafetyMetricConfig.ProtoReflect.Descriptor instead. func (*StudySpec_MetricSpec_SafetyMetricConfig) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 0, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0, 0} } func (x *StudySpec_MetricSpec_SafetyMetricConfig) GetSafetyThreshold() float64 { @@ -1823,7 +2052,7 @@ type StudySpec_ParameterSpec_DoubleValueSpec struct { func (x *StudySpec_ParameterSpec_DoubleValueSpec) Reset() { *x = StudySpec_ParameterSpec_DoubleValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1836,7 +2065,7 @@ func (x *StudySpec_ParameterSpec_DoubleValueSpec) String() string { func (*StudySpec_ParameterSpec_DoubleValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1849,7 +2078,7 @@ func (x *StudySpec_ParameterSpec_DoubleValueSpec) ProtoReflect() protoreflect.Me // Deprecated: Use StudySpec_ParameterSpec_DoubleValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_DoubleValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 0} } func (x *StudySpec_ParameterSpec_DoubleValueSpec) GetMinValue() float64 { @@ -1895,7 +2124,7 @@ type StudySpec_ParameterSpec_IntegerValueSpec struct { func (x *StudySpec_ParameterSpec_IntegerValueSpec) Reset() { *x = StudySpec_ParameterSpec_IntegerValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1908,7 +2137,7 @@ func (x *StudySpec_ParameterSpec_IntegerValueSpec) String() string { func (*StudySpec_ParameterSpec_IntegerValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1921,7 +2150,7 @@ func (x *StudySpec_ParameterSpec_IntegerValueSpec) ProtoReflect() protoreflect.M // Deprecated: Use StudySpec_ParameterSpec_IntegerValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_IntegerValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 1} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 1} } func (x *StudySpec_ParameterSpec_IntegerValueSpec) GetMinValue() int64 { @@ -1965,7 +2194,7 @@ type StudySpec_ParameterSpec_CategoricalValueSpec struct { func (x *StudySpec_ParameterSpec_CategoricalValueSpec) Reset() { *x = StudySpec_ParameterSpec_CategoricalValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1978,7 +2207,7 @@ func (x *StudySpec_ParameterSpec_CategoricalValueSpec) String() string { func (*StudySpec_ParameterSpec_CategoricalValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1991,7 +2220,7 @@ func (x *StudySpec_ParameterSpec_CategoricalValueSpec) ProtoReflect() protorefle // Deprecated: Use StudySpec_ParameterSpec_CategoricalValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_CategoricalValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 2} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 2} } func (x *StudySpec_ParameterSpec_CategoricalValueSpec) GetValues() []string { @@ -2032,7 +2261,7 @@ type StudySpec_ParameterSpec_DiscreteValueSpec struct { func (x *StudySpec_ParameterSpec_DiscreteValueSpec) Reset() { *x = StudySpec_ParameterSpec_DiscreteValueSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2045,7 +2274,7 @@ func (x *StudySpec_ParameterSpec_DiscreteValueSpec) String() string { func (*StudySpec_ParameterSpec_DiscreteValueSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2058,7 +2287,7 @@ func (x *StudySpec_ParameterSpec_DiscreteValueSpec) ProtoReflect() protoreflect. // Deprecated: Use StudySpec_ParameterSpec_DiscreteValueSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_DiscreteValueSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 3} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 3} } func (x *StudySpec_ParameterSpec_DiscreteValueSpec) GetValues() []float64 { @@ -2096,7 +2325,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec struct { func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2109,7 +2338,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) String() string { func (*StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2122,7 +2351,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec) ProtoReflect() protor // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 4} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4} } func (m *StudySpec_ParameterSpec_ConditionalParameterSpec) GetParentValueCondition() isStudySpec_ParameterSpec_ConditionalParameterSpec_ParentValueCondition { @@ -2207,7 +2436,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition str func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2220,7 +2449,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2233,7 +2462,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 4, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 0} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition) GetValues() []float64 { @@ -2257,7 +2486,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition struct { func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2270,7 +2499,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Str func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2283,7 +2512,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Pro // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 4, 1} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 1} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition) GetValues() []int64 { @@ -2308,7 +2537,7 @@ type StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Reset() { *x = StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2321,7 +2550,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondit func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoMessage() {} func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2334,7 +2563,7 @@ func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondit // Deprecated: Use StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition.ProtoReflect.Descriptor instead. func (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{3, 1, 4, 2} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 1, 4, 2} } func (x *StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition) GetValues() []string { @@ -2360,7 +2589,7 @@ type Measurement_Metric struct { func (x *Measurement_Metric) Reset() { *x = Measurement_Metric{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2373,7 +2602,7 @@ func (x *Measurement_Metric) String() string { func (*Measurement_Metric) ProtoMessage() {} func (x *Measurement_Metric) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23] + mi := &file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2386,7 +2615,7 @@ func (x *Measurement_Metric) ProtoReflect() protoreflect.Message { // Deprecated: Use Measurement_Metric.ProtoReflect.Descriptor instead. func (*Measurement_Metric) Descriptor() ([]byte, []int) { - return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{4, 0} + return file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP(), []int{5, 0} } func (x *Measurement_Metric) GetMetricId() string { @@ -2420,7 +2649,9 @@ var file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = []byte{ 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x03, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, + 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf9, 0x03, 0x0a, 0x05, 0x53, 0x74, 0x75, 0x64, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, @@ -2533,363 +2764,422 @@ var file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc = []byte{ 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0xb8, 0x28, - 0x0a, 0x09, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x87, 0x01, 0x0a, 0x19, - 0x64, 0x65, 0x63, 0x61, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, - 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, - 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, - 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, - 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, + 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x9c, 0x01, + 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, + 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x22, 0xc4, 0x2e, 0x0a, + 0x09, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x87, 0x01, 0x0a, 0x19, 0x64, + 0x65, 0x63, 0x61, 0x79, 0x5f, 0x63, 0x75, 0x72, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, - 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x65, 0x63, 0x61, 0x79, + 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, + 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x16, 0x64, 0x65, + 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, - 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x5f, - 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, - 0x18, 0x01, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x78, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, - 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, - 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, - 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, - 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x54, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, - 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0a, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, + 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x6f, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x61, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, - 0x68, 0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, - 0x6f, 0x69, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, - 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x6d, 0x65, - 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, + 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x02, 0x18, + 0x01, 0x48, 0x00, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x1e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, - 0x18, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x1b, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x78, + 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, + 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x54, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x5d, 0x0a, 0x0a, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x84, 0x04, 0x0a, 0x0a, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, 0x67, - 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, + 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x68, + 0x0a, 0x11, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, + 0x69, 0x73, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, - 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, - 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x72, 0x0a, 0x0d, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, - 0x65, 0x63, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, 0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, - 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x29, 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, - 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, - 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, - 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x1c, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, - 0x69, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, - 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, - 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x1a, 0xda, 0x11, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, - 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x11, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, + 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x6d, 0x65, 0x61, + 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x18, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, 0x18, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, - 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x79, 0x0a, 0x12, 0x69, - 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x85, 0x01, 0x0a, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, - 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, - 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7c, - 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, - 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x16, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x77, 0x0a, 0x15, 0x73, 0x74, 0x75, + 0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, - 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x63, - 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0f, - 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, - 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, - 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, - 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, - 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, - 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, - 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, 0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, - 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x1a, 0xa0, 0x06, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, - 0x12, 0xa0, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, - 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x13, 0x73, 0x74, 0x75, 0x64, + 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, + 0x01, 0x01, 0x1a, 0x84, 0x04, 0x0a, 0x0a, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x49, 0x64, 0x12, 0x57, 0x0a, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x67, 0x6f, 0x61, 0x6c, 0x12, 0x72, 0x0a, 0x0d, + 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x61, 0x66, 0x65, 0x74, + 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, + 0x0c, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x88, 0x01, 0x01, + 0x1a, 0xb1, 0x01, 0x0a, 0x12, 0x53, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x29, 0x0a, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74, + 0x79, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, + 0x6c, 0x64, 0x12, 0x4b, 0x0a, 0x20, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, + 0x6e, 0x5f, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x1c, + 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x61, 0x66, 0x65, 0x54, 0x72, + 0x69, 0x61, 0x6c, 0x73, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, + 0x23, 0x0a, 0x21, 0x5f, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, + 0x73, 0x61, 0x66, 0x65, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x41, 0x0a, 0x08, 0x47, 0x6f, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x19, 0x0a, 0x15, 0x47, 0x4f, 0x41, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x4d, + 0x41, 0x58, 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x49, 0x4e, + 0x49, 0x4d, 0x49, 0x5a, 0x45, 0x10, 0x02, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x61, 0x66, 0x65, + 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0xda, 0x11, 0x0a, 0x0d, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0x76, 0x0a, 0x11, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, + 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x12, 0x79, 0x0a, 0x12, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x65, + 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x10, 0x69, 0x6e, + 0x74, 0x65, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x85, + 0x01, 0x0a, 0x16, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, + 0x52, 0x14, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7c, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, + 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, + 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x48, + 0x00, 0x52, 0x11, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x61, 0x0a, 0x0a, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x53, 0x63, 0x61, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x91, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, + 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, - 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, - 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, - 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x17, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, - 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, + 0x65, 0x63, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x0f, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6e, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x61, 0x78, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x92, 0x01, 0x0a, 0x10, 0x49, 0x6e, 0x74, 0x65, + 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x09, + 0x6d, 0x69, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x69, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, + 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, + 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6f, 0x0a, 0x14, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0x6c, 0x0a, + 0x11, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, + 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x1a, 0xa0, 0x06, 0x0a, 0x18, + 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x12, 0xa0, 0x01, 0x0a, 0x16, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x68, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, + 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, + 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, - 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, - 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, - 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, - 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, - 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x42, 0x16, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, - 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, - 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, - 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, - 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x1b, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, - 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, - 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, - 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a, 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, - 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, - 0x78, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, - 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x13, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, - 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, - 0x69, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, - 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, - 0x72, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0xf3, 0x01, 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, - 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, - 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x22, - 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, - 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, - 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, 0x02, 0x18, 0x01, 0x1a, 0x85, 0x01, 0x0a, 0x16, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x75, 0x64, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x53, 0x74, 0x75, 0x64, 0x79, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, - 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x47, - 0x52, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, - 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03, 0x22, - 0x48, 0x0a, 0x10, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, - 0x69, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65, 0x61, - 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, - 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, - 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54, 0x5f, - 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19, 0x0a, - 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, - 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, - 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, - 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x14, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, + 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x11, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, + 0x70, 0x65, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0f, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0xa9, 0x01, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x6b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, + 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, + 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x64, 0x0a, 0x0e, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x70, 0x65, 0x63, 0x2e, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x53, 0x70, 0x65, + 0x63, 0x1a, 0x35, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x63, 0x72, 0x65, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x30, 0x0a, 0x11, 0x49, 0x6e, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x1a, 0x38, 0x0a, 0x19, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, + 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, + 0x0a, 0x09, 0x53, 0x63, 0x61, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x53, + 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x55, 0x4e, 0x49, 0x54, 0x5f, + 0x4c, 0x49, 0x4e, 0x45, 0x41, 0x52, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, + 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x55, 0x4e, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x56, 0x45, 0x52, + 0x53, 0x45, 0x5f, 0x4c, 0x4f, 0x47, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x10, 0x03, 0x42, 0x16, + 0x0a, 0x14, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x1a, 0x53, 0x0a, 0x1f, 0x44, 0x65, 0x63, 0x61, 0x79, 0x43, + 0x75, 0x72, 0x76, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, 0x6f, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, 0x65, + 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, 0x70, + 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x4f, 0x0a, 0x1b, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x6e, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x74, + 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x75, 0x73, + 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, 0x45, 0x6c, 0x61, + 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0xee, 0x02, 0x0a, + 0x1b, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, + 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x24, 0x0a, 0x0e, + 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x53, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x53, + 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, + 0x6d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x6e, 0x4d, 0x65, 0x61, 0x73, + 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3f, 0x0a, 0x1c, + 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, + 0x14, 0x75, 0x73, 0x65, 0x5f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x73, 0x65, + 0x45, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3e, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x00, 0x52, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x53, + 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x42, + 0x1c, 0x0a, 0x1a, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x6c, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x1a, 0xf3, 0x01, + 0x0a, 0x10, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x78, 0x53, 0x74, 0x6f, 0x70, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x4e, 0x75, + 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, + 0x6d, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, + 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x53, 0x74, 0x65, 0x70, 0x73, 0x12, 0x31, 0x0a, 0x14, 0x61, 0x75, + 0x74, 0x6f, 0x72, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x5f, 0x6f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x65, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x69, 0x76, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x3f, 0x0a, + 0x1c, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x19, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, + 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x3a, + 0x02, 0x18, 0x01, 0x1a, 0x85, 0x01, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, + 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, + 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x17, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x4c, 0x65, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x11, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x75, 0x64, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x6f, + 0x72, 0x53, 0x74, 0x75, 0x64, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf6, 0x04, 0x0a, 0x13, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x5f, 0x61, 0x73, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x73, 0x68, 0x6f, 0x75, 0x6c, + 0x64, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x73, 0x61, 0x70, 0x12, 0x72, 0x0a, 0x1a, 0x6d, 0x69, 0x6e, + 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, + 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x12, 0x72, 0x0a, + 0x1a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, + 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, + 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x74, 0x52, 0x18, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, + 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e, + 0x74, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, + 0x61, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x69, 0x6e, 0x4e, 0x75, 0x6d, 0x54, 0x72, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x41, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x75, + 0x6d, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x6d, 0x61, 0x78, 0x5f, 0x6e, + 0x75, 0x6d, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x16, 0x6d, 0x61, 0x78, 0x4e, 0x75, 0x6d, + 0x54, 0x72, 0x69, 0x61, 0x6c, 0x73, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x52, 0x0a, 0x18, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6e, 0x6f, 0x5f, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0f, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, - 0x65, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0xe1, 0x01, 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, - 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, - 0x3b, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, - 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, - 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, - 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xea, 0x02, 0x22, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, - 0x64, 0x3a, 0x3a, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x15, 0x6d, + 0x61, 0x78, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x50, 0x72, 0x6f, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x09, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, + 0x47, 0x52, 0x49, 0x44, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x03, + 0x22, 0x48, 0x0a, 0x10, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, + 0x6f, 0x69, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x4f, 0x42, 0x53, 0x45, 0x52, 0x56, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4c, 0x4f, 0x57, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x48, 0x49, 0x47, 0x48, 0x10, 0x02, 0x22, 0x72, 0x0a, 0x18, 0x4d, 0x65, + 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x26, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, + 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x4c, 0x41, 0x53, 0x54, 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, + 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x45, 0x53, 0x54, + 0x5f, 0x4d, 0x45, 0x41, 0x53, 0x55, 0x52, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x42, 0x19, + 0x0a, 0x17, 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x6f, 0x70, + 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x73, 0x74, + 0x75, 0x64, 0x79, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x10, 0x65, 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x5f, 0x64, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65, + 0x6c, 0x61, 0x70, 0x73, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0a, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x73, 0x74, 0x65, 0x70, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x52, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x61, 0x73, 0x75, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x45, 0x0a, 0x06, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0xe1, 0x01, + 0x0a, 0x23, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x79, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x43, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x61, 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, + 0x69, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0x3b, 0x61, 0x69, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x70, 0x62, 0xaa, 0x02, 0x1f, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x2e, 0x56, 0x31, 0x42, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1f, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x41, 0x49, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xea, 0x02, 0x22, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x41, 0x49, + 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2905,7 +3195,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_rawDescGZIP() []byte { } var file_google_cloud_aiplatform_v1beta1_study_proto_enumTypes = make([]protoimpl.EnumInfo, 7) -var file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes = make([]protoimpl.MessageInfo, 26) var file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = []interface{}{ (Study_State)(0), // 0: google.cloud.aiplatform.v1beta1.Study.State (Trial_State)(0), // 1: google.cloud.aiplatform.v1beta1.Trial.State @@ -2917,73 +3207,87 @@ var file_google_cloud_aiplatform_v1beta1_study_proto_goTypes = []interface{}{ (*Study)(nil), // 7: google.cloud.aiplatform.v1beta1.Study (*Trial)(nil), // 8: google.cloud.aiplatform.v1beta1.Trial (*TrialContext)(nil), // 9: google.cloud.aiplatform.v1beta1.TrialContext - (*StudySpec)(nil), // 10: google.cloud.aiplatform.v1beta1.StudySpec - (*Measurement)(nil), // 11: google.cloud.aiplatform.v1beta1.Measurement - (*Trial_Parameter)(nil), // 12: google.cloud.aiplatform.v1beta1.Trial.Parameter - nil, // 13: google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry - (*StudySpec_MetricSpec)(nil), // 14: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec - (*StudySpec_ParameterSpec)(nil), // 15: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec - (*StudySpec_DecayCurveAutomatedStoppingSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec - (*StudySpec_MedianAutomatedStoppingSpec)(nil), // 17: google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec - (*StudySpec_ConvexAutomatedStoppingSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec - (*StudySpec_ConvexStopConfig)(nil), // 19: google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig - (*StudySpec_TransferLearningConfig)(nil), // 20: google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig - (*StudySpec_MetricSpec_SafetyMetricConfig)(nil), // 21: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig - (*StudySpec_ParameterSpec_DoubleValueSpec)(nil), // 22: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec - (*StudySpec_ParameterSpec_IntegerValueSpec)(nil), // 23: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec - (*StudySpec_ParameterSpec_CategoricalValueSpec)(nil), // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec - (*StudySpec_ParameterSpec_DiscreteValueSpec)(nil), // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec - (*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec - (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil), // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition - (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil), // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition - (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition - (*Measurement_Metric)(nil), // 30: google.cloud.aiplatform.v1beta1.Measurement.Metric - (*timestamppb.Timestamp)(nil), // 31: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 32: google.protobuf.Duration - (*structpb.Value)(nil), // 33: google.protobuf.Value + (*StudyTimeConstraint)(nil), // 10: google.cloud.aiplatform.v1beta1.StudyTimeConstraint + (*StudySpec)(nil), // 11: google.cloud.aiplatform.v1beta1.StudySpec + (*Measurement)(nil), // 12: google.cloud.aiplatform.v1beta1.Measurement + (*Trial_Parameter)(nil), // 13: google.cloud.aiplatform.v1beta1.Trial.Parameter + nil, // 14: google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry + (*StudySpec_MetricSpec)(nil), // 15: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec + (*StudySpec_ParameterSpec)(nil), // 16: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec + (*StudySpec_DecayCurveAutomatedStoppingSpec)(nil), // 17: google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec + (*StudySpec_MedianAutomatedStoppingSpec)(nil), // 18: google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec + (*StudySpec_ConvexAutomatedStoppingSpec)(nil), // 19: google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec + (*StudySpec_ConvexStopConfig)(nil), // 20: google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig + (*StudySpec_TransferLearningConfig)(nil), // 21: google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig + (*StudySpec_StudyStoppingConfig)(nil), // 22: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig + (*StudySpec_MetricSpec_SafetyMetricConfig)(nil), // 23: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig + (*StudySpec_ParameterSpec_DoubleValueSpec)(nil), // 24: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec + (*StudySpec_ParameterSpec_IntegerValueSpec)(nil), // 25: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec + (*StudySpec_ParameterSpec_CategoricalValueSpec)(nil), // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec + (*StudySpec_ParameterSpec_DiscreteValueSpec)(nil), // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec + (*StudySpec_ParameterSpec_ConditionalParameterSpec)(nil), // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec + (*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition)(nil), // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition + (*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition)(nil), // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition + (*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition)(nil), // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition + (*Measurement_Metric)(nil), // 32: google.cloud.aiplatform.v1beta1.Measurement.Metric + (*timestamppb.Timestamp)(nil), // 33: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 34: google.protobuf.Duration + (*structpb.Value)(nil), // 35: google.protobuf.Value + (*wrapperspb.BoolValue)(nil), // 36: google.protobuf.BoolValue + (*wrapperspb.Int32Value)(nil), // 37: google.protobuf.Int32Value } var file_google_cloud_aiplatform_v1beta1_study_proto_depIdxs = []int32{ - 10, // 0: google.cloud.aiplatform.v1beta1.Study.study_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec + 11, // 0: google.cloud.aiplatform.v1beta1.Study.study_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec 0, // 1: google.cloud.aiplatform.v1beta1.Study.state:type_name -> google.cloud.aiplatform.v1beta1.Study.State - 31, // 2: google.cloud.aiplatform.v1beta1.Study.create_time:type_name -> google.protobuf.Timestamp + 33, // 2: google.cloud.aiplatform.v1beta1.Study.create_time:type_name -> google.protobuf.Timestamp 1, // 3: google.cloud.aiplatform.v1beta1.Trial.state:type_name -> google.cloud.aiplatform.v1beta1.Trial.State - 12, // 4: google.cloud.aiplatform.v1beta1.Trial.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter - 11, // 5: google.cloud.aiplatform.v1beta1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1beta1.Measurement - 11, // 6: google.cloud.aiplatform.v1beta1.Trial.measurements:type_name -> google.cloud.aiplatform.v1beta1.Measurement - 31, // 7: google.cloud.aiplatform.v1beta1.Trial.start_time:type_name -> google.protobuf.Timestamp - 31, // 8: google.cloud.aiplatform.v1beta1.Trial.end_time:type_name -> google.protobuf.Timestamp - 13, // 9: google.cloud.aiplatform.v1beta1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry - 12, // 10: google.cloud.aiplatform.v1beta1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter - 16, // 11: google.cloud.aiplatform.v1beta1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec - 17, // 12: google.cloud.aiplatform.v1beta1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec - 19, // 13: google.cloud.aiplatform.v1beta1.StudySpec.convex_stop_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig - 18, // 14: google.cloud.aiplatform.v1beta1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec - 14, // 15: google.cloud.aiplatform.v1beta1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec - 15, // 16: google.cloud.aiplatform.v1beta1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec - 2, // 17: google.cloud.aiplatform.v1beta1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.Algorithm - 3, // 18: google.cloud.aiplatform.v1beta1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise - 4, // 19: google.cloud.aiplatform.v1beta1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType - 20, // 20: google.cloud.aiplatform.v1beta1.StudySpec.transfer_learning_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig - 32, // 21: google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration - 30, // 22: google.cloud.aiplatform.v1beta1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1beta1.Measurement.Metric - 33, // 23: google.cloud.aiplatform.v1beta1.Trial.Parameter.value:type_name -> google.protobuf.Value - 5, // 24: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType - 21, // 25: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig - 22, // 26: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec - 23, // 27: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec - 24, // 28: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec - 25, // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec - 6, // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType - 26, // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec - 27, // 32: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition - 28, // 33: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition - 29, // 34: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition - 15, // 35: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec - 36, // [36:36] is the sub-list for method output_type - 36, // [36:36] is the sub-list for method input_type - 36, // [36:36] is the sub-list for extension type_name - 36, // [36:36] is the sub-list for extension extendee - 0, // [0:36] is the sub-list for field type_name + 13, // 4: google.cloud.aiplatform.v1beta1.Trial.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter + 12, // 5: google.cloud.aiplatform.v1beta1.Trial.final_measurement:type_name -> google.cloud.aiplatform.v1beta1.Measurement + 12, // 6: google.cloud.aiplatform.v1beta1.Trial.measurements:type_name -> google.cloud.aiplatform.v1beta1.Measurement + 33, // 7: google.cloud.aiplatform.v1beta1.Trial.start_time:type_name -> google.protobuf.Timestamp + 33, // 8: google.cloud.aiplatform.v1beta1.Trial.end_time:type_name -> google.protobuf.Timestamp + 14, // 9: google.cloud.aiplatform.v1beta1.Trial.web_access_uris:type_name -> google.cloud.aiplatform.v1beta1.Trial.WebAccessUrisEntry + 13, // 10: google.cloud.aiplatform.v1beta1.TrialContext.parameters:type_name -> google.cloud.aiplatform.v1beta1.Trial.Parameter + 34, // 11: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.max_duration:type_name -> google.protobuf.Duration + 33, // 12: google.cloud.aiplatform.v1beta1.StudyTimeConstraint.end_time:type_name -> google.protobuf.Timestamp + 17, // 13: google.cloud.aiplatform.v1beta1.StudySpec.decay_curve_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.DecayCurveAutomatedStoppingSpec + 18, // 14: google.cloud.aiplatform.v1beta1.StudySpec.median_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MedianAutomatedStoppingSpec + 20, // 15: google.cloud.aiplatform.v1beta1.StudySpec.convex_stop_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexStopConfig + 19, // 16: google.cloud.aiplatform.v1beta1.StudySpec.convex_automated_stopping_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ConvexAutomatedStoppingSpec + 15, // 17: google.cloud.aiplatform.v1beta1.StudySpec.metrics:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec + 16, // 18: google.cloud.aiplatform.v1beta1.StudySpec.parameters:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec + 2, // 19: google.cloud.aiplatform.v1beta1.StudySpec.algorithm:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.Algorithm + 3, // 20: google.cloud.aiplatform.v1beta1.StudySpec.observation_noise:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ObservationNoise + 4, // 21: google.cloud.aiplatform.v1beta1.StudySpec.measurement_selection_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MeasurementSelectionType + 21, // 22: google.cloud.aiplatform.v1beta1.StudySpec.transfer_learning_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.TransferLearningConfig + 22, // 23: google.cloud.aiplatform.v1beta1.StudySpec.study_stopping_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig + 34, // 24: google.cloud.aiplatform.v1beta1.Measurement.elapsed_duration:type_name -> google.protobuf.Duration + 32, // 25: google.cloud.aiplatform.v1beta1.Measurement.metrics:type_name -> google.cloud.aiplatform.v1beta1.Measurement.Metric + 35, // 26: google.cloud.aiplatform.v1beta1.Trial.Parameter.value:type_name -> google.protobuf.Value + 5, // 27: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.goal:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.GoalType + 23, // 28: google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.safety_config:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.MetricSpec.SafetyMetricConfig + 24, // 29: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.double_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DoubleValueSpec + 25, // 30: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.integer_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.IntegerValueSpec + 26, // 31: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.categorical_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.CategoricalValueSpec + 27, // 32: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.discrete_value_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.DiscreteValueSpec + 6, // 33: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.scale_type:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ScaleType + 28, // 34: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.conditional_parameter_specs:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec + 36, // 35: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.should_stop_asap:type_name -> google.protobuf.BoolValue + 10, // 36: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.minimum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint + 10, // 37: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.maximum_runtime_constraint:type_name -> google.cloud.aiplatform.v1beta1.StudyTimeConstraint + 37, // 38: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.min_num_trials:type_name -> google.protobuf.Int32Value + 37, // 39: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials:type_name -> google.protobuf.Int32Value + 37, // 40: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_num_trials_no_progress:type_name -> google.protobuf.Int32Value + 34, // 41: google.cloud.aiplatform.v1beta1.StudySpec.StudyStoppingConfig.max_duration_no_progress:type_name -> google.protobuf.Duration + 29, // 42: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_discrete_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.DiscreteValueCondition + 30, // 43: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_int_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.IntValueCondition + 31, // 44: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parent_categorical_values:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.CategoricalValueCondition + 16, // 45: google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec.ConditionalParameterSpec.parameter_spec:type_name -> google.cloud.aiplatform.v1beta1.StudySpec.ParameterSpec + 46, // [46:46] is the sub-list for method output_type + 46, // [46:46] is the sub-list for method input_type + 46, // [46:46] is the sub-list for extension type_name + 46, // [46:46] is the sub-list for extension extendee + 0, // [0:46] is the sub-list for field type_name } func init() { file_google_cloud_aiplatform_v1beta1_study_proto_init() } @@ -3029,7 +3333,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { } } file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudySpec); i { + switch v := v.(*StudyTimeConstraint); i { case 0: return &v.state case 1: @@ -3041,7 +3345,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { } } file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Measurement); i { + switch v := v.(*StudySpec); i { case 0: return &v.state case 1: @@ -3053,6 +3357,18 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { } } file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Measurement); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Trial_Parameter); i { case 0: return &v.state @@ -3064,7 +3380,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MetricSpec); i { case 0: return &v.state @@ -3076,7 +3392,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec); i { case 0: return &v.state @@ -3088,7 +3404,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_DecayCurveAutomatedStoppingSpec); i { case 0: return &v.state @@ -3100,7 +3416,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MedianAutomatedStoppingSpec); i { case 0: return &v.state @@ -3112,7 +3428,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ConvexAutomatedStoppingSpec); i { case 0: return &v.state @@ -3124,7 +3440,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ConvexStopConfig); i { case 0: return &v.state @@ -3136,7 +3452,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_TransferLearningConfig); i { case 0: return &v.state @@ -3148,7 +3464,19 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudySpec_StudyStoppingConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_MetricSpec_SafetyMetricConfig); i { case 0: return &v.state @@ -3160,7 +3488,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_DoubleValueSpec); i { case 0: return &v.state @@ -3172,7 +3500,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_IntegerValueSpec); i { case 0: return &v.state @@ -3184,7 +3512,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_CategoricalValueSpec); i { case 0: return &v.state @@ -3196,7 +3524,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_DiscreteValueSpec); i { case 0: return &v.state @@ -3208,7 +3536,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec); i { case 0: return &v.state @@ -3220,7 +3548,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_DiscreteValueCondition); i { case 0: return &v.state @@ -3232,7 +3560,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_IntValueCondition); i { case 0: return &v.state @@ -3244,7 +3572,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StudySpec_ParameterSpec_ConditionalParameterSpec_CategoricalValueCondition); i { case 0: return &v.state @@ -3256,7 +3584,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { return nil } } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Measurement_Metric); i { case 0: return &v.state @@ -3270,25 +3598,29 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { } } file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*StudyTimeConstraint_MaxDuration)(nil), + (*StudyTimeConstraint_EndTime)(nil), + } + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[4].OneofWrappers = []interface{}{ (*StudySpec_DecayCurveStoppingSpec)(nil), (*StudySpec_MedianAutomatedStoppingSpec_)(nil), (*StudySpec_ConvexStopConfig_)(nil), (*StudySpec_ConvexAutomatedStoppingSpec_)(nil), } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[7].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[9].OneofWrappers = []interface{}{ (*StudySpec_ParameterSpec_DoubleValueSpec_)(nil), (*StudySpec_ParameterSpec_IntegerValueSpec_)(nil), (*StudySpec_ParameterSpec_CategoricalValueSpec_)(nil), (*StudySpec_ParameterSpec_DiscreteValueSpec_)(nil), } - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[11].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[14].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[15].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[12].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[16].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[17].OneofWrappers = []interface{}{} file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[18].OneofWrappers = []interface{}{} - file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].OneofWrappers = []interface{}{ + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[19].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[20].OneofWrappers = []interface{}{} + file_google_cloud_aiplatform_v1beta1_study_proto_msgTypes[21].OneofWrappers = []interface{}{ (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentDiscreteValues)(nil), (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentIntValues)(nil), (*StudySpec_ParameterSpec_ConditionalParameterSpec_ParentCategoricalValues)(nil), @@ -3299,7 +3631,7 @@ func file_google_cloud_aiplatform_v1beta1_study_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_aiplatform_v1beta1_study_proto_rawDesc, NumEnums: 7, - NumMessages: 24, + NumMessages: 26, NumExtensions: 0, NumServices: 0, }, diff --git a/aiplatform/apiv1beta1/auxiliary.go b/aiplatform/apiv1beta1/auxiliary.go index 5f21996b3459..79c0673cd086 100755 --- a/aiplatform/apiv1beta1/auxiliary.go +++ b/aiplatform/apiv1beta1/auxiliary.go @@ -92,6 +92,70 @@ func (op *BatchCreateFeaturesOperation) Name() string { return op.lro.Name() } +// BatchDeletePipelineJobsOperation manages a long-running operation from BatchDeletePipelineJobs. +type BatchDeletePipelineJobsOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *BatchDeletePipelineJobsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.BatchDeletePipelineJobsResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp aiplatformpb.BatchDeletePipelineJobsResponse + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *BatchDeletePipelineJobsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*aiplatformpb.BatchDeletePipelineJobsResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp aiplatformpb.BatchDeletePipelineJobsResponse + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *BatchDeletePipelineJobsOperation) Metadata() (*aiplatformpb.DeleteOperationMetadata, error) { + var meta aiplatformpb.DeleteOperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *BatchDeletePipelineJobsOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *BatchDeletePipelineJobsOperation) Name() string { + return op.lro.Name() +} + // BatchMigrateResourcesOperation manages a long-running operation from BatchMigrateResources. type BatchMigrateResourcesOperation struct { lro *longrunning.Operation diff --git a/aiplatform/apiv1beta1/gapic_metadata.json b/aiplatform/apiv1beta1/gapic_metadata.json index 3c077fe4ce20..94282e08cf6b 100644 --- a/aiplatform/apiv1beta1/gapic_metadata.json +++ b/aiplatform/apiv1beta1/gapic_metadata.json @@ -2559,6 +2559,130 @@ } } }, + "LlmUtilityService": { + "clients": { + "grpc": { + "libraryClient": "LlmUtilityClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "ComputeTokens": { + "methods": [ + "ComputeTokens" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + }, + "rest": { + "libraryClient": "LlmUtilityClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "ComputeTokens": { + "methods": [ + "ComputeTokens" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "WaitOperation": { + "methods": [ + "WaitOperation" + ] + } + } + } + } + }, "MatchService": { "clients": { "grpc": { @@ -3858,6 +3982,11 @@ "grpc": { "libraryClient": "PipelineClient", "rpcs": { + "BatchDeletePipelineJobs": { + "methods": [ + "BatchDeletePipelineJobs" + ] + }, "CancelOperation": { "methods": [ "CancelOperation" @@ -3963,6 +4092,11 @@ "rest": { "libraryClient": "PipelineClient", "rpcs": { + "BatchDeletePipelineJobs": { + "methods": [ + "BatchDeletePipelineJobs" + ] + }, "CancelOperation": { "methods": [ "CancelOperation" diff --git a/aiplatform/apiv1beta1/llm_utility_client.go b/aiplatform/apiv1beta1/llm_utility_client.go new file mode 100755 index 000000000000..c53aaa63d2c5 --- /dev/null +++ b/aiplatform/apiv1beta1/llm_utility_client.go @@ -0,0 +1,1304 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/googleapi" + "google.golang.org/api/iterator" + "google.golang.org/api/option" + "google.golang.org/api/option/internaloption" + gtransport "google.golang.org/api/transport/grpc" + httptransport "google.golang.org/api/transport/http" + locationpb "google.golang.org/genproto/googleapis/cloud/location" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newLlmUtilityClientHook clientHook + +// LlmUtilityCallOptions contains the retry settings for each method of LlmUtilityClient. +type LlmUtilityCallOptions struct { + ComputeTokens []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption +} + +func defaultLlmUtilityGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("aiplatform.googleapis.com:443"), + internaloption.WithDefaultMTLSEndpoint("aiplatform.mtls.googleapis.com:443"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultLlmUtilityCallOptions() *LlmUtilityCallOptions { + return &LlmUtilityCallOptions{ + ComputeTokens: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +func defaultLlmUtilityRESTCallOptions() *LlmUtilityCallOptions { + return &LlmUtilityCallOptions{ + ComputeTokens: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, + } +} + +// internalLlmUtilityClient is an interface that defines the methods available from Vertex AI API. +type internalLlmUtilityClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ComputeTokens(context.Context, *aiplatformpb.ComputeTokensRequest, ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + GetIamPolicy(context.Context, *iampb.GetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + SetIamPolicy(context.Context, *iampb.SetIamPolicyRequest, ...gax.CallOption) (*iampb.Policy, error) + TestIamPermissions(context.Context, *iampb.TestIamPermissionsRequest, ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator + WaitOperation(context.Context, *longrunningpb.WaitOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) +} + +// LlmUtilityClient is a client for interacting with Vertex AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service for LLM related utility functions. +type LlmUtilityClient struct { + // The internal transport-dependent client. + internalClient internalLlmUtilityClient + + // The call options for this service. + CallOptions *LlmUtilityCallOptions +} + +// Wrapper methods routed to the internal client. + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *LlmUtilityClient) Close() error { + return c.internalClient.Close() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *LlmUtilityClient) setGoogleClientInfo(keyval ...string) { + c.internalClient.setGoogleClientInfo(keyval...) +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *LlmUtilityClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ComputeTokens return a list of tokens based on the input text. +func (c *LlmUtilityClient) ComputeTokens(ctx context.Context, req *aiplatformpb.ComputeTokensRequest, opts ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) { + return c.internalClient.ComputeTokens(ctx, req, opts...) +} + +// GetLocation gets information about a location. +func (c *LlmUtilityClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *LlmUtilityClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *LlmUtilityClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.GetIamPolicy(ctx, req, opts...) +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *LlmUtilityClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + return c.internalClient.SetIamPolicy(ctx, req, opts...) +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *LlmUtilityClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + return c.internalClient.TestIamPermissions(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *LlmUtilityClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.WaitOperation(ctx, req, opts...) +} + +// llmUtilityGRPCClient is a client for interacting with Vertex AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type llmUtilityGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing LlmUtilityClient + CallOptions **LlmUtilityCallOptions + + // The gRPC API client. + llmUtilityClient aiplatformpb.LlmUtilityServiceClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + locationsClient locationpb.LocationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewLlmUtilityClient creates a new llm utility service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service for LLM related utility functions. +func NewLlmUtilityClient(ctx context.Context, opts ...option.ClientOption) (*LlmUtilityClient, error) { + clientOpts := defaultLlmUtilityGRPCClientOptions() + if newLlmUtilityClientHook != nil { + hookOpts, err := newLlmUtilityClientHook(ctx, clientHookParams{}) + if err != nil { + return nil, err + } + clientOpts = append(clientOpts, hookOpts...) + } + + connPool, err := gtransport.DialPool(ctx, append(clientOpts, opts...)...) + if err != nil { + return nil, err + } + client := LlmUtilityClient{CallOptions: defaultLlmUtilityCallOptions()} + + c := &llmUtilityGRPCClient{ + connPool: connPool, + llmUtilityClient: aiplatformpb.NewLlmUtilityServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), + } + c.setGoogleClientInfo() + + client.internalClient = c + + return &client, nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: Connections are now pooled so this method does not always +// return the same resource. +func (c *llmUtilityGRPCClient) Connection() *grpc.ClientConn { + return c.connPool.Conn() +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *llmUtilityGRPCClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "grpc", grpc.Version) + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *llmUtilityGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type llmUtilityRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing LlmUtilityClient + CallOptions **LlmUtilityCallOptions +} + +// NewLlmUtilityRESTClient creates a new llm utility service rest client. +// +// Service for LLM related utility functions. +func NewLlmUtilityRESTClient(ctx context.Context, opts ...option.ClientOption) (*LlmUtilityClient, error) { + clientOpts := append(defaultLlmUtilityRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultLlmUtilityRESTCallOptions() + c := &llmUtilityRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &LlmUtilityClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultLlmUtilityRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://aiplatform.googleapis.com"), + internaloption.WithDefaultMTLSEndpoint("https://aiplatform.mtls.googleapis.com"), + internaloption.WithDefaultAudience("https://aiplatform.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + } +} + +// setGoogleClientInfo sets the name and version of the application in +// the `x-goog-api-client` header passed on each request. Intended for +// use by Google-written clients. +func (c *llmUtilityRESTClient) setGoogleClientInfo(keyval ...string) { + kv := append([]string{"gl-go", gax.GoVersion}, keyval...) + kv = append(kv, "gapic", getVersionClient(), "gax", gax.Version, "rest", "UNKNOWN") + c.xGoogHeaders = []string{"x-goog-api-client", gax.XGoogHeader(kv...)} +} + +// Close closes the connection to the API service. The user should invoke this when +// the client is no longer required. +func (c *llmUtilityRESTClient) Close() error { + // Replace httpClient with nil to force cleanup. + c.httpClient = nil + return nil +} + +// Connection returns a connection to the API service. +// +// Deprecated: This method always returns nil. +func (c *llmUtilityRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *llmUtilityGRPCClient) ComputeTokens(ctx context.Context, req *aiplatformpb.ComputeTokensRequest, opts ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ComputeTokens[0:len((*c.CallOptions).ComputeTokens):len((*c.CallOptions).ComputeTokens)], opts...) + var resp *aiplatformpb.ComputeTokensResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.llmUtilityClient.ComputeTokens(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *llmUtilityGRPCClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.GetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + var resp *iampb.Policy + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.SetIamPolicy(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + var resp *iampb.TestIamPermissionsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.iamPolicyClient.TestIamPermissions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *llmUtilityGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *llmUtilityGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *llmUtilityGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *llmUtilityGRPCClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.WaitOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +// ComputeTokens return a list of tokens based on the input text. +func (c *llmUtilityRESTClient) ComputeTokens(ctx context.Context, req *aiplatformpb.ComputeTokensRequest, opts ...gax.CallOption) (*aiplatformpb.ComputeTokensResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:computeTokens", req.GetEndpoint()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "endpoint", url.QueryEscape(req.GetEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ComputeTokens[0:len((*c.CallOptions).ComputeTokens):len((*c.CallOptions).ComputeTokens)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &aiplatformpb.ComputeTokensResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// GetLocation gets information about a location. +func (c *llmUtilityRESTClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/ui/%v", req.GetName()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &locationpb.Location{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListLocations lists information about the supported locations for this service. +func (c *llmUtilityRESTClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/ui/%v/locations", req.GetName()) + + params := url.Values{} + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// GetIamPolicy gets the access control policy for a resource. Returns an empty policy +// if the resource exists and does not have a policy set. +func (c *llmUtilityRESTClient) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:getIamPolicy", req.GetResource()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetIamPolicy[0:len((*c.CallOptions).GetIamPolicy):len((*c.CallOptions).GetIamPolicy)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &iampb.Policy{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// SetIamPolicy sets the access control policy on the specified resource. Replaces +// any existing policy. +// +// Can return NOT_FOUND, INVALID_ARGUMENT, and PERMISSION_DENIED +// errors. +func (c *llmUtilityRESTClient) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:setIamPolicy", req.GetResource()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).SetIamPolicy[0:len((*c.CallOptions).SetIamPolicy):len((*c.CallOptions).SetIamPolicy)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &iampb.Policy{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// TestIamPermissions returns permissions that a caller has on the specified resource. If the +// resource does not exist, this will return an empty set of +// permissions, not a NOT_FOUND error. +// +// Note: This operation is designed to be used for building +// permission-aware UIs and command-line tools, not for authorization +// checking. This operation may “fail open” without warning. +func (c *llmUtilityRESTClient) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v:testIamPermissions", req.GetResource()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "resource", url.QueryEscape(req.GetResource()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).TestIamPermissions[0:len((*c.CallOptions).TestIamPermissions):len((*c.CallOptions).TestIamPermissions)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &iampb.TestIamPermissionsResponse{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *llmUtilityRESTClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/ui/%v:cancel", req.GetName()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + // Returns nil if there is no error, otherwise wraps + // the response code and body into a non-nil error + return googleapi.CheckResponse(httpRsp) + }, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *llmUtilityRESTClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/ui/%v", req.GetName()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + // Returns nil if there is no error, otherwise wraps + // the response code and body into a non-nil error + return googleapi.CheckResponse(httpRsp) + }, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *llmUtilityRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/ui/%v", req.GetName()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *llmUtilityRESTClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/ui/%v/operations", req.GetName()) + + params := url.Values{} + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// WaitOperation is a utility method from google.longrunning.Operations. +func (c *llmUtilityRESTClient) WaitOperation(ctx context.Context, req *longrunningpb.WaitOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/ui/%v:wait", req.GetName()) + + params := url.Values{} + if req.GetTimeout() != nil { + timeout, err := protojson.Marshal(req.GetTimeout()) + if err != nil { + return nil, err + } + params.Add("timeout", string(timeout[1:len(timeout)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).WaitOperation[0:len((*c.CallOptions).WaitOperation):len((*c.CallOptions).WaitOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} diff --git a/aiplatform/apiv1beta1/llm_utility_client_example_test.go b/aiplatform/apiv1beta1/llm_utility_client_example_test.go new file mode 100644 index 000000000000..ec2e485cb994 --- /dev/null +++ b/aiplatform/apiv1beta1/llm_utility_client_example_test.go @@ -0,0 +1,345 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +package aiplatform_test + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func ExampleNewLlmUtilityClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewLlmUtilityRESTClient() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleLlmUtilityClient_ComputeTokens() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ComputeTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#ComputeTokensRequest. + } + resp, err := c.ComputeTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLlmUtilityClient_GetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_SetIamPolicy() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_TestIamPermissions() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLlmUtilityClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLlmUtilityClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLlmUtilityClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLlmUtilityClient_WaitOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} diff --git a/aiplatform/apiv1beta1/pipeline_client.go b/aiplatform/apiv1beta1/pipeline_client.go index a1560a37bd0f..f1cc47eefa91 100755 --- a/aiplatform/apiv1beta1/pipeline_client.go +++ b/aiplatform/apiv1beta1/pipeline_client.go @@ -48,26 +48,27 @@ var newPipelineClientHook clientHook // PipelineCallOptions contains the retry settings for each method of PipelineClient. type PipelineCallOptions struct { - CreateTrainingPipeline []gax.CallOption - GetTrainingPipeline []gax.CallOption - ListTrainingPipelines []gax.CallOption - DeleteTrainingPipeline []gax.CallOption - CancelTrainingPipeline []gax.CallOption - CreatePipelineJob []gax.CallOption - GetPipelineJob []gax.CallOption - ListPipelineJobs []gax.CallOption - DeletePipelineJob []gax.CallOption - CancelPipelineJob []gax.CallOption - GetLocation []gax.CallOption - ListLocations []gax.CallOption - GetIamPolicy []gax.CallOption - SetIamPolicy []gax.CallOption - TestIamPermissions []gax.CallOption - CancelOperation []gax.CallOption - DeleteOperation []gax.CallOption - GetOperation []gax.CallOption - ListOperations []gax.CallOption - WaitOperation []gax.CallOption + CreateTrainingPipeline []gax.CallOption + GetTrainingPipeline []gax.CallOption + ListTrainingPipelines []gax.CallOption + DeleteTrainingPipeline []gax.CallOption + CancelTrainingPipeline []gax.CallOption + CreatePipelineJob []gax.CallOption + GetPipelineJob []gax.CallOption + ListPipelineJobs []gax.CallOption + DeletePipelineJob []gax.CallOption + BatchDeletePipelineJobs []gax.CallOption + CancelPipelineJob []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption + WaitOperation []gax.CallOption } func defaultPipelineGRPCClientOptions() []option.ClientOption { @@ -99,21 +100,22 @@ func defaultPipelineCallOptions() *PipelineCallOptions { CancelTrainingPipeline: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, - CreatePipelineJob: []gax.CallOption{}, - GetPipelineJob: []gax.CallOption{}, - ListPipelineJobs: []gax.CallOption{}, - DeletePipelineJob: []gax.CallOption{}, - CancelPipelineJob: []gax.CallOption{}, - GetLocation: []gax.CallOption{}, - ListLocations: []gax.CallOption{}, - GetIamPolicy: []gax.CallOption{}, - SetIamPolicy: []gax.CallOption{}, - TestIamPermissions: []gax.CallOption{}, - CancelOperation: []gax.CallOption{}, - DeleteOperation: []gax.CallOption{}, - GetOperation: []gax.CallOption{}, - ListOperations: []gax.CallOption{}, - WaitOperation: []gax.CallOption{}, + CreatePipelineJob: []gax.CallOption{}, + GetPipelineJob: []gax.CallOption{}, + ListPipelineJobs: []gax.CallOption{}, + DeletePipelineJob: []gax.CallOption{}, + BatchDeletePipelineJobs: []gax.CallOption{}, + CancelPipelineJob: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, } } @@ -134,21 +136,22 @@ func defaultPipelineRESTCallOptions() *PipelineCallOptions { CancelTrainingPipeline: []gax.CallOption{ gax.WithTimeout(5000 * time.Millisecond), }, - CreatePipelineJob: []gax.CallOption{}, - GetPipelineJob: []gax.CallOption{}, - ListPipelineJobs: []gax.CallOption{}, - DeletePipelineJob: []gax.CallOption{}, - CancelPipelineJob: []gax.CallOption{}, - GetLocation: []gax.CallOption{}, - ListLocations: []gax.CallOption{}, - GetIamPolicy: []gax.CallOption{}, - SetIamPolicy: []gax.CallOption{}, - TestIamPermissions: []gax.CallOption{}, - CancelOperation: []gax.CallOption{}, - DeleteOperation: []gax.CallOption{}, - GetOperation: []gax.CallOption{}, - ListOperations: []gax.CallOption{}, - WaitOperation: []gax.CallOption{}, + CreatePipelineJob: []gax.CallOption{}, + GetPipelineJob: []gax.CallOption{}, + ListPipelineJobs: []gax.CallOption{}, + DeletePipelineJob: []gax.CallOption{}, + BatchDeletePipelineJobs: []gax.CallOption{}, + CancelPipelineJob: []gax.CallOption{}, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + WaitOperation: []gax.CallOption{}, } } @@ -168,6 +171,8 @@ type internalPipelineClient interface { ListPipelineJobs(context.Context, *aiplatformpb.ListPipelineJobsRequest, ...gax.CallOption) *PipelineJobIterator DeletePipelineJob(context.Context, *aiplatformpb.DeletePipelineJobRequest, ...gax.CallOption) (*DeletePipelineJobOperation, error) DeletePipelineJobOperation(name string) *DeletePipelineJobOperation + BatchDeletePipelineJobs(context.Context, *aiplatformpb.BatchDeletePipelineJobsRequest, ...gax.CallOption) (*BatchDeletePipelineJobsOperation, error) + BatchDeletePipelineJobsOperation(name string) *BatchDeletePipelineJobsOperation CancelPipelineJob(context.Context, *aiplatformpb.CancelPipelineJobRequest, ...gax.CallOption) error GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator @@ -294,6 +299,19 @@ func (c *PipelineClient) DeletePipelineJobOperation(name string) *DeletePipeline return c.internalClient.DeletePipelineJobOperation(name) } +// BatchDeletePipelineJobs batch deletes PipelineJobs +// The Operation is atomic. If it fails, none of the PipelineJobs are deleted. +// If it succeeds, all of the PipelineJobs are deleted. +func (c *PipelineClient) BatchDeletePipelineJobs(ctx context.Context, req *aiplatformpb.BatchDeletePipelineJobsRequest, opts ...gax.CallOption) (*BatchDeletePipelineJobsOperation, error) { + return c.internalClient.BatchDeletePipelineJobs(ctx, req, opts...) +} + +// BatchDeletePipelineJobsOperation returns a new BatchDeletePipelineJobsOperation from a given name. +// The name must be that of a previously created BatchDeletePipelineJobsOperation, possibly from a different process. +func (c *PipelineClient) BatchDeletePipelineJobsOperation(name string) *BatchDeletePipelineJobsOperation { + return c.internalClient.BatchDeletePipelineJobsOperation(name) +} + // CancelPipelineJob cancels a PipelineJob. // Starts asynchronous cancellation on the PipelineJob. The server // makes a best effort to cancel the pipeline, but success is not @@ -774,6 +792,26 @@ func (c *pipelineGRPCClient) DeletePipelineJob(ctx context.Context, req *aiplatf }, nil } +func (c *pipelineGRPCClient) BatchDeletePipelineJobs(ctx context.Context, req *aiplatformpb.BatchDeletePipelineJobsRequest, opts ...gax.CallOption) (*BatchDeletePipelineJobsOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).BatchDeletePipelineJobs[0:len((*c.CallOptions).BatchDeletePipelineJobs):len((*c.CallOptions).BatchDeletePipelineJobs)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.pipelineClient.BatchDeletePipelineJobs(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &BatchDeletePipelineJobsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + func (c *pipelineGRPCClient) CancelPipelineJob(ctx context.Context, req *aiplatformpb.CancelPipelineJobRequest, opts ...gax.CallOption) error { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} @@ -1631,6 +1669,73 @@ func (c *pipelineRESTClient) DeletePipelineJob(ctx context.Context, req *aiplatf }, nil } +// BatchDeletePipelineJobs batch deletes PipelineJobs +// The Operation is atomic. If it fails, none of the PipelineJobs are deleted. +// If it succeeds, all of the PipelineJobs are deleted. +func (c *pipelineRESTClient) BatchDeletePipelineJobs(ctx context.Context, req *aiplatformpb.BatchDeletePipelineJobsRequest, opts ...gax.CallOption) (*BatchDeletePipelineJobsOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1beta1/%v/pipelineJobs:batchDelete", req.GetParent()) + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/ui/%s", resp.GetName()) + return &BatchDeletePipelineJobsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + // CancelPipelineJob cancels a PipelineJob. // Starts asynchronous cancellation on the PipelineJob. The server // makes a best effort to cancel the pipeline, but success is not @@ -2312,6 +2417,24 @@ func (c *pipelineRESTClient) WaitOperation(ctx context.Context, req *longrunning return resp, nil } +// BatchDeletePipelineJobsOperation returns a new BatchDeletePipelineJobsOperation from a given name. +// The name must be that of a previously created BatchDeletePipelineJobsOperation, possibly from a different process. +func (c *pipelineGRPCClient) BatchDeletePipelineJobsOperation(name string) *BatchDeletePipelineJobsOperation { + return &BatchDeletePipelineJobsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// BatchDeletePipelineJobsOperation returns a new BatchDeletePipelineJobsOperation from a given name. +// The name must be that of a previously created BatchDeletePipelineJobsOperation, possibly from a different process. +func (c *pipelineRESTClient) BatchDeletePipelineJobsOperation(name string) *BatchDeletePipelineJobsOperation { + override := fmt.Sprintf("/ui/%s", name) + return &BatchDeletePipelineJobsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + // DeletePipelineJobOperation returns a new DeletePipelineJobOperation from a given name. // The name must be that of a previously created DeletePipelineJobOperation, possibly from a different process. func (c *pipelineGRPCClient) DeletePipelineJobOperation(name string) *DeletePipelineJobOperation { diff --git a/aiplatform/apiv1beta1/pipeline_client_example_test.go b/aiplatform/apiv1beta1/pipeline_client_example_test.go index f6f01849b218..a3287498053d 100644 --- a/aiplatform/apiv1beta1/pipeline_client_example_test.go +++ b/aiplatform/apiv1beta1/pipeline_client_example_test.go @@ -61,6 +61,36 @@ func ExampleNewPipelineRESTClient() { _ = c } +func ExamplePipelineClient_BatchDeletePipelineJobs() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewPipelineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.BatchDeletePipelineJobsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#BatchDeletePipelineJobsRequest. + } + op, err := c.BatchDeletePipelineJobs(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExamplePipelineClient_CancelPipelineJob() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. diff --git a/confidentialcomputing/apiv1/confidentialcomputingpb/service.pb.go b/confidentialcomputing/apiv1/confidentialcomputingpb/service.pb.go index 0b0a8a5a5d8d..2a3c116b5e9b 100755 --- a/confidentialcomputing/apiv1/confidentialcomputingpb/service.pb.go +++ b/confidentialcomputing/apiv1/confidentialcomputingpb/service.pb.go @@ -99,6 +99,56 @@ func (SigningAlgorithm) EnumDescriptor() ([]byte, []int) { return file_google_cloud_confidentialcomputing_v1_service_proto_rawDescGZIP(), []int{0} } +// Token type enum contains the different types of token responses Confidential +// Space supports +type TokenType int32 + +const ( + // Unspecified token type + TokenType_TOKEN_TYPE_UNSPECIFIED TokenType = 0 + // OpenID Connect (OIDC) token type + TokenType_TOKEN_TYPE_OIDC TokenType = 1 +) + +// Enum value maps for TokenType. +var ( + TokenType_name = map[int32]string{ + 0: "TOKEN_TYPE_UNSPECIFIED", + 1: "TOKEN_TYPE_OIDC", + } + TokenType_value = map[string]int32{ + "TOKEN_TYPE_UNSPECIFIED": 0, + "TOKEN_TYPE_OIDC": 1, + } +) + +func (x TokenType) Enum() *TokenType { + p := new(TokenType) + *p = x + return p +} + +func (x TokenType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TokenType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_confidentialcomputing_v1_service_proto_enumTypes[1].Descriptor() +} + +func (TokenType) Type() protoreflect.EnumType { + return &file_google_cloud_confidentialcomputing_v1_service_proto_enumTypes[1] +} + +func (x TokenType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TokenType.Descriptor instead. +func (TokenType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_confidentialcomputing_v1_service_proto_rawDescGZIP(), []int{1} +} + // A Challenge from the server used to guarantee freshness of attestations type Challenge struct { state protoimpl.MessageState @@ -460,6 +510,8 @@ type TokenOptions struct { // claim in the output token. The minimum size for JSON-encoded EATs is 10 // bytes and the maximum size is 74 bytes. Nonce []string `protobuf:"bytes,2,rep,name=nonce,proto3" json:"nonce,omitempty"` + // Optional. Optional token type to select what type of token to return. + TokenType TokenType `protobuf:"varint,3,opt,name=token_type,json=tokenType,proto3,enum=google.cloud.confidentialcomputing.v1.TokenType" json:"token_type,omitempty"` } func (x *TokenOptions) Reset() { @@ -508,6 +560,13 @@ func (x *TokenOptions) GetNonce() []string { return nil } +func (x *TokenOptions) GetTokenType() TokenType { + if x != nil { + return x.TokenType + } + return TokenType_TOKEN_TYPE_UNSPECIFIED +} + // TPM2 data containing everything necessary to validate any platform state // measured into the TPM. type TpmAttestation struct { @@ -963,136 +1022,146 @@ var file_google_cloud_confidentialcomputing_v1_service_proto_rawDesc = []byte{ 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0x4a, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x61, 0x75, - 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, - 0x65, 0x22, 0x83, 0x04, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x70, 0x6d, - 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x6f, 0x74, - 0x65, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x63, 0x67, - 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x0b, 0x74, 0x63, 0x67, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, - 0x13, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x6f, - 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x17, 0x0a, - 0x07, 0x61, 0x6b, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, - 0x61, 0x6b, 0x43, 0x65, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x63, - 0x68, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x63, 0x65, 0x72, 0x74, - 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x8f, 0x02, 0x0a, 0x05, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, - 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, 0x6c, 0x67, 0x6f, 0x12, 0x69, 0x0a, 0x0a, - 0x70, 0x63, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x70, 0x6d, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x63, - 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x63, - 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x71, - 0x75, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x72, 0x61, 0x77, 0x51, - 0x75, 0x6f, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x61, 0x77, 0x5f, 0x73, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x61, 0x77, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x50, 0x63, 0x72, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x61, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x69, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, - 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, 0xd6, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e, - 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, - 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, - 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x55, 0x0a, 0x07, 0x73, 0x69, - 0x67, 0x5f, 0x61, 0x6c, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x0c, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x61, 0x75, 0x64, 0x69, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x61, + 0x75, 0x64, 0x69, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x83, 0x04, 0x0a, 0x0e, 0x54, 0x70, 0x6d, + 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x06, 0x71, + 0x75, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x73, 0x69, 0x67, 0x41, 0x6c, - 0x67, 0x2a, 0x7f, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x49, 0x47, 0x4e, 0x49, 0x4e, 0x47, - 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x53, 0x41, 0x53, - 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, - 0x1a, 0x0a, 0x16, 0x52, 0x53, 0x41, 0x53, 0x53, 0x41, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x56, - 0x31, 0x35, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x45, - 0x43, 0x44, 0x53, 0x41, 0x5f, 0x50, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, - 0x10, 0x03, 0x32, 0xb7, 0x04, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x12, 0xd8, 0x01, 0x0a, - 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, - 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x70, 0x6d, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x73, + 0x12, 0x22, 0x0a, 0x0d, 0x74, 0x63, 0x67, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x74, 0x63, 0x67, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x11, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x6b, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x61, 0x6b, 0x43, 0x65, 0x72, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x09, 0x63, 0x65, 0x72, 0x74, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x1a, 0x8f, 0x02, 0x0a, + 0x05, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x68, 0x5f, 0x61, + 0x6c, 0x67, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x41, + 0x6c, 0x67, 0x6f, 0x12, 0x69, 0x0a, 0x0a, 0x70, 0x63, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x54, 0x70, 0x6d, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, + 0x75, 0x6f, 0x74, 0x65, 0x2e, 0x50, 0x63, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x09, 0x70, 0x63, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x61, 0x77, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x08, 0x72, 0x61, 0x77, 0x51, 0x75, 0x6f, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, + 0x61, 0x77, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0c, 0x72, 0x61, 0x77, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x1a, 0x3c, 0x0a, 0x0e, 0x50, 0x63, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, + 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x61, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, - 0x65, 0x22, 0x54, 0xda, 0x41, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x09, 0x63, 0x68, - 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x68, 0x61, - 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x12, 0xe8, 0x01, 0x0a, 0x11, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x74, 0x74, - 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x01, 0x2a, 0x22, 0x45, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2f, 0x2a, 0x2f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x2f, 0x2a, 0x7d, - 0x3a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x1a, 0x58, 0xca, 0x41, 0x24, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, - 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x97, 0x02, 0x0a, - 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, - 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x5f, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x0c, 0x53, + 0x69, 0x67, 0x6e, 0x65, 0x64, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x81, 0x01, 0x0a, 0x1a, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, - 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x66, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, + 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x22, + 0xd6, 0x01, 0x0a, 0x17, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x21, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x55, 0x0a, 0x07, 0x73, 0x69, 0x67, 0x5f, 0x61, 0x6c, 0x67, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, + 0x6e, 0x67, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x73, 0x69, 0x67, 0x41, 0x6c, 0x67, 0x2a, 0x7f, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, + 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x21, 0x0a, 0x1d, + 0x53, 0x49, 0x47, 0x4e, 0x49, 0x4e, 0x47, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, + 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x15, 0x0a, 0x11, 0x52, 0x53, 0x41, 0x53, 0x53, 0x41, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x53, 0x48, + 0x41, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x53, 0x41, 0x53, 0x53, 0x41, + 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x56, 0x31, 0x35, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, + 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x43, 0x44, 0x53, 0x41, 0x5f, 0x50, 0x32, 0x35, 0x36, + 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 0x2a, 0x3c, 0x0a, 0x09, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x54, 0x4f, 0x4b, 0x45, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x4f, 0x49, 0x44, 0x43, 0x10, 0x01, 0x32, 0xb7, 0x04, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, + 0x67, 0x12, 0xd8, 0x01, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, + 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, + 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x54, 0xda, 0x41, 0x10, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x2c, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3b, 0x3a, 0x09, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x22, 0x2e, 0x2f, 0x76, + 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x73, 0x12, 0xe8, 0x01, 0x0a, + 0x11, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, + 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x01, 0x2a, + 0x22, 0x45, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, + 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x63, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, + 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x41, 0x74, 0x74, 0x65, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x58, 0xca, 0x41, 0x24, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, - 0x67, 0x70, 0x62, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0xaa, 0x02, 0x25, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x56, 0x31, 0xca, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, - 0x75, 0x64, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, - 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x28, 0x47, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, - 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x42, 0x97, 0x02, 0x0a, 0x29, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, + 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x5f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, + 0x2f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, + 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, 0x3b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x63, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x70, 0x62, + 0xaa, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, + 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x25, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, + 0xea, 0x02, 0x28, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x43, 0x6f, + 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -1107,48 +1176,50 @@ func file_google_cloud_confidentialcomputing_v1_service_proto_rawDescGZIP() []by return file_google_cloud_confidentialcomputing_v1_service_proto_rawDescData } -var file_google_cloud_confidentialcomputing_v1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_confidentialcomputing_v1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2) var file_google_cloud_confidentialcomputing_v1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_google_cloud_confidentialcomputing_v1_service_proto_goTypes = []interface{}{ (SigningAlgorithm)(0), // 0: google.cloud.confidentialcomputing.v1.SigningAlgorithm - (*Challenge)(nil), // 1: google.cloud.confidentialcomputing.v1.Challenge - (*CreateChallengeRequest)(nil), // 2: google.cloud.confidentialcomputing.v1.CreateChallengeRequest - (*VerifyAttestationRequest)(nil), // 3: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest - (*VerifyAttestationResponse)(nil), // 4: google.cloud.confidentialcomputing.v1.VerifyAttestationResponse - (*GcpCredentials)(nil), // 5: google.cloud.confidentialcomputing.v1.GcpCredentials - (*TokenOptions)(nil), // 6: google.cloud.confidentialcomputing.v1.TokenOptions - (*TpmAttestation)(nil), // 7: google.cloud.confidentialcomputing.v1.TpmAttestation - (*ConfidentialSpaceInfo)(nil), // 8: google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo - (*SignedEntity)(nil), // 9: google.cloud.confidentialcomputing.v1.SignedEntity - (*ContainerImageSignature)(nil), // 10: google.cloud.confidentialcomputing.v1.ContainerImageSignature - (*TpmAttestation_Quote)(nil), // 11: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote - nil, // 12: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry - (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp - (*status.Status)(nil), // 14: google.rpc.Status + (TokenType)(0), // 1: google.cloud.confidentialcomputing.v1.TokenType + (*Challenge)(nil), // 2: google.cloud.confidentialcomputing.v1.Challenge + (*CreateChallengeRequest)(nil), // 3: google.cloud.confidentialcomputing.v1.CreateChallengeRequest + (*VerifyAttestationRequest)(nil), // 4: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest + (*VerifyAttestationResponse)(nil), // 5: google.cloud.confidentialcomputing.v1.VerifyAttestationResponse + (*GcpCredentials)(nil), // 6: google.cloud.confidentialcomputing.v1.GcpCredentials + (*TokenOptions)(nil), // 7: google.cloud.confidentialcomputing.v1.TokenOptions + (*TpmAttestation)(nil), // 8: google.cloud.confidentialcomputing.v1.TpmAttestation + (*ConfidentialSpaceInfo)(nil), // 9: google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo + (*SignedEntity)(nil), // 10: google.cloud.confidentialcomputing.v1.SignedEntity + (*ContainerImageSignature)(nil), // 11: google.cloud.confidentialcomputing.v1.ContainerImageSignature + (*TpmAttestation_Quote)(nil), // 12: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote + nil, // 13: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry + (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp + (*status.Status)(nil), // 15: google.rpc.Status } var file_google_cloud_confidentialcomputing_v1_service_proto_depIdxs = []int32{ - 13, // 0: google.cloud.confidentialcomputing.v1.Challenge.create_time:type_name -> google.protobuf.Timestamp - 13, // 1: google.cloud.confidentialcomputing.v1.Challenge.expire_time:type_name -> google.protobuf.Timestamp - 1, // 2: google.cloud.confidentialcomputing.v1.CreateChallengeRequest.challenge:type_name -> google.cloud.confidentialcomputing.v1.Challenge - 5, // 3: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.gcp_credentials:type_name -> google.cloud.confidentialcomputing.v1.GcpCredentials - 7, // 4: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.tpm_attestation:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation - 8, // 5: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.confidential_space_info:type_name -> google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo - 6, // 6: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.token_options:type_name -> google.cloud.confidentialcomputing.v1.TokenOptions - 14, // 7: google.cloud.confidentialcomputing.v1.VerifyAttestationResponse.partial_errors:type_name -> google.rpc.Status - 11, // 8: google.cloud.confidentialcomputing.v1.TpmAttestation.quotes:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation.Quote - 9, // 9: google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo.signed_entities:type_name -> google.cloud.confidentialcomputing.v1.SignedEntity - 10, // 10: google.cloud.confidentialcomputing.v1.SignedEntity.container_image_signatures:type_name -> google.cloud.confidentialcomputing.v1.ContainerImageSignature - 0, // 11: google.cloud.confidentialcomputing.v1.ContainerImageSignature.sig_alg:type_name -> google.cloud.confidentialcomputing.v1.SigningAlgorithm - 12, // 12: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.pcr_values:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry - 2, // 13: google.cloud.confidentialcomputing.v1.ConfidentialComputing.CreateChallenge:input_type -> google.cloud.confidentialcomputing.v1.CreateChallengeRequest - 3, // 14: google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyAttestation:input_type -> google.cloud.confidentialcomputing.v1.VerifyAttestationRequest - 1, // 15: google.cloud.confidentialcomputing.v1.ConfidentialComputing.CreateChallenge:output_type -> google.cloud.confidentialcomputing.v1.Challenge - 4, // 16: google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyAttestation:output_type -> google.cloud.confidentialcomputing.v1.VerifyAttestationResponse - 15, // [15:17] is the sub-list for method output_type - 13, // [13:15] is the sub-list for method input_type - 13, // [13:13] is the sub-list for extension type_name - 13, // [13:13] is the sub-list for extension extendee - 0, // [0:13] is the sub-list for field type_name + 14, // 0: google.cloud.confidentialcomputing.v1.Challenge.create_time:type_name -> google.protobuf.Timestamp + 14, // 1: google.cloud.confidentialcomputing.v1.Challenge.expire_time:type_name -> google.protobuf.Timestamp + 2, // 2: google.cloud.confidentialcomputing.v1.CreateChallengeRequest.challenge:type_name -> google.cloud.confidentialcomputing.v1.Challenge + 6, // 3: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.gcp_credentials:type_name -> google.cloud.confidentialcomputing.v1.GcpCredentials + 8, // 4: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.tpm_attestation:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation + 9, // 5: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.confidential_space_info:type_name -> google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo + 7, // 6: google.cloud.confidentialcomputing.v1.VerifyAttestationRequest.token_options:type_name -> google.cloud.confidentialcomputing.v1.TokenOptions + 15, // 7: google.cloud.confidentialcomputing.v1.VerifyAttestationResponse.partial_errors:type_name -> google.rpc.Status + 1, // 8: google.cloud.confidentialcomputing.v1.TokenOptions.token_type:type_name -> google.cloud.confidentialcomputing.v1.TokenType + 12, // 9: google.cloud.confidentialcomputing.v1.TpmAttestation.quotes:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation.Quote + 10, // 10: google.cloud.confidentialcomputing.v1.ConfidentialSpaceInfo.signed_entities:type_name -> google.cloud.confidentialcomputing.v1.SignedEntity + 11, // 11: google.cloud.confidentialcomputing.v1.SignedEntity.container_image_signatures:type_name -> google.cloud.confidentialcomputing.v1.ContainerImageSignature + 0, // 12: google.cloud.confidentialcomputing.v1.ContainerImageSignature.sig_alg:type_name -> google.cloud.confidentialcomputing.v1.SigningAlgorithm + 13, // 13: google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.pcr_values:type_name -> google.cloud.confidentialcomputing.v1.TpmAttestation.Quote.PcrValuesEntry + 3, // 14: google.cloud.confidentialcomputing.v1.ConfidentialComputing.CreateChallenge:input_type -> google.cloud.confidentialcomputing.v1.CreateChallengeRequest + 4, // 15: google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyAttestation:input_type -> google.cloud.confidentialcomputing.v1.VerifyAttestationRequest + 2, // 16: google.cloud.confidentialcomputing.v1.ConfidentialComputing.CreateChallenge:output_type -> google.cloud.confidentialcomputing.v1.Challenge + 5, // 17: google.cloud.confidentialcomputing.v1.ConfidentialComputing.VerifyAttestation:output_type -> google.cloud.confidentialcomputing.v1.VerifyAttestationResponse + 16, // [16:18] is the sub-list for method output_type + 14, // [14:16] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_google_cloud_confidentialcomputing_v1_service_proto_init() } @@ -1295,7 +1366,7 @@ func file_google_cloud_confidentialcomputing_v1_service_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_confidentialcomputing_v1_service_proto_rawDesc, - NumEnums: 1, + NumEnums: 2, NumMessages: 12, NumExtensions: 0, NumServices: 1, diff --git a/edgenetwork/apiv1/edgenetworkpb/resources.pb.go b/edgenetwork/apiv1/edgenetworkpb/resources.pb.go index b2ad83ff387d..8967410aa729 100755 --- a/edgenetwork/apiv1/edgenetworkpb/resources.pb.go +++ b/edgenetwork/apiv1/edgenetworkpb/resources.pb.go @@ -2557,14 +2557,20 @@ var file_google_cloud_edgenetwork_v1_resources_proto_rawDesc = []byte{ 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, - 0x10, 0x05, 0x42, 0x72, 0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x76, - 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, - 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x10, 0x05, 0x42, 0xcf, 0x01, 0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, + 0x76, 0x31, 0x42, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x65, 0x64, 0x67, 0x65, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, + 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/edgenetwork/apiv1/edgenetworkpb/service.pb.go b/edgenetwork/apiv1/edgenetworkpb/service.pb.go index f0c83974f96c..6f8301991df3 100755 --- a/edgenetwork/apiv1/edgenetworkpb/service.pb.go +++ b/edgenetwork/apiv1/edgenetworkpb/service.pb.go @@ -3384,14 +3384,20 @@ var file_google_cloud_edgenetwork_v1_service_proto_rawDesc = []byte{ 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0x70, 0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x65, 0x64, 0x67, 0x65, - 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xcd, 0x01, 0x0a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x65, 0x64, 0x67, 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x65, 0x64, 0x67, + 0x65, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0x3b, 0x65, 0x64, 0x67, 0x65, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x70, 0x62, 0xaa, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, + 0x6f, 0x72, 0x6b, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1e, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x45, 0x64, 0x67, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/filestore/apiv1/auxiliary.go b/filestore/apiv1/auxiliary.go index 8037a4d43fa1..023963da15f9 100755 --- a/filestore/apiv1/auxiliary.go +++ b/filestore/apiv1/auxiliary.go @@ -22,9 +22,11 @@ import ( filestorepb "cloud.google.com/go/filestore/apiv1/filestorepb" "cloud.google.com/go/longrunning" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" gax "github.com/googleapis/gax-go/v2" "google.golang.org/api/iterator" commonpb "google.golang.org/genproto/googleapis/cloud/common" + locationpb "google.golang.org/genproto/googleapis/cloud/location" ) // CreateBackupOperation manages a long-running operation from CreateBackup. @@ -442,6 +444,70 @@ func (op *RestoreInstanceOperation) Name() string { return op.lro.Name() } +// RevertInstanceOperation manages a long-running operation from RevertInstance. +type RevertInstanceOperation struct { + lro *longrunning.Operation + pollPath string +} + +// Wait blocks until the long-running operation is completed, returning the response and any errors encountered. +// +// See documentation of Poll for error-handling information. +func (op *RevertInstanceOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*filestorepb.Instance, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp filestorepb.Instance + if err := op.lro.WaitWithInterval(ctx, &resp, time.Minute, opts...); err != nil { + return nil, err + } + return &resp, nil +} + +// Poll fetches the latest state of the long-running operation. +// +// Poll also fetches the latest metadata, which can be retrieved by Metadata. +// +// If Poll fails, the error is returned and op is unmodified. If Poll succeeds and +// the operation has completed with failure, the error is returned and op.Done will return true. +// If Poll succeeds and the operation has completed successfully, +// op.Done will return true, and the response of the operation is returned. +// If Poll succeeds and the operation has not completed, the returned response and error are both nil. +func (op *RevertInstanceOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*filestorepb.Instance, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp filestorepb.Instance + if err := op.lro.Poll(ctx, &resp, opts...); err != nil { + return nil, err + } + if !op.Done() { + return nil, nil + } + return &resp, nil +} + +// Metadata returns metadata associated with the long-running operation. +// Metadata itself does not contact the server, but Poll does. +// To get the latest metadata, call this method after a successful call to Poll. +// If the metadata is not available, the returned metadata and error are both nil. +func (op *RevertInstanceOperation) Metadata() (*commonpb.OperationMetadata, error) { + var meta commonpb.OperationMetadata + if err := op.lro.Metadata(&meta); err == longrunning.ErrNoMetadata { + return nil, nil + } else if err != nil { + return nil, err + } + return &meta, nil +} + +// Done reports whether the long-running operation has completed. +func (op *RevertInstanceOperation) Done() bool { + return op.lro.Done() +} + +// Name returns the name of the long-running operation. +// The name is assigned by the server and is unique within the service from which the operation is created. +func (op *RevertInstanceOperation) Name() string { + return op.lro.Name() +} + // UpdateBackupOperation manages a long-running operation from UpdateBackup. type UpdateBackupOperation struct { lro *longrunning.Operation @@ -728,6 +794,100 @@ func (it *InstanceIterator) takeBuf() interface{} { return b } +// LocationIterator manages a stream of *locationpb.Location. +type LocationIterator struct { + items []*locationpb.Location + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*locationpb.Location, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *LocationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *LocationIterator) Next() (*locationpb.Location, error) { + var item *locationpb.Location + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *LocationIterator) bufLen() int { + return len(it.items) +} + +func (it *LocationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// OperationIterator manages a stream of *longrunningpb.Operation. +type OperationIterator struct { + items []*longrunningpb.Operation + pageInfo *iterator.PageInfo + nextFunc func() error + + // Response is the raw response for the current page. + // It must be cast to the RPC response type. + // Calling Next() or InternalFetch() updates this value. + Response interface{} + + // InternalFetch is for use by the Google Cloud Libraries only. + // It is not part of the stable interface of this package. + // + // InternalFetch returns results from a single call to the underlying RPC. + // The number of results is no greater than pageSize. + // If there are no more results, nextPageToken is empty and err is nil. + InternalFetch func(pageSize int, pageToken string) (results []*longrunningpb.Operation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *OperationIterator) PageInfo() *iterator.PageInfo { + return it.pageInfo +} + +// Next returns the next result. Its second return value is iterator.Done if there are no more +// results. Once Next returns Done, all subsequent calls will return Done. +func (it *OperationIterator) Next() (*longrunningpb.Operation, error) { + var item *longrunningpb.Operation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OperationIterator) bufLen() int { + return len(it.items) +} + +func (it *OperationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + // SnapshotIterator manages a stream of *filestorepb.Snapshot. type SnapshotIterator struct { items []*filestorepb.Snapshot diff --git a/filestore/apiv1/cloud_filestore_manager_client.go b/filestore/apiv1/cloud_filestore_manager_client.go index bae3b6e565f2..6d7001daa59e 100755 --- a/filestore/apiv1/cloud_filestore_manager_client.go +++ b/filestore/apiv1/cloud_filestore_manager_client.go @@ -37,6 +37,7 @@ import ( "google.golang.org/api/option/internaloption" gtransport "google.golang.org/api/transport/grpc" httptransport "google.golang.org/api/transport/http" + locationpb "google.golang.org/genproto/googleapis/cloud/location" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/protobuf/encoding/protojson" @@ -52,6 +53,7 @@ type CloudFilestoreManagerCallOptions struct { CreateInstance []gax.CallOption UpdateInstance []gax.CallOption RestoreInstance []gax.CallOption + RevertInstance []gax.CallOption DeleteInstance []gax.CallOption ListSnapshots []gax.CallOption GetSnapshot []gax.CallOption @@ -63,6 +65,12 @@ type CloudFilestoreManagerCallOptions struct { CreateBackup []gax.CallOption DeleteBackup []gax.CallOption UpdateBackup []gax.CallOption + GetLocation []gax.CallOption + ListLocations []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption } func defaultCloudFilestoreManagerGRPCClientOptions() []option.ClientOption { @@ -112,6 +120,7 @@ func defaultCloudFilestoreManagerCallOptions() *CloudFilestoreManagerCallOptions RestoreInstance: []gax.CallOption{ gax.WithTimeout(60000000 * time.Millisecond), }, + RevertInstance: []gax.CallOption{}, DeleteInstance: []gax.CallOption{ gax.WithTimeout(600000 * time.Millisecond), }, @@ -153,6 +162,12 @@ func defaultCloudFilestoreManagerCallOptions() *CloudFilestoreManagerCallOptions UpdateBackup: []gax.CallOption{ gax.WithTimeout(600000 * time.Millisecond), }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, } } @@ -189,6 +204,7 @@ func defaultCloudFilestoreManagerRESTCallOptions() *CloudFilestoreManagerCallOpt RestoreInstance: []gax.CallOption{ gax.WithTimeout(60000000 * time.Millisecond), }, + RevertInstance: []gax.CallOption{}, DeleteInstance: []gax.CallOption{ gax.WithTimeout(600000 * time.Millisecond), }, @@ -228,6 +244,12 @@ func defaultCloudFilestoreManagerRESTCallOptions() *CloudFilestoreManagerCallOpt UpdateBackup: []gax.CallOption{ gax.WithTimeout(600000 * time.Millisecond), }, + GetLocation: []gax.CallOption{}, + ListLocations: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, } } @@ -244,6 +266,8 @@ type internalCloudFilestoreManagerClient interface { UpdateInstanceOperation(name string) *UpdateInstanceOperation RestoreInstance(context.Context, *filestorepb.RestoreInstanceRequest, ...gax.CallOption) (*RestoreInstanceOperation, error) RestoreInstanceOperation(name string) *RestoreInstanceOperation + RevertInstance(context.Context, *filestorepb.RevertInstanceRequest, ...gax.CallOption) (*RevertInstanceOperation, error) + RevertInstanceOperation(name string) *RevertInstanceOperation DeleteInstance(context.Context, *filestorepb.DeleteInstanceRequest, ...gax.CallOption) (*DeleteInstanceOperation, error) DeleteInstanceOperation(name string) *DeleteInstanceOperation ListSnapshots(context.Context, *filestorepb.ListSnapshotsRequest, ...gax.CallOption) *SnapshotIterator @@ -262,6 +286,12 @@ type internalCloudFilestoreManagerClient interface { DeleteBackupOperation(name string) *DeleteBackupOperation UpdateBackup(context.Context, *filestorepb.UpdateBackupRequest, ...gax.CallOption) (*UpdateBackupOperation, error) UpdateBackupOperation(name string) *UpdateBackupOperation + GetLocation(context.Context, *locationpb.GetLocationRequest, ...gax.CallOption) (*locationpb.Location, error) + ListLocations(context.Context, *locationpb.ListLocationsRequest, ...gax.CallOption) *LocationIterator + CancelOperation(context.Context, *longrunningpb.CancelOperationRequest, ...gax.CallOption) error + DeleteOperation(context.Context, *longrunningpb.DeleteOperationRequest, ...gax.CallOption) error + GetOperation(context.Context, *longrunningpb.GetOperationRequest, ...gax.CallOption) (*longrunningpb.Operation, error) + ListOperations(context.Context, *longrunningpb.ListOperationsRequest, ...gax.CallOption) *OperationIterator } // CloudFilestoreManagerClient is a client for interacting with Cloud Filestore API. @@ -379,6 +409,17 @@ func (c *CloudFilestoreManagerClient) RestoreInstanceOperation(name string) *Res return c.internalClient.RestoreInstanceOperation(name) } +// RevertInstance revert an existing instance’s file system to a specified snapshot. +func (c *CloudFilestoreManagerClient) RevertInstance(ctx context.Context, req *filestorepb.RevertInstanceRequest, opts ...gax.CallOption) (*RevertInstanceOperation, error) { + return c.internalClient.RevertInstance(ctx, req, opts...) +} + +// RevertInstanceOperation returns a new RevertInstanceOperation from a given name. +// The name must be that of a previously created RevertInstanceOperation, possibly from a different process. +func (c *CloudFilestoreManagerClient) RevertInstanceOperation(name string) *RevertInstanceOperation { + return c.internalClient.RevertInstanceOperation(name) +} + // DeleteInstance deletes an instance. func (c *CloudFilestoreManagerClient) DeleteInstance(ctx context.Context, req *filestorepb.DeleteInstanceRequest, opts ...gax.CallOption) (*DeleteInstanceOperation, error) { return c.internalClient.DeleteInstance(ctx, req, opts...) @@ -478,6 +519,36 @@ func (c *CloudFilestoreManagerClient) UpdateBackupOperation(name string) *Update return c.internalClient.UpdateBackupOperation(name) } +// GetLocation gets information about a location. +func (c *CloudFilestoreManagerClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + return c.internalClient.GetLocation(ctx, req, opts...) +} + +// ListLocations lists information about the supported locations for this service. +func (c *CloudFilestoreManagerClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + return c.internalClient.ListLocations(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *CloudFilestoreManagerClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.CancelOperation(ctx, req, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *CloudFilestoreManagerClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteOperation(ctx, req, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *CloudFilestoreManagerClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + return c.internalClient.GetOperation(ctx, req, opts...) +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *CloudFilestoreManagerClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + // cloudFilestoreManagerGRPCClient is a client for interacting with Cloud Filestore API over gRPC transport. // // Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. @@ -496,6 +567,10 @@ type cloudFilestoreManagerGRPCClient struct { // Users should not Close this client. LROClient **lroauto.OperationsClient + operationsClient longrunningpb.OperationsClient + + locationsClient locationpb.LocationsClient + // The x-goog-* metadata to be sent with each request. xGoogHeaders []string } @@ -548,6 +623,8 @@ func NewCloudFilestoreManagerClient(ctx context.Context, opts ...option.ClientOp connPool: connPool, cloudFilestoreManagerClient: filestorepb.NewCloudFilestoreManagerClient(connPool), CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + locationsClient: locationpb.NewLocationsClient(connPool), } c.setGoogleClientInfo() @@ -821,6 +898,26 @@ func (c *cloudFilestoreManagerGRPCClient) RestoreInstance(ctx context.Context, r }, nil } +func (c *cloudFilestoreManagerGRPCClient) RevertInstance(ctx context.Context, req *filestorepb.RevertInstanceRequest, opts ...gax.CallOption) (*RevertInstanceOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).RevertInstance[0:len((*c.CallOptions).RevertInstance):len((*c.CallOptions).RevertInstance)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.cloudFilestoreManagerClient.RevertInstance(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &RevertInstanceOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + func (c *cloudFilestoreManagerGRPCClient) DeleteInstance(ctx context.Context, req *filestorepb.DeleteInstanceRequest, opts ...gax.CallOption) (*DeleteInstanceOperation, error) { hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} @@ -1089,6 +1186,162 @@ func (c *cloudFilestoreManagerGRPCClient) UpdateBackup(ctx context.Context, req }, nil } +func (c *cloudFilestoreManagerGRPCClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + var resp *locationpb.Location + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.GetLocation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *cloudFilestoreManagerGRPCClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListLocations[0:len((*c.CallOptions).ListLocations):len((*c.CallOptions).ListLocations)], opts...) + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.locationsClient.ListLocations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +func (c *cloudFilestoreManagerGRPCClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).CancelOperation[0:len((*c.CallOptions).CancelOperation):len((*c.CallOptions).CancelOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.CancelOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *cloudFilestoreManagerGRPCClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeleteOperation[0:len((*c.CallOptions).DeleteOperation):len((*c.CallOptions).DeleteOperation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.operationsClient.DeleteOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *cloudFilestoreManagerGRPCClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.GetOperation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *cloudFilestoreManagerGRPCClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ListOperations[0:len((*c.CallOptions).ListOperations):len((*c.CallOptions).ListOperations)], opts...) + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.operationsClient.ListOperations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + // ListInstances lists all instances in a project for either a specified location // or for all locations. func (c *cloudFilestoreManagerRESTClient) ListInstances(ctx context.Context, req *filestorepb.ListInstancesRequest, opts ...gax.CallOption) *InstanceIterator { @@ -1472,6 +1725,76 @@ func (c *cloudFilestoreManagerRESTClient) RestoreInstance(ctx context.Context, r }, nil } +// RevertInstance revert an existing instance’s file system to a specified snapshot. +func (c *cloudFilestoreManagerRESTClient) RevertInstance(ctx context.Context, req *filestorepb.RevertInstanceRequest, opts ...gax.CallOption) (*RevertInstanceOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:revert", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + + override := fmt.Sprintf("/v1/%s", resp.GetName()) + return &RevertInstanceOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + // DeleteInstance deletes an instance. func (c *cloudFilestoreManagerRESTClient) DeleteInstance(ctx context.Context, req *filestorepb.DeleteInstanceRequest, opts ...gax.CallOption) (*DeleteInstanceOperation, error) { baseUrl, err := url.Parse(c.endpoint) @@ -2279,34 +2602,428 @@ func (c *cloudFilestoreManagerRESTClient) UpdateBackup(ctx context.Context, req }, nil } -// CreateBackupOperation returns a new CreateBackupOperation from a given name. -// The name must be that of a previously created CreateBackupOperation, possibly from a different process. -func (c *cloudFilestoreManagerGRPCClient) CreateBackupOperation(name string) *CreateBackupOperation { - return &CreateBackupOperation{ - lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), +// GetLocation gets information about a location. +func (c *cloudFilestoreManagerRESTClient) GetLocation(ctx context.Context, req *locationpb.GetLocationRequest, opts ...gax.CallOption) (*locationpb.Location, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err } -} + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) -// CreateBackupOperation returns a new CreateBackupOperation from a given name. -// The name must be that of a previously created CreateBackupOperation, possibly from a different process. -func (c *cloudFilestoreManagerRESTClient) CreateBackupOperation(name string) *CreateBackupOperation { - override := fmt.Sprintf("/v1/%s", name) - return &CreateBackupOperation{ - lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), - pollPath: override, - } -} + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") -// CreateInstanceOperation returns a new CreateInstanceOperation from a given name. -// The name must be that of a previously created CreateInstanceOperation, possibly from a different process. -func (c *cloudFilestoreManagerGRPCClient) CreateInstanceOperation(name string) *CreateInstanceOperation { - return &CreateInstanceOperation{ - lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), - } -} + baseUrl.RawQuery = params.Encode() -// CreateInstanceOperation returns a new CreateInstanceOperation from a given name. -// The name must be that of a previously created CreateInstanceOperation, possibly from a different process. + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetLocation[0:len((*c.CallOptions).GetLocation):len((*c.CallOptions).GetLocation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &locationpb.Location{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListLocations lists information about the supported locations for this service. +func (c *cloudFilestoreManagerRESTClient) ListLocations(ctx context.Context, req *locationpb.ListLocationsRequest, opts ...gax.CallOption) *LocationIterator { + it := &LocationIterator{} + req = proto.Clone(req).(*locationpb.ListLocationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*locationpb.Location, string, error) { + resp := &locationpb.ListLocationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/locations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetLocations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *cloudFilestoreManagerRESTClient) CancelOperation(ctx context.Context, req *longrunningpb.CancelOperationRequest, opts ...gax.CallOption) error { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + jsonReq, err := m.Marshal(req) + if err != nil { + return err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:cancel", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + // Returns nil if there is no error, otherwise wraps + // the response code and body into a non-nil error + return googleapi.CheckResponse(httpRsp) + }, opts...) +} + +// DeleteOperation is a utility method from google.longrunning.Operations. +func (c *cloudFilestoreManagerRESTClient) DeleteOperation(ctx context.Context, req *longrunningpb.DeleteOperationRequest, opts ...gax.CallOption) error { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + return gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("DELETE", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + // Returns nil if there is no error, otherwise wraps + // the response code and body into a non-nil error + return googleapi.CheckResponse(httpRsp) + }, opts...) +} + +// GetOperation is a utility method from google.longrunning.Operations. +func (c *cloudFilestoreManagerRESTClient) GetOperation(ctx context.Context, req *longrunningpb.GetOperationRequest, opts ...gax.CallOption) (*longrunningpb.Operation, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "name", url.QueryEscape(req.GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GetOperation[0:len((*c.CallOptions).GetOperation):len((*c.CallOptions).GetOperation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &longrunningpb.Operation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq = httpReq.WithContext(ctx) + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, e + } + return resp, nil +} + +// ListOperations is a utility method from google.longrunning.Operations. +func (c *cloudFilestoreManagerRESTClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + it := &OperationIterator{} + req = proto.Clone(req).(*longrunningpb.ListOperationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*longrunningpb.Operation, string, error) { + resp := &longrunningpb.ListOperationsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, "", err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/operations", req.GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetPageSize() != 0 { + params.Add("pageSize", fmt.Sprintf("%v", req.GetPageSize())) + } + if req.GetPageToken() != "" { + params.Add("pageToken", fmt.Sprintf("%v", req.GetPageToken())) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := append(c.xGoogHeaders, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("GET", baseUrl.String(), nil) + if err != nil { + return err + } + httpReq.Header = headers + + httpRsp, err := c.httpClient.Do(httpReq) + if err != nil { + return err + } + defer httpRsp.Body.Close() + + if err = googleapi.CheckResponse(httpRsp); err != nil { + return err + } + + buf, err := io.ReadAll(httpRsp.Body) + if err != nil { + return err + } + + if err := unm.Unmarshal(buf, resp); err != nil { + return err + } + + return nil + }, opts...) + if e != nil { + return nil, "", e + } + it.Response = resp + return resp.GetOperations(), resp.GetNextPageToken(), nil + } + + fetch := func(pageSize int, pageToken string) (string, error) { + items, nextPageToken, err := it.InternalFetch(pageSize, pageToken) + if err != nil { + return "", err + } + it.items = append(it.items, items...) + return nextPageToken, nil + } + + it.pageInfo, it.nextFunc = iterator.NewPageInfo(fetch, it.bufLen, it.takeBuf) + it.pageInfo.MaxSize = int(req.GetPageSize()) + it.pageInfo.Token = req.GetPageToken() + + return it +} + +// CreateBackupOperation returns a new CreateBackupOperation from a given name. +// The name must be that of a previously created CreateBackupOperation, possibly from a different process. +func (c *cloudFilestoreManagerGRPCClient) CreateBackupOperation(name string) *CreateBackupOperation { + return &CreateBackupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateBackupOperation returns a new CreateBackupOperation from a given name. +// The name must be that of a previously created CreateBackupOperation, possibly from a different process. +func (c *cloudFilestoreManagerRESTClient) CreateBackupOperation(name string) *CreateBackupOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateBackupOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateInstanceOperation returns a new CreateInstanceOperation from a given name. +// The name must be that of a previously created CreateInstanceOperation, possibly from a different process. +func (c *cloudFilestoreManagerGRPCClient) CreateInstanceOperation(name string) *CreateInstanceOperation { + return &CreateInstanceOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateInstanceOperation returns a new CreateInstanceOperation from a given name. +// The name must be that of a previously created CreateInstanceOperation, possibly from a different process. func (c *cloudFilestoreManagerRESTClient) CreateInstanceOperation(name string) *CreateInstanceOperation { override := fmt.Sprintf("/v1/%s", name) return &CreateInstanceOperation{ @@ -2405,6 +3122,24 @@ func (c *cloudFilestoreManagerRESTClient) RestoreInstanceOperation(name string) } } +// RevertInstanceOperation returns a new RevertInstanceOperation from a given name. +// The name must be that of a previously created RevertInstanceOperation, possibly from a different process. +func (c *cloudFilestoreManagerGRPCClient) RevertInstanceOperation(name string) *RevertInstanceOperation { + return &RevertInstanceOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RevertInstanceOperation returns a new RevertInstanceOperation from a given name. +// The name must be that of a previously created RevertInstanceOperation, possibly from a different process. +func (c *cloudFilestoreManagerRESTClient) RevertInstanceOperation(name string) *RevertInstanceOperation { + override := fmt.Sprintf("/v1/%s", name) + return &RevertInstanceOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + // UpdateBackupOperation returns a new UpdateBackupOperation from a given name. // The name must be that of a previously created UpdateBackupOperation, possibly from a different process. func (c *cloudFilestoreManagerGRPCClient) UpdateBackupOperation(name string) *UpdateBackupOperation { diff --git a/filestore/apiv1/cloud_filestore_manager_client_example_test.go b/filestore/apiv1/cloud_filestore_manager_client_example_test.go index 6d2bb3313929..41d72d652f39 100644 --- a/filestore/apiv1/cloud_filestore_manager_client_example_test.go +++ b/filestore/apiv1/cloud_filestore_manager_client_example_test.go @@ -21,7 +21,9 @@ import ( filestore "cloud.google.com/go/filestore/apiv1" filestorepb "cloud.google.com/go/filestore/apiv1/filestorepb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" ) func ExampleNewCloudFilestoreManagerClient() { @@ -430,6 +432,36 @@ func ExampleCloudFilestoreManagerClient_RestoreInstance() { _ = resp } +func ExampleCloudFilestoreManagerClient_RevertInstance() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &filestorepb.RevertInstanceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/filestore/apiv1/filestorepb#RevertInstanceRequest. + } + op, err := c.RevertInstance(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + func ExampleCloudFilestoreManagerClient_UpdateBackup() { ctx := context.Background() // This snippet has been automatically generated and should be regarded as a code template only. @@ -519,3 +551,161 @@ func ExampleCloudFilestoreManagerClient_UpdateSnapshot() { // TODO: Use resp. _ = resp } + +func ExampleCloudFilestoreManagerClient_GetLocation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleCloudFilestoreManagerClient_ListLocations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleCloudFilestoreManagerClient_CancelOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleCloudFilestoreManagerClient_DeleteOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleCloudFilestoreManagerClient_GetOperation() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleCloudFilestoreManagerClient_ListOperations() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} diff --git a/filestore/apiv1/filestorepb/cloud_filestore_service.pb.go b/filestore/apiv1/filestorepb/cloud_filestore_service.pb.go index d403b234abe3..fce9d17d513c 100755 --- a/filestore/apiv1/filestorepb/cloud_filestore_service.pb.go +++ b/filestore/apiv1/filestorepb/cloud_filestore_service.pb.go @@ -285,6 +285,8 @@ const ( Instance_SUSPENDING Instance_State = 9 // The instance is in the process of becoming active. Instance_RESUMING Instance_State = 10 + // The instance is reverting to a snapshot. + Instance_REVERTING Instance_State = 12 ) // Enum value maps for Instance_State. @@ -300,6 +302,7 @@ var ( 8: "SUSPENDED", 9: "SUSPENDING", 10: "RESUMING", + 12: "REVERTING", } Instance_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, @@ -312,6 +315,7 @@ var ( "SUSPENDED": 8, "SUSPENDING": 9, "RESUMING": 10, + "REVERTING": 12, } ) @@ -366,6 +370,12 @@ const ( // ENTERPRISE instances offer the features and availability needed for // mission-critical workloads. Instance_ENTERPRISE Instance_Tier = 6 + // ZONAL instances offer expanded capacity and performance scaling + // capabilities. + Instance_ZONAL Instance_Tier = 7 + // REGIONAL instances offer the features and availability needed for + // mission-critical workloads. + Instance_REGIONAL Instance_Tier = 8 ) // Enum value maps for Instance_Tier. @@ -378,6 +388,8 @@ var ( 4: "BASIC_SSD", 5: "HIGH_SCALE_SSD", 6: "ENTERPRISE", + 7: "ZONAL", + 8: "REGIONAL", } Instance_Tier_value = map[string]int32{ "TIER_UNSPECIFIED": 0, @@ -387,6 +399,8 @@ var ( "BASIC_SSD": 4, "HIGH_SCALE_SSD": 5, "ENTERPRISE": 6, + "ZONAL": 7, + "REGIONAL": 8, } ) @@ -520,7 +534,7 @@ func (x Snapshot_State) Number() protoreflect.EnumNumber { // Deprecated: Use Snapshot_State.Descriptor instead. func (Snapshot_State) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{11, 0} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{12, 0} } // The backup state. @@ -538,6 +552,9 @@ const ( Backup_READY Backup_State = 3 // Backup is being deleted. Backup_DELETING Backup_State = 4 + // Backup is not valid and cannot be used for creating new instances or + // restoring existing instances. + Backup_INVALID Backup_State = 5 ) // Enum value maps for Backup_State. @@ -548,6 +565,7 @@ var ( 2: "FINALIZING", 3: "READY", 4: "DELETING", + 5: "INVALID", } Backup_State_value = map[string]int32{ "STATE_UNSPECIFIED": 0, @@ -555,6 +573,7 @@ var ( "FINALIZING": 2, "READY": 3, "DELETING": 4, + "INVALID": 5, } ) @@ -582,7 +601,7 @@ func (x Backup_State) Number() protoreflect.EnumNumber { // Deprecated: Use Backup_State.Descriptor instead. func (Backup_State) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{18, 0} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{19, 0} } // Network configuration for the instance. @@ -700,7 +719,10 @@ type FileShareConfig struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // The name of the file share (must be 16 characters or less). + // Required. The name of the file share. Must use 1-16 characters for the + // basic service tier and 1-63 characters for all other service tiers. + // Must use lowercase letters, numbers, or underscores `[a-z0-9_]`. Must + // start with a letter. Immutable. Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // File share capacity in gigabytes (GB). // Filestore defines 1 GB as 1024^3 bytes. @@ -930,6 +952,8 @@ type Instance struct { Etag string `protobuf:"bytes,12,opt,name=etag,proto3" json:"etag,omitempty"` // Output only. Reserved for future use. SatisfiesPzs *wrapperspb.BoolValue `protobuf:"bytes,13,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` + // Output only. Reserved for future use. + SatisfiesPzi bool `protobuf:"varint,18,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` // KMS key name used for data encryption. KmsKeyName string `protobuf:"bytes,14,opt,name=kms_key_name,json=kmsKeyName,proto3" json:"kms_key_name,omitempty"` // Output only. Field indicates all the reasons the instance is in "SUSPENDED" @@ -1046,6 +1070,13 @@ func (x *Instance) GetSatisfiesPzs() *wrapperspb.BoolValue { return nil } +func (x *Instance) GetSatisfiesPzi() bool { + if x != nil { + return x.SatisfiesPzi + } + return false +} + func (x *Instance) GetKmsKeyName() string { if x != nil { return x.KmsKeyName @@ -1334,6 +1365,69 @@ type RestoreInstanceRequest_SourceBackup struct { func (*RestoreInstanceRequest_SourceBackup) isRestoreInstanceRequest_Source() {} +// RevertInstanceRequest reverts the given instance's file share to the +// specified snapshot. +type RevertInstanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. + // `projects/{project_id}/locations/{location_id}/instances/{instance_id}`. + // The resource name of the instance, in the format + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The snapshot resource ID, in the format 'my-snapshot', where the + // specified ID is the {snapshot_id} of the fully qualified name like + // `projects/{project_id}/locations/{location_id}/instances/{instance_id}/snapshots/{snapshot_id}` + TargetSnapshotId string `protobuf:"bytes,2,opt,name=target_snapshot_id,json=targetSnapshotId,proto3" json:"target_snapshot_id,omitempty"` +} + +func (x *RevertInstanceRequest) Reset() { + *x = RevertInstanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RevertInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevertInstanceRequest) ProtoMessage() {} + +func (x *RevertInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RevertInstanceRequest.ProtoReflect.Descriptor instead. +func (*RevertInstanceRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{8} +} + +func (x *RevertInstanceRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RevertInstanceRequest) GetTargetSnapshotId() string { + if x != nil { + return x.TargetSnapshotId + } + return "" +} + // DeleteInstanceRequest deletes an instance. type DeleteInstanceRequest struct { state protoimpl.MessageState @@ -1351,7 +1445,7 @@ type DeleteInstanceRequest struct { func (x *DeleteInstanceRequest) Reset() { *x = DeleteInstanceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[8] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1364,7 +1458,7 @@ func (x *DeleteInstanceRequest) String() string { func (*DeleteInstanceRequest) ProtoMessage() {} func (x *DeleteInstanceRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[8] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1377,7 +1471,7 @@ func (x *DeleteInstanceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteInstanceRequest.ProtoReflect.Descriptor instead. func (*DeleteInstanceRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{8} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{9} } func (x *DeleteInstanceRequest) GetName() string { @@ -1421,7 +1515,7 @@ type ListInstancesRequest struct { func (x *ListInstancesRequest) Reset() { *x = ListInstancesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[9] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1434,7 +1528,7 @@ func (x *ListInstancesRequest) String() string { func (*ListInstancesRequest) ProtoMessage() {} func (x *ListInstancesRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[9] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1447,7 +1541,7 @@ func (x *ListInstancesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListInstancesRequest.ProtoReflect.Descriptor instead. func (*ListInstancesRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{9} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{10} } func (x *ListInstancesRequest) GetParent() string { @@ -1508,7 +1602,7 @@ type ListInstancesResponse struct { func (x *ListInstancesResponse) Reset() { *x = ListInstancesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[10] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1521,7 +1615,7 @@ func (x *ListInstancesResponse) String() string { func (*ListInstancesResponse) ProtoMessage() {} func (x *ListInstancesResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[10] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1534,7 +1628,7 @@ func (x *ListInstancesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListInstancesResponse.ProtoReflect.Descriptor instead. func (*ListInstancesResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{10} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{11} } func (x *ListInstancesResponse) GetInstances() []*Instance { @@ -1584,7 +1678,7 @@ type Snapshot struct { func (x *Snapshot) Reset() { *x = Snapshot{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[11] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1691,7 @@ func (x *Snapshot) String() string { func (*Snapshot) ProtoMessage() {} func (x *Snapshot) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[11] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1704,7 @@ func (x *Snapshot) ProtoReflect() protoreflect.Message { // Deprecated: Use Snapshot.ProtoReflect.Descriptor instead. func (*Snapshot) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{11} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{12} } func (x *Snapshot) GetName() string { @@ -1677,7 +1771,7 @@ type CreateSnapshotRequest struct { func (x *CreateSnapshotRequest) Reset() { *x = CreateSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[12] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1690,7 +1784,7 @@ func (x *CreateSnapshotRequest) String() string { func (*CreateSnapshotRequest) ProtoMessage() {} func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[12] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1703,7 +1797,7 @@ func (x *CreateSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateSnapshotRequest.ProtoReflect.Descriptor instead. func (*CreateSnapshotRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{12} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{13} } func (x *CreateSnapshotRequest) GetParent() string { @@ -1741,7 +1835,7 @@ type GetSnapshotRequest struct { func (x *GetSnapshotRequest) Reset() { *x = GetSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[13] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1754,7 +1848,7 @@ func (x *GetSnapshotRequest) String() string { func (*GetSnapshotRequest) ProtoMessage() {} func (x *GetSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[13] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1767,7 +1861,7 @@ func (x *GetSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSnapshotRequest.ProtoReflect.Descriptor instead. func (*GetSnapshotRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{13} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{14} } func (x *GetSnapshotRequest) GetName() string { @@ -1791,7 +1885,7 @@ type DeleteSnapshotRequest struct { func (x *DeleteSnapshotRequest) Reset() { *x = DeleteSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[14] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1804,7 +1898,7 @@ func (x *DeleteSnapshotRequest) String() string { func (*DeleteSnapshotRequest) ProtoMessage() {} func (x *DeleteSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[14] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1817,7 +1911,7 @@ func (x *DeleteSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteSnapshotRequest.ProtoReflect.Descriptor instead. func (*DeleteSnapshotRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{14} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{15} } func (x *DeleteSnapshotRequest) GetName() string { @@ -1843,7 +1937,7 @@ type UpdateSnapshotRequest struct { func (x *UpdateSnapshotRequest) Reset() { *x = UpdateSnapshotRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[15] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1856,7 +1950,7 @@ func (x *UpdateSnapshotRequest) String() string { func (*UpdateSnapshotRequest) ProtoMessage() {} func (x *UpdateSnapshotRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[15] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1869,7 +1963,7 @@ func (x *UpdateSnapshotRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateSnapshotRequest.ProtoReflect.Descriptor instead. func (*UpdateSnapshotRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{15} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{16} } func (x *UpdateSnapshotRequest) GetUpdateMask() *fieldmaskpb.FieldMask { @@ -1910,7 +2004,7 @@ type ListSnapshotsRequest struct { func (x *ListSnapshotsRequest) Reset() { *x = ListSnapshotsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[16] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1923,7 +2017,7 @@ func (x *ListSnapshotsRequest) String() string { func (*ListSnapshotsRequest) ProtoMessage() {} func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[16] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1936,7 +2030,7 @@ func (x *ListSnapshotsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSnapshotsRequest.ProtoReflect.Descriptor instead. func (*ListSnapshotsRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{16} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{17} } func (x *ListSnapshotsRequest) GetParent() string { @@ -1990,7 +2084,7 @@ type ListSnapshotsResponse struct { func (x *ListSnapshotsResponse) Reset() { *x = ListSnapshotsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[17] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2003,7 +2097,7 @@ func (x *ListSnapshotsResponse) String() string { func (*ListSnapshotsResponse) ProtoMessage() {} func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[17] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2016,7 +2110,7 @@ func (x *ListSnapshotsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListSnapshotsResponse.ProtoReflect.Descriptor instead. func (*ListSnapshotsResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{17} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{18} } func (x *ListSnapshotsResponse) GetSnapshots() []*Snapshot { @@ -2072,6 +2166,8 @@ type Backup struct { DownloadBytes int64 `protobuf:"varint,11,opt,name=download_bytes,json=downloadBytes,proto3" json:"download_bytes,omitempty"` // Output only. Reserved for future use. SatisfiesPzs *wrapperspb.BoolValue `protobuf:"bytes,12,opt,name=satisfies_pzs,json=satisfiesPzs,proto3" json:"satisfies_pzs,omitempty"` + // Output only. Reserved for future use. + SatisfiesPzi bool `protobuf:"varint,14,opt,name=satisfies_pzi,json=satisfiesPzi,proto3" json:"satisfies_pzi,omitempty"` // Immutable. KMS key name used for data encryption. KmsKey string `protobuf:"bytes,13,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` } @@ -2079,7 +2175,7 @@ type Backup struct { func (x *Backup) Reset() { *x = Backup{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[18] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2092,7 +2188,7 @@ func (x *Backup) String() string { func (*Backup) ProtoMessage() {} func (x *Backup) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[18] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2105,7 +2201,7 @@ func (x *Backup) ProtoReflect() protoreflect.Message { // Deprecated: Use Backup.ProtoReflect.Descriptor instead. func (*Backup) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{18} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{19} } func (x *Backup) GetName() string { @@ -2192,6 +2288,13 @@ func (x *Backup) GetSatisfiesPzs() *wrapperspb.BoolValue { return nil } +func (x *Backup) GetSatisfiesPzi() bool { + if x != nil { + return x.SatisfiesPzi + } + return false +} + func (x *Backup) GetKmsKey() string { if x != nil { return x.KmsKey @@ -2224,7 +2327,7 @@ type CreateBackupRequest struct { func (x *CreateBackupRequest) Reset() { *x = CreateBackupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[19] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2237,7 +2340,7 @@ func (x *CreateBackupRequest) String() string { func (*CreateBackupRequest) ProtoMessage() {} func (x *CreateBackupRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[19] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2250,7 +2353,7 @@ func (x *CreateBackupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBackupRequest.ProtoReflect.Descriptor instead. func (*CreateBackupRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{19} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{20} } func (x *CreateBackupRequest) GetParent() string { @@ -2288,7 +2391,7 @@ type DeleteBackupRequest struct { func (x *DeleteBackupRequest) Reset() { *x = DeleteBackupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[20] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2301,7 +2404,7 @@ func (x *DeleteBackupRequest) String() string { func (*DeleteBackupRequest) ProtoMessage() {} func (x *DeleteBackupRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[20] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2314,7 +2417,7 @@ func (x *DeleteBackupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteBackupRequest.ProtoReflect.Descriptor instead. func (*DeleteBackupRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{20} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{21} } func (x *DeleteBackupRequest) GetName() string { @@ -2340,7 +2443,7 @@ type UpdateBackupRequest struct { func (x *UpdateBackupRequest) Reset() { *x = UpdateBackupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[21] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2353,7 +2456,7 @@ func (x *UpdateBackupRequest) String() string { func (*UpdateBackupRequest) ProtoMessage() {} func (x *UpdateBackupRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[21] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2366,7 +2469,7 @@ func (x *UpdateBackupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBackupRequest.ProtoReflect.Descriptor instead. func (*UpdateBackupRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{21} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{22} } func (x *UpdateBackupRequest) GetBackup() *Backup { @@ -2397,7 +2500,7 @@ type GetBackupRequest struct { func (x *GetBackupRequest) Reset() { *x = GetBackupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[22] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2410,7 +2513,7 @@ func (x *GetBackupRequest) String() string { func (*GetBackupRequest) ProtoMessage() {} func (x *GetBackupRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[22] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2423,7 +2526,7 @@ func (x *GetBackupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBackupRequest.ProtoReflect.Descriptor instead. func (*GetBackupRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{22} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{23} } func (x *GetBackupRequest) GetName() string { @@ -2460,7 +2563,7 @@ type ListBackupsRequest struct { func (x *ListBackupsRequest) Reset() { *x = ListBackupsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[23] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2473,7 +2576,7 @@ func (x *ListBackupsRequest) String() string { func (*ListBackupsRequest) ProtoMessage() {} func (x *ListBackupsRequest) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[23] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2486,7 +2589,7 @@ func (x *ListBackupsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListBackupsRequest.ProtoReflect.Descriptor instead. func (*ListBackupsRequest) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{23} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{24} } func (x *ListBackupsRequest) GetParent() string { @@ -2548,7 +2651,7 @@ type ListBackupsResponse struct { func (x *ListBackupsResponse) Reset() { *x = ListBackupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[24] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2561,7 +2664,7 @@ func (x *ListBackupsResponse) String() string { func (*ListBackupsResponse) ProtoMessage() {} func (x *ListBackupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[24] + mi := &file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2574,7 +2677,7 @@ func (x *ListBackupsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListBackupsResponse.ProtoReflect.Descriptor instead. func (*ListBackupsResponse) Descriptor() ([]byte, []int) { - return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{24} + return file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP(), []int{25} } func (x *ListBackupsResponse) GetBackups() []*Backup { @@ -2697,7 +2800,7 @@ var file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDesc = []byt 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x4f, 0x5f, 0x52, 0x4f, 0x4f, 0x54, 0x5f, 0x53, 0x51, 0x55, 0x41, 0x53, 0x48, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x4f, 0x4f, 0x54, 0x5f, 0x53, 0x51, 0x55, 0x41, 0x53, 0x48, - 0x10, 0x02, 0x22, 0xf8, 0x09, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x10, 0x02, 0x22, 0xcb, 0x0a, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, @@ -2736,552 +2839,583 @@ var file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDesc = []byt 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, - 0x7a, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x68, 0x0a, 0x12, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0e, - 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x1a, 0x39, - 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9b, 0x01, 0x0a, 0x05, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, - 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, - 0x59, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, - 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x52, - 0x45, 0x53, 0x54, 0x4f, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, - 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x53, - 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, - 0x55, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x22, 0x79, 0x0a, 0x04, 0x54, 0x69, 0x65, 0x72, 0x12, - 0x14, 0x0a, 0x10, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, - 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, - 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x02, - 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x48, 0x44, 0x44, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x53, 0x49, 0x43, 0x5f, 0x53, 0x53, 0x44, 0x10, 0x04, 0x12, 0x12, - 0x0a, 0x0e, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x53, 0x53, 0x44, - 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, - 0x10, 0x06, 0x22, 0x48, 0x0a, 0x10, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, - 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4b, 0x4d, 0x53, - 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x01, 0x3a, 0x5f, 0xea, 0x41, - 0x5c, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x22, 0xc6, 0x01, - 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, - 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x44, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, + 0x70, 0x7a, 0x69, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, + 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x69, 0x12, 0x20, 0x0a, 0x0c, + 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x68, + 0x0a, 0x12, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, + 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0d, 0x0a, + 0x09, 0x52, 0x45, 0x50, 0x41, 0x49, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, + 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x45, + 0x44, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x53, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, + 0x47, 0x10, 0x09, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x53, 0x55, 0x4d, 0x49, 0x4e, 0x47, 0x10, + 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x56, 0x45, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0c, + 0x22, 0x92, 0x01, 0x0a, 0x04, 0x54, 0x69, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x49, 0x45, + 0x52, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x55, 0x4d, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, + 0x53, 0x49, 0x43, 0x5f, 0x48, 0x44, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x42, 0x41, 0x53, + 0x49, 0x43, 0x5f, 0x53, 0x53, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x48, 0x49, 0x47, 0x48, + 0x5f, 0x53, 0x43, 0x41, 0x4c, 0x45, 0x5f, 0x53, 0x53, 0x44, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, + 0x45, 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, + 0x5a, 0x4f, 0x4e, 0x41, 0x4c, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x47, 0x49, 0x4f, + 0x4e, 0x41, 0x4c, 0x10, 0x08, 0x22, 0x48, 0x0a, 0x10, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x55, 0x53, + 0x50, 0x45, 0x4e, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x4b, 0x4d, 0x53, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x10, 0x01, 0x3a, + 0x5f, 0xea, 0x41, 0x5c, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x3c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, + 0x22, 0xc6, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, + 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4e, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x15, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, + 0x12, 0x3f, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x4e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, - 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x3f, 0x0a, - 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xc8, - 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, - 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1f, - 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x48, - 0x00, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x67, 0x0a, 0x15, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, - 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa4, 0x01, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x6c, 0x65, 0x22, 0xc7, 0x04, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x1f, 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x84, 0x01, 0x0a, + 0x15, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, + 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x31, 0x0a, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x10, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xc8, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa4, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, - 0x15, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x55, 0x73, 0x65, - 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0x45, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, - 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, - 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, - 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x3a, 0x74, 0xea, 0x41, 0x71, 0x0a, 0x1c, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x51, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x73, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x7d, 0x22, 0xc1, - 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, - 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x08, - 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x22, 0x4e, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, - 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, - 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, - 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, - 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x82, 0x01, - 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, - 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, - 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0xb6, 0x07, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x17, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xc7, + 0x04, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, - 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, + 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, - 0x79, 0x5f, 0x67, 0x62, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x0a, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x47, 0x62, 0x12, 0x28, 0x0a, 0x0d, 0x73, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, - 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, - 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x5f, 0x0a, - 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x2e, 0x54, 0x69, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, - 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 0x6f, 0x77, - 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x61, - 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, - 0x12, 0x1c, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x1a, 0x39, - 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x55, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, - 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, 0x49, 0x4e, 0x41, 0x4c, - 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, 0x44, 0x59, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x04, - 0x3a, 0x59, 0xea, 0x41, 0x56, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x12, 0x38, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x7d, 0x22, 0xba, 0x01, 0x0a, 0x13, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x36, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe0, - 0x41, 0x02, 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x3e, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, - 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, - 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, - 0x6b, 0x22, 0x4a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x22, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, 0x6c, + 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x37, 0x0a, 0x15, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x45, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x52, 0x45, 0x41, + 0x44, 0x59, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x3a, 0x74, 0xea, 0x41, 0x71, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x51, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x7b, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x7d, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x73, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x4e, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x15, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x01, - 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, + 0x2f, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x9f, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x44, 0x0a, 0x08, 0x73, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x22, 0xc3, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x24, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x1e, 0x0a, 0x1c, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x41, 0x0a, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x09, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, + 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xed, 0x07, 0x0a, + 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, + 0x24, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x5f, 0x67, 0x62, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x61, 0x70, 0x61, 0x63, + 0x69, 0x74, 0x79, 0x47, 0x62, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x21, 0xfa, 0x41, 0x1e, 0x0a, 0x1c, 0x66, + 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x0e, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, + 0x6c, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x5f, 0x0a, 0x14, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x54, 0x69, 0x65, 0x72, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x54, 0x69, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x6f, 0x77, 0x6e, + 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x73, 0x5f, 0x70, 0x7a, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, + 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x50, 0x7a, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x61, + 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, 0x73, 0x5f, 0x70, 0x7a, 0x69, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x61, 0x74, 0x69, 0x73, 0x66, 0x69, 0x65, + 0x73, 0x50, 0x7a, 0x69, 0x12, 0x1c, 0x0a, 0x07, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, + 0x65, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x62, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x46, + 0x49, 0x4e, 0x41, 0x4c, 0x49, 0x5a, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x52, + 0x45, 0x41, 0x44, 0x59, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, + 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x10, + 0x05, 0x3a, 0x59, 0xea, 0x41, 0x56, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x12, 0x38, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x73, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x7d, 0x22, 0xba, 0x01, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, - 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x16, - 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, - 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, - 0x75, 0x70, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, - 0x68, 0x61, 0x62, 0x6c, 0x65, 0x32, 0xcb, 0x1b, 0x0a, 0x15, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, - 0xb2, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x08, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x13, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3e, 0x0a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x12, 0x40, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, + 0x6b, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, + 0x73, 0x6b, 0x22, 0x4a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1c, 0x0a, 0x1a, 0x66, 0x69, + 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, + 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3b, 0x0a, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, + 0x6b, 0x75, 0x70, 0x52, 0x07, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x6e, 0x72, 0x65, 0x61, + 0x63, 0x68, 0x61, 0x62, 0x6c, 0x65, 0x32, 0xa4, 0x1d, 0x0a, 0x15, 0x43, 0x6c, 0x6f, 0x75, 0x64, + 0x46, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x12, 0xb2, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, - 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf5, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0xca, 0x41, 0x31, - 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, - 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xf7, - 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, - 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x93, 0x01, 0xca, 0x41, 0x31, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x14, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x74, - 0xca, 0x41, 0x31, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x12, 0xe0, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7d, 0xca, 0x41, 0x3e, 0x0a, 0x15, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, - 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x3c, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, + 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xf5, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, - 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, - 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, - 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x48, 0xda, 0x41, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x81, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0xca, 0x41, 0x31, - 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x6e, 0x61, 0x70, 0x73, - 0x68, 0x6f, 0x74, 0x2c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, - 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, - 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x12, 0xed, 0x01, 0x0a, 0x0e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, - 0x01, 0xca, 0x41, 0x3e, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, 0x6f, 0x6f, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x91, 0x01, 0xca, 0x41, + 0x31, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, - 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, - 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, - 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x83, 0x02, 0x0a, 0x0e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, + 0x74, 0x61, 0xda, 0x41, 0x1b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0xf7, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, + 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x93, 0x01, 0xca, 0x41, 0x31, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x14, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, + 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x0f, 0x52, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9f, - 0x01, 0xca, 0x41, 0x31, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x25, + 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, + 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x74, 0xca, 0x41, 0x31, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x3a, 0x01, 0x2a, 0x22, 0x35, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0xd6, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0xca, 0x41, 0x31, 0x0a, 0x08, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x3a, 0x01, 0x2a, 0x22, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x76, 0x65, 0x72, 0x74, 0x12, 0xe0, + 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, + 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7d, 0xca, 0x41, 0x3e, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x14, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, - 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x4e, 0x3a, 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x32, 0x42, 0x2f, 0x76, - 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2f, 0x2a, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xbe, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x48, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, - 0x12, 0xaa, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, - 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x3c, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, - 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x97, 0x01, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, - 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x22, 0x3a, 0xda, 0x41, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, - 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x2f, 0x0a, 0x06, 0x42, - 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x12, 0x81, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, + 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9d, 0x01, 0xca, 0x41, 0x31, 0x0a, 0x08, 0x53, 0x6e, 0x61, 0x70, + 0x73, 0x68, 0x6f, 0x74, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1b, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2c, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, + 0x08, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x22, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, + 0x68, 0x6f, 0x74, 0x73, 0x12, 0xed, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0xca, 0x41, 0x3e, 0x0a, 0x15, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2c, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x06, 0x62, 0x61, - 0x63, 0x6b, 0x75, 0x70, 0x22, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, - 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x2a, 0x39, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x83, 0x02, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, + 0x6f, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x9f, 0x01, 0xca, 0x41, 0x31, 0x0a, 0x08, + 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x14, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4e, 0x3a, 0x08, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x32, 0x42, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x6e, + 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x0b, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0xda, 0x41, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0x97, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x22, 0x3a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x7b, 0xca, 0x41, 0x3e, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe9, - 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, - 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, - 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, - 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, - 0x01, 0xca, 0x41, 0x2f, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x25, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2c, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x06, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x32, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x62, 0x61, 0x63, - 0x6b, 0x75, 0x70, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, - 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x47, 0xca, 0x41, 0x13, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, - 0x6f, 0x72, 0x6d, 0x42, 0xb2, 0x01, 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6e, 0x22, 0x87, 0x01, 0xca, 0x41, 0x2f, 0x0a, 0x06, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, + 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2c, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x22, 0x2b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x42, + 0x61, 0x63, 0x6b, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, + 0x67, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7b, 0xca, 0x41, 0x3e, + 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x2a, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, + 0x63, 0x6b, 0x75, 0x70, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe9, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x1a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x70, 0x62, 0x3b, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, - 0xaa, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x46, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x6c, 0x65, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x6c, 0x6f, 0x6e, 0x67, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0xca, 0x41, 0x2f, 0x0a, 0x06, + 0x42, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x12, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, + 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x06, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x32, 0x32, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x2e, 0x6e, 0x61, + 0x6d, 0x65, 0x3d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, + 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x47, 0xca, 0x41, 0x13, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0xd2, 0x41, 0x2e, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x42, 0xb2, 0x01, + 0x0a, 0x1d, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x42, + 0x1a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, + 0x76, 0x31, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0x3b, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x70, 0x62, 0xaa, 0x02, 0x19, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x19, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x46, 0x69, 0x6c, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5c, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3297,7 +3431,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDescGZIP() } var file_google_cloud_filestore_v1_cloud_filestore_service_proto_enumTypes = make([]protoimpl.EnumInfo, 9) -var file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes = make([]protoimpl.MessageInfo, 29) var file_google_cloud_filestore_v1_cloud_filestore_service_proto_goTypes = []interface{}{ (NetworkConfig_AddressMode)(0), // 0: google.cloud.filestore.v1.NetworkConfig.AddressMode (NetworkConfig_ConnectMode)(0), // 1: google.cloud.filestore.v1.NetworkConfig.ConnectMode @@ -3316,30 +3450,31 @@ var file_google_cloud_filestore_v1_cloud_filestore_service_proto_goTypes = []int (*GetInstanceRequest)(nil), // 14: google.cloud.filestore.v1.GetInstanceRequest (*UpdateInstanceRequest)(nil), // 15: google.cloud.filestore.v1.UpdateInstanceRequest (*RestoreInstanceRequest)(nil), // 16: google.cloud.filestore.v1.RestoreInstanceRequest - (*DeleteInstanceRequest)(nil), // 17: google.cloud.filestore.v1.DeleteInstanceRequest - (*ListInstancesRequest)(nil), // 18: google.cloud.filestore.v1.ListInstancesRequest - (*ListInstancesResponse)(nil), // 19: google.cloud.filestore.v1.ListInstancesResponse - (*Snapshot)(nil), // 20: google.cloud.filestore.v1.Snapshot - (*CreateSnapshotRequest)(nil), // 21: google.cloud.filestore.v1.CreateSnapshotRequest - (*GetSnapshotRequest)(nil), // 22: google.cloud.filestore.v1.GetSnapshotRequest - (*DeleteSnapshotRequest)(nil), // 23: google.cloud.filestore.v1.DeleteSnapshotRequest - (*UpdateSnapshotRequest)(nil), // 24: google.cloud.filestore.v1.UpdateSnapshotRequest - (*ListSnapshotsRequest)(nil), // 25: google.cloud.filestore.v1.ListSnapshotsRequest - (*ListSnapshotsResponse)(nil), // 26: google.cloud.filestore.v1.ListSnapshotsResponse - (*Backup)(nil), // 27: google.cloud.filestore.v1.Backup - (*CreateBackupRequest)(nil), // 28: google.cloud.filestore.v1.CreateBackupRequest - (*DeleteBackupRequest)(nil), // 29: google.cloud.filestore.v1.DeleteBackupRequest - (*UpdateBackupRequest)(nil), // 30: google.cloud.filestore.v1.UpdateBackupRequest - (*GetBackupRequest)(nil), // 31: google.cloud.filestore.v1.GetBackupRequest - (*ListBackupsRequest)(nil), // 32: google.cloud.filestore.v1.ListBackupsRequest - (*ListBackupsResponse)(nil), // 33: google.cloud.filestore.v1.ListBackupsResponse - nil, // 34: google.cloud.filestore.v1.Instance.LabelsEntry - nil, // 35: google.cloud.filestore.v1.Snapshot.LabelsEntry - nil, // 36: google.cloud.filestore.v1.Backup.LabelsEntry - (*timestamppb.Timestamp)(nil), // 37: google.protobuf.Timestamp - (*wrapperspb.BoolValue)(nil), // 38: google.protobuf.BoolValue - (*fieldmaskpb.FieldMask)(nil), // 39: google.protobuf.FieldMask - (*longrunningpb.Operation)(nil), // 40: google.longrunning.Operation + (*RevertInstanceRequest)(nil), // 17: google.cloud.filestore.v1.RevertInstanceRequest + (*DeleteInstanceRequest)(nil), // 18: google.cloud.filestore.v1.DeleteInstanceRequest + (*ListInstancesRequest)(nil), // 19: google.cloud.filestore.v1.ListInstancesRequest + (*ListInstancesResponse)(nil), // 20: google.cloud.filestore.v1.ListInstancesResponse + (*Snapshot)(nil), // 21: google.cloud.filestore.v1.Snapshot + (*CreateSnapshotRequest)(nil), // 22: google.cloud.filestore.v1.CreateSnapshotRequest + (*GetSnapshotRequest)(nil), // 23: google.cloud.filestore.v1.GetSnapshotRequest + (*DeleteSnapshotRequest)(nil), // 24: google.cloud.filestore.v1.DeleteSnapshotRequest + (*UpdateSnapshotRequest)(nil), // 25: google.cloud.filestore.v1.UpdateSnapshotRequest + (*ListSnapshotsRequest)(nil), // 26: google.cloud.filestore.v1.ListSnapshotsRequest + (*ListSnapshotsResponse)(nil), // 27: google.cloud.filestore.v1.ListSnapshotsResponse + (*Backup)(nil), // 28: google.cloud.filestore.v1.Backup + (*CreateBackupRequest)(nil), // 29: google.cloud.filestore.v1.CreateBackupRequest + (*DeleteBackupRequest)(nil), // 30: google.cloud.filestore.v1.DeleteBackupRequest + (*UpdateBackupRequest)(nil), // 31: google.cloud.filestore.v1.UpdateBackupRequest + (*GetBackupRequest)(nil), // 32: google.cloud.filestore.v1.GetBackupRequest + (*ListBackupsRequest)(nil), // 33: google.cloud.filestore.v1.ListBackupsRequest + (*ListBackupsResponse)(nil), // 34: google.cloud.filestore.v1.ListBackupsResponse + nil, // 35: google.cloud.filestore.v1.Instance.LabelsEntry + nil, // 36: google.cloud.filestore.v1.Snapshot.LabelsEntry + nil, // 37: google.cloud.filestore.v1.Backup.LabelsEntry + (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp + (*wrapperspb.BoolValue)(nil), // 39: google.protobuf.BoolValue + (*fieldmaskpb.FieldMask)(nil), // 40: google.protobuf.FieldMask + (*longrunningpb.Operation)(nil), // 41: google.longrunning.Operation } var file_google_cloud_filestore_v1_cloud_filestore_service_proto_depIdxs = []int32{ 0, // 0: google.cloud.filestore.v1.NetworkConfig.modes:type_name -> google.cloud.filestore.v1.NetworkConfig.AddressMode @@ -3348,67 +3483,69 @@ var file_google_cloud_filestore_v1_cloud_filestore_service_proto_depIdxs = []int 2, // 3: google.cloud.filestore.v1.NfsExportOptions.access_mode:type_name -> google.cloud.filestore.v1.NfsExportOptions.AccessMode 3, // 4: google.cloud.filestore.v1.NfsExportOptions.squash_mode:type_name -> google.cloud.filestore.v1.NfsExportOptions.SquashMode 4, // 5: google.cloud.filestore.v1.Instance.state:type_name -> google.cloud.filestore.v1.Instance.State - 37, // 6: google.cloud.filestore.v1.Instance.create_time:type_name -> google.protobuf.Timestamp + 38, // 6: google.cloud.filestore.v1.Instance.create_time:type_name -> google.protobuf.Timestamp 5, // 7: google.cloud.filestore.v1.Instance.tier:type_name -> google.cloud.filestore.v1.Instance.Tier - 34, // 8: google.cloud.filestore.v1.Instance.labels:type_name -> google.cloud.filestore.v1.Instance.LabelsEntry + 35, // 8: google.cloud.filestore.v1.Instance.labels:type_name -> google.cloud.filestore.v1.Instance.LabelsEntry 10, // 9: google.cloud.filestore.v1.Instance.file_shares:type_name -> google.cloud.filestore.v1.FileShareConfig 9, // 10: google.cloud.filestore.v1.Instance.networks:type_name -> google.cloud.filestore.v1.NetworkConfig - 38, // 11: google.cloud.filestore.v1.Instance.satisfies_pzs:type_name -> google.protobuf.BoolValue + 39, // 11: google.cloud.filestore.v1.Instance.satisfies_pzs:type_name -> google.protobuf.BoolValue 6, // 12: google.cloud.filestore.v1.Instance.suspension_reasons:type_name -> google.cloud.filestore.v1.Instance.SuspensionReason 12, // 13: google.cloud.filestore.v1.CreateInstanceRequest.instance:type_name -> google.cloud.filestore.v1.Instance - 39, // 14: google.cloud.filestore.v1.UpdateInstanceRequest.update_mask:type_name -> google.protobuf.FieldMask + 40, // 14: google.cloud.filestore.v1.UpdateInstanceRequest.update_mask:type_name -> google.protobuf.FieldMask 12, // 15: google.cloud.filestore.v1.UpdateInstanceRequest.instance:type_name -> google.cloud.filestore.v1.Instance 12, // 16: google.cloud.filestore.v1.ListInstancesResponse.instances:type_name -> google.cloud.filestore.v1.Instance 7, // 17: google.cloud.filestore.v1.Snapshot.state:type_name -> google.cloud.filestore.v1.Snapshot.State - 37, // 18: google.cloud.filestore.v1.Snapshot.create_time:type_name -> google.protobuf.Timestamp - 35, // 19: google.cloud.filestore.v1.Snapshot.labels:type_name -> google.cloud.filestore.v1.Snapshot.LabelsEntry - 20, // 20: google.cloud.filestore.v1.CreateSnapshotRequest.snapshot:type_name -> google.cloud.filestore.v1.Snapshot - 39, // 21: google.cloud.filestore.v1.UpdateSnapshotRequest.update_mask:type_name -> google.protobuf.FieldMask - 20, // 22: google.cloud.filestore.v1.UpdateSnapshotRequest.snapshot:type_name -> google.cloud.filestore.v1.Snapshot - 20, // 23: google.cloud.filestore.v1.ListSnapshotsResponse.snapshots:type_name -> google.cloud.filestore.v1.Snapshot + 38, // 18: google.cloud.filestore.v1.Snapshot.create_time:type_name -> google.protobuf.Timestamp + 36, // 19: google.cloud.filestore.v1.Snapshot.labels:type_name -> google.cloud.filestore.v1.Snapshot.LabelsEntry + 21, // 20: google.cloud.filestore.v1.CreateSnapshotRequest.snapshot:type_name -> google.cloud.filestore.v1.Snapshot + 40, // 21: google.cloud.filestore.v1.UpdateSnapshotRequest.update_mask:type_name -> google.protobuf.FieldMask + 21, // 22: google.cloud.filestore.v1.UpdateSnapshotRequest.snapshot:type_name -> google.cloud.filestore.v1.Snapshot + 21, // 23: google.cloud.filestore.v1.ListSnapshotsResponse.snapshots:type_name -> google.cloud.filestore.v1.Snapshot 8, // 24: google.cloud.filestore.v1.Backup.state:type_name -> google.cloud.filestore.v1.Backup.State - 37, // 25: google.cloud.filestore.v1.Backup.create_time:type_name -> google.protobuf.Timestamp - 36, // 26: google.cloud.filestore.v1.Backup.labels:type_name -> google.cloud.filestore.v1.Backup.LabelsEntry + 38, // 25: google.cloud.filestore.v1.Backup.create_time:type_name -> google.protobuf.Timestamp + 37, // 26: google.cloud.filestore.v1.Backup.labels:type_name -> google.cloud.filestore.v1.Backup.LabelsEntry 5, // 27: google.cloud.filestore.v1.Backup.source_instance_tier:type_name -> google.cloud.filestore.v1.Instance.Tier - 38, // 28: google.cloud.filestore.v1.Backup.satisfies_pzs:type_name -> google.protobuf.BoolValue - 27, // 29: google.cloud.filestore.v1.CreateBackupRequest.backup:type_name -> google.cloud.filestore.v1.Backup - 27, // 30: google.cloud.filestore.v1.UpdateBackupRequest.backup:type_name -> google.cloud.filestore.v1.Backup - 39, // 31: google.cloud.filestore.v1.UpdateBackupRequest.update_mask:type_name -> google.protobuf.FieldMask - 27, // 32: google.cloud.filestore.v1.ListBackupsResponse.backups:type_name -> google.cloud.filestore.v1.Backup - 18, // 33: google.cloud.filestore.v1.CloudFilestoreManager.ListInstances:input_type -> google.cloud.filestore.v1.ListInstancesRequest + 39, // 28: google.cloud.filestore.v1.Backup.satisfies_pzs:type_name -> google.protobuf.BoolValue + 28, // 29: google.cloud.filestore.v1.CreateBackupRequest.backup:type_name -> google.cloud.filestore.v1.Backup + 28, // 30: google.cloud.filestore.v1.UpdateBackupRequest.backup:type_name -> google.cloud.filestore.v1.Backup + 40, // 31: google.cloud.filestore.v1.UpdateBackupRequest.update_mask:type_name -> google.protobuf.FieldMask + 28, // 32: google.cloud.filestore.v1.ListBackupsResponse.backups:type_name -> google.cloud.filestore.v1.Backup + 19, // 33: google.cloud.filestore.v1.CloudFilestoreManager.ListInstances:input_type -> google.cloud.filestore.v1.ListInstancesRequest 14, // 34: google.cloud.filestore.v1.CloudFilestoreManager.GetInstance:input_type -> google.cloud.filestore.v1.GetInstanceRequest 13, // 35: google.cloud.filestore.v1.CloudFilestoreManager.CreateInstance:input_type -> google.cloud.filestore.v1.CreateInstanceRequest 15, // 36: google.cloud.filestore.v1.CloudFilestoreManager.UpdateInstance:input_type -> google.cloud.filestore.v1.UpdateInstanceRequest 16, // 37: google.cloud.filestore.v1.CloudFilestoreManager.RestoreInstance:input_type -> google.cloud.filestore.v1.RestoreInstanceRequest - 17, // 38: google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance:input_type -> google.cloud.filestore.v1.DeleteInstanceRequest - 25, // 39: google.cloud.filestore.v1.CloudFilestoreManager.ListSnapshots:input_type -> google.cloud.filestore.v1.ListSnapshotsRequest - 22, // 40: google.cloud.filestore.v1.CloudFilestoreManager.GetSnapshot:input_type -> google.cloud.filestore.v1.GetSnapshotRequest - 21, // 41: google.cloud.filestore.v1.CloudFilestoreManager.CreateSnapshot:input_type -> google.cloud.filestore.v1.CreateSnapshotRequest - 23, // 42: google.cloud.filestore.v1.CloudFilestoreManager.DeleteSnapshot:input_type -> google.cloud.filestore.v1.DeleteSnapshotRequest - 24, // 43: google.cloud.filestore.v1.CloudFilestoreManager.UpdateSnapshot:input_type -> google.cloud.filestore.v1.UpdateSnapshotRequest - 32, // 44: google.cloud.filestore.v1.CloudFilestoreManager.ListBackups:input_type -> google.cloud.filestore.v1.ListBackupsRequest - 31, // 45: google.cloud.filestore.v1.CloudFilestoreManager.GetBackup:input_type -> google.cloud.filestore.v1.GetBackupRequest - 28, // 46: google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup:input_type -> google.cloud.filestore.v1.CreateBackupRequest - 29, // 47: google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup:input_type -> google.cloud.filestore.v1.DeleteBackupRequest - 30, // 48: google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup:input_type -> google.cloud.filestore.v1.UpdateBackupRequest - 19, // 49: google.cloud.filestore.v1.CloudFilestoreManager.ListInstances:output_type -> google.cloud.filestore.v1.ListInstancesResponse - 12, // 50: google.cloud.filestore.v1.CloudFilestoreManager.GetInstance:output_type -> google.cloud.filestore.v1.Instance - 40, // 51: google.cloud.filestore.v1.CloudFilestoreManager.CreateInstance:output_type -> google.longrunning.Operation - 40, // 52: google.cloud.filestore.v1.CloudFilestoreManager.UpdateInstance:output_type -> google.longrunning.Operation - 40, // 53: google.cloud.filestore.v1.CloudFilestoreManager.RestoreInstance:output_type -> google.longrunning.Operation - 40, // 54: google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance:output_type -> google.longrunning.Operation - 26, // 55: google.cloud.filestore.v1.CloudFilestoreManager.ListSnapshots:output_type -> google.cloud.filestore.v1.ListSnapshotsResponse - 20, // 56: google.cloud.filestore.v1.CloudFilestoreManager.GetSnapshot:output_type -> google.cloud.filestore.v1.Snapshot - 40, // 57: google.cloud.filestore.v1.CloudFilestoreManager.CreateSnapshot:output_type -> google.longrunning.Operation - 40, // 58: google.cloud.filestore.v1.CloudFilestoreManager.DeleteSnapshot:output_type -> google.longrunning.Operation - 40, // 59: google.cloud.filestore.v1.CloudFilestoreManager.UpdateSnapshot:output_type -> google.longrunning.Operation - 33, // 60: google.cloud.filestore.v1.CloudFilestoreManager.ListBackups:output_type -> google.cloud.filestore.v1.ListBackupsResponse - 27, // 61: google.cloud.filestore.v1.CloudFilestoreManager.GetBackup:output_type -> google.cloud.filestore.v1.Backup - 40, // 62: google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup:output_type -> google.longrunning.Operation - 40, // 63: google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup:output_type -> google.longrunning.Operation - 40, // 64: google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup:output_type -> google.longrunning.Operation - 49, // [49:65] is the sub-list for method output_type - 33, // [33:49] is the sub-list for method input_type + 17, // 38: google.cloud.filestore.v1.CloudFilestoreManager.RevertInstance:input_type -> google.cloud.filestore.v1.RevertInstanceRequest + 18, // 39: google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance:input_type -> google.cloud.filestore.v1.DeleteInstanceRequest + 26, // 40: google.cloud.filestore.v1.CloudFilestoreManager.ListSnapshots:input_type -> google.cloud.filestore.v1.ListSnapshotsRequest + 23, // 41: google.cloud.filestore.v1.CloudFilestoreManager.GetSnapshot:input_type -> google.cloud.filestore.v1.GetSnapshotRequest + 22, // 42: google.cloud.filestore.v1.CloudFilestoreManager.CreateSnapshot:input_type -> google.cloud.filestore.v1.CreateSnapshotRequest + 24, // 43: google.cloud.filestore.v1.CloudFilestoreManager.DeleteSnapshot:input_type -> google.cloud.filestore.v1.DeleteSnapshotRequest + 25, // 44: google.cloud.filestore.v1.CloudFilestoreManager.UpdateSnapshot:input_type -> google.cloud.filestore.v1.UpdateSnapshotRequest + 33, // 45: google.cloud.filestore.v1.CloudFilestoreManager.ListBackups:input_type -> google.cloud.filestore.v1.ListBackupsRequest + 32, // 46: google.cloud.filestore.v1.CloudFilestoreManager.GetBackup:input_type -> google.cloud.filestore.v1.GetBackupRequest + 29, // 47: google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup:input_type -> google.cloud.filestore.v1.CreateBackupRequest + 30, // 48: google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup:input_type -> google.cloud.filestore.v1.DeleteBackupRequest + 31, // 49: google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup:input_type -> google.cloud.filestore.v1.UpdateBackupRequest + 20, // 50: google.cloud.filestore.v1.CloudFilestoreManager.ListInstances:output_type -> google.cloud.filestore.v1.ListInstancesResponse + 12, // 51: google.cloud.filestore.v1.CloudFilestoreManager.GetInstance:output_type -> google.cloud.filestore.v1.Instance + 41, // 52: google.cloud.filestore.v1.CloudFilestoreManager.CreateInstance:output_type -> google.longrunning.Operation + 41, // 53: google.cloud.filestore.v1.CloudFilestoreManager.UpdateInstance:output_type -> google.longrunning.Operation + 41, // 54: google.cloud.filestore.v1.CloudFilestoreManager.RestoreInstance:output_type -> google.longrunning.Operation + 41, // 55: google.cloud.filestore.v1.CloudFilestoreManager.RevertInstance:output_type -> google.longrunning.Operation + 41, // 56: google.cloud.filestore.v1.CloudFilestoreManager.DeleteInstance:output_type -> google.longrunning.Operation + 27, // 57: google.cloud.filestore.v1.CloudFilestoreManager.ListSnapshots:output_type -> google.cloud.filestore.v1.ListSnapshotsResponse + 21, // 58: google.cloud.filestore.v1.CloudFilestoreManager.GetSnapshot:output_type -> google.cloud.filestore.v1.Snapshot + 41, // 59: google.cloud.filestore.v1.CloudFilestoreManager.CreateSnapshot:output_type -> google.longrunning.Operation + 41, // 60: google.cloud.filestore.v1.CloudFilestoreManager.DeleteSnapshot:output_type -> google.longrunning.Operation + 41, // 61: google.cloud.filestore.v1.CloudFilestoreManager.UpdateSnapshot:output_type -> google.longrunning.Operation + 34, // 62: google.cloud.filestore.v1.CloudFilestoreManager.ListBackups:output_type -> google.cloud.filestore.v1.ListBackupsResponse + 28, // 63: google.cloud.filestore.v1.CloudFilestoreManager.GetBackup:output_type -> google.cloud.filestore.v1.Backup + 41, // 64: google.cloud.filestore.v1.CloudFilestoreManager.CreateBackup:output_type -> google.longrunning.Operation + 41, // 65: google.cloud.filestore.v1.CloudFilestoreManager.DeleteBackup:output_type -> google.longrunning.Operation + 41, // 66: google.cloud.filestore.v1.CloudFilestoreManager.UpdateBackup:output_type -> google.longrunning.Operation + 50, // [50:67] is the sub-list for method output_type + 33, // [33:50] is the sub-list for method input_type 33, // [33:33] is the sub-list for extension type_name 33, // [33:33] is the sub-list for extension extendee 0, // [0:33] is the sub-list for field type_name @@ -3517,7 +3654,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteInstanceRequest); i { + switch v := v.(*RevertInstanceRequest); i { case 0: return &v.state case 1: @@ -3529,7 +3666,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListInstancesRequest); i { + switch v := v.(*DeleteInstanceRequest); i { case 0: return &v.state case 1: @@ -3541,7 +3678,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListInstancesResponse); i { + switch v := v.(*ListInstancesRequest); i { case 0: return &v.state case 1: @@ -3553,7 +3690,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Snapshot); i { + switch v := v.(*ListInstancesResponse); i { case 0: return &v.state case 1: @@ -3565,7 +3702,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateSnapshotRequest); i { + switch v := v.(*Snapshot); i { case 0: return &v.state case 1: @@ -3577,7 +3714,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSnapshotRequest); i { + switch v := v.(*CreateSnapshotRequest); i { case 0: return &v.state case 1: @@ -3589,7 +3726,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteSnapshotRequest); i { + switch v := v.(*GetSnapshotRequest); i { case 0: return &v.state case 1: @@ -3601,7 +3738,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateSnapshotRequest); i { + switch v := v.(*DeleteSnapshotRequest); i { case 0: return &v.state case 1: @@ -3613,7 +3750,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSnapshotsRequest); i { + switch v := v.(*UpdateSnapshotRequest); i { case 0: return &v.state case 1: @@ -3625,7 +3762,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListSnapshotsResponse); i { + switch v := v.(*ListSnapshotsRequest); i { case 0: return &v.state case 1: @@ -3637,7 +3774,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Backup); i { + switch v := v.(*ListSnapshotsResponse); i { case 0: return &v.state case 1: @@ -3649,7 +3786,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateBackupRequest); i { + switch v := v.(*Backup); i { case 0: return &v.state case 1: @@ -3661,7 +3798,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteBackupRequest); i { + switch v := v.(*CreateBackupRequest); i { case 0: return &v.state case 1: @@ -3673,7 +3810,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateBackupRequest); i { + switch v := v.(*DeleteBackupRequest); i { case 0: return &v.state case 1: @@ -3685,7 +3822,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBackupRequest); i { + switch v := v.(*UpdateBackupRequest); i { case 0: return &v.state case 1: @@ -3697,7 +3834,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListBackupsRequest); i { + switch v := v.(*GetBackupRequest); i { case 0: return &v.state case 1: @@ -3709,6 +3846,18 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { } } file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListBackupsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_filestore_v1_cloud_filestore_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListBackupsResponse); i { case 0: return &v.state @@ -3733,7 +3882,7 @@ func file_google_cloud_filestore_v1_cloud_filestore_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_filestore_v1_cloud_filestore_service_proto_rawDesc, NumEnums: 9, - NumMessages: 28, + NumMessages: 29, NumExtensions: 0, NumServices: 1, }, @@ -3778,6 +3927,8 @@ type CloudFilestoreManagerClient interface { // capacity of the backup (and also equal to or larger than the minimum // capacity of the tier). RestoreInstance(ctx context.Context, in *RestoreInstanceRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Revert an existing instance's file system to a specified snapshot. + RevertInstance(ctx context.Context, in *RevertInstanceRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) // Deletes an instance. DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) // Lists all snapshots in a project for either a specified location @@ -3857,6 +4008,15 @@ func (c *cloudFilestoreManagerClient) RestoreInstance(ctx context.Context, in *R return out, nil } +func (c *cloudFilestoreManagerClient) RevertInstance(ctx context.Context, in *RevertInstanceRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.filestore.v1.CloudFilestoreManager/RevertInstance", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *cloudFilestoreManagerClient) DeleteInstance(ctx context.Context, in *DeleteInstanceRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { out := new(longrunningpb.Operation) err := c.cc.Invoke(ctx, "/google.cloud.filestore.v1.CloudFilestoreManager/DeleteInstance", in, out, opts...) @@ -3976,6 +4136,8 @@ type CloudFilestoreManagerServer interface { // capacity of the backup (and also equal to or larger than the minimum // capacity of the tier). RestoreInstance(context.Context, *RestoreInstanceRequest) (*longrunningpb.Operation, error) + // Revert an existing instance's file system to a specified snapshot. + RevertInstance(context.Context, *RevertInstanceRequest) (*longrunningpb.Operation, error) // Deletes an instance. DeleteInstance(context.Context, *DeleteInstanceRequest) (*longrunningpb.Operation, error) // Lists all snapshots in a project for either a specified location @@ -4021,6 +4183,9 @@ func (*UnimplementedCloudFilestoreManagerServer) UpdateInstance(context.Context, func (*UnimplementedCloudFilestoreManagerServer) RestoreInstance(context.Context, *RestoreInstanceRequest) (*longrunningpb.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method RestoreInstance not implemented") } +func (*UnimplementedCloudFilestoreManagerServer) RevertInstance(context.Context, *RevertInstanceRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RevertInstance not implemented") +} func (*UnimplementedCloudFilestoreManagerServer) DeleteInstance(context.Context, *DeleteInstanceRequest) (*longrunningpb.Operation, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteInstance not implemented") } @@ -4149,6 +4314,24 @@ func _CloudFilestoreManager_RestoreInstance_Handler(srv interface{}, ctx context return interceptor(ctx, in, info, handler) } +func _CloudFilestoreManager_RevertInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RevertInstanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CloudFilestoreManagerServer).RevertInstance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.filestore.v1.CloudFilestoreManager/RevertInstance", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CloudFilestoreManagerServer).RevertInstance(ctx, req.(*RevertInstanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CloudFilestoreManager_DeleteInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteInstanceRequest) if err := dec(in); err != nil { @@ -4371,6 +4554,10 @@ var _CloudFilestoreManager_serviceDesc = grpc.ServiceDesc{ MethodName: "RestoreInstance", Handler: _CloudFilestoreManager_RestoreInstance_Handler, }, + { + MethodName: "RevertInstance", + Handler: _CloudFilestoreManager_RevertInstance_Handler, + }, { MethodName: "DeleteInstance", Handler: _CloudFilestoreManager_DeleteInstance_Handler, diff --git a/filestore/apiv1/gapic_metadata.json b/filestore/apiv1/gapic_metadata.json index 3019dc88b5e2..7718ae77425b 100644 --- a/filestore/apiv1/gapic_metadata.json +++ b/filestore/apiv1/gapic_metadata.json @@ -10,6 +10,11 @@ "grpc": { "libraryClient": "CloudFilestoreManagerClient", "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, "CreateBackup": { "methods": [ "CreateBackup" @@ -35,6 +40,11 @@ "DeleteInstance" ] }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, "DeleteSnapshot": { "methods": [ "DeleteSnapshot" @@ -50,6 +60,16 @@ "GetInstance" ] }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, "GetSnapshot": { "methods": [ "GetSnapshot" @@ -65,6 +85,16 @@ "ListInstances" ] }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, "ListSnapshots": { "methods": [ "ListSnapshots" @@ -75,6 +105,11 @@ "RestoreInstance" ] }, + "RevertInstance": { + "methods": [ + "RevertInstance" + ] + }, "UpdateBackup": { "methods": [ "UpdateBackup" @@ -95,6 +130,11 @@ "rest": { "libraryClient": "CloudFilestoreManagerClient", "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, "CreateBackup": { "methods": [ "CreateBackup" @@ -120,6 +160,11 @@ "DeleteInstance" ] }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, "DeleteSnapshot": { "methods": [ "DeleteSnapshot" @@ -135,6 +180,16 @@ "GetInstance" ] }, + "GetLocation": { + "methods": [ + "GetLocation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, "GetSnapshot": { "methods": [ "GetSnapshot" @@ -150,6 +205,16 @@ "ListInstances" ] }, + "ListLocations": { + "methods": [ + "ListLocations" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, "ListSnapshots": { "methods": [ "ListSnapshots" @@ -160,6 +225,11 @@ "RestoreInstance" ] }, + "RevertInstance": { + "methods": [ + "RevertInstance" + ] + }, "UpdateBackup": { "methods": [ "UpdateBackup" diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CancelOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CancelOperation/main.go new file mode 100644 index 000000000000..5d1f47f688e8 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_CancelOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_CancelOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureOnlineStore/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureOnlineStore/main.go new file mode 100644 index 000000000000..6aab0ddf109c --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureOnlineStore/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureOnlineStore_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureOnlineStoreRequest. + } + op, err := c.CreateFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureOnlineStore_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureView/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureView/main.go new file mode 100644 index 000000000000..3acc50c2be8f --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/CreateFeatureView/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureView_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureViewRequest. + } + op, err := c.CreateFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureView_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureOnlineStore/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureOnlineStore/main.go new file mode 100644 index 000000000000..3387ac8673e5 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureOnlineStore/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureOnlineStore_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureOnlineStoreRequest. + } + op, err := c.DeleteFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureOnlineStore_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureView/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureView/main.go new file mode 100644 index 000000000000..5beb602b1bdf --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteFeatureView/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureView_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureViewRequest. + } + op, err := c.DeleteFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureView_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteOperation/main.go new file mode 100644 index 000000000000..2b7643982433 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureOnlineStore/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureOnlineStore/main.go new file mode 100644 index 000000000000..25b33c802636 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureOnlineStore/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureOnlineStore_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureOnlineStoreRequest. + } + resp, err := c.GetFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureOnlineStore_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureView/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureView/main.go new file mode 100644 index 000000000000..b519287ca4c7 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureView/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureView_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureViewRequest. + } + resp, err := c.GetFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureView_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureViewSync/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureViewSync/main.go new file mode 100644 index 000000000000..2dc6e72c7365 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetFeatureViewSync/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureViewSync_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureViewSyncRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureViewSyncRequest. + } + resp, err := c.GetFeatureViewSync(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureViewSync_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..4e9aeadec11a --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetLocation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetLocation/main.go new file mode 100644 index 000000000000..07e0add872c9 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetLocation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetLocation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetOperation/main.go new file mode 100644 index 000000000000..eb22cda68735 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureOnlineStores/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureOnlineStores/main.go new file mode 100644 index 000000000000..a28ed1614e32 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureOnlineStores/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureOnlineStores_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureOnlineStoresRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureOnlineStoresRequest. + } + it := c.ListFeatureOnlineStores(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureOnlineStores_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViewSyncs/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViewSyncs/main.go new file mode 100644 index 000000000000..1b6ff23c8df7 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViewSyncs/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViewSyncs_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureViewSyncsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureViewSyncsRequest. + } + it := c.ListFeatureViewSyncs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViewSyncs_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViews/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViews/main.go new file mode 100644 index 000000000000..722993084596 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListFeatureViews/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViews_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureViewsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureViewsRequest. + } + it := c.ListFeatureViews(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViews_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListLocations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListLocations/main.go new file mode 100644 index 000000000000..9f8b0a6b3667 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListLocations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListLocations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListOperations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListOperations/main.go new file mode 100644 index 000000000000..631fca99e3bc --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListOperations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListOperations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..25ad9f264ddb --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_SetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SyncFeatureView/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SyncFeatureView/main.go new file mode 100644 index 000000000000..ea5ad4b39865 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/SyncFeatureView/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_SyncFeatureView_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.SyncFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#SyncFeatureViewRequest. + } + resp, err := c.SyncFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_SyncFeatureView_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/TestIamPermissions/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..f3d6aef9f607 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_TestIamPermissions_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureOnlineStore/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureOnlineStore/main.go new file mode 100644 index 000000000000..3c12c4034c86 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureOnlineStore/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureOnlineStore_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureOnlineStoreRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureOnlineStoreRequest. + } + op, err := c.UpdateFeatureOnlineStore(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureOnlineStore_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureView/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureView/main.go new file mode 100644 index 000000000000..4ec3775fd660 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/UpdateFeatureView/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureView_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureViewRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureViewRequest. + } + op, err := c.UpdateFeatureView(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureView_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/WaitOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/WaitOperation/main.go new file mode 100644 index 000000000000..7e4626a76433 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreAdminClient/WaitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreAdminService_WaitOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreAdminClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreAdminService_WaitOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/CancelOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/CancelOperation/main.go new file mode 100644 index 000000000000..7a452115376f --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_CancelOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_CancelOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/DeleteOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/DeleteOperation/main.go new file mode 100644 index 000000000000..c78dfc2fbf1a --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_DeleteOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_DeleteOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/FetchFeatureValues/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/FetchFeatureValues/main.go new file mode 100644 index 000000000000..b2f38930423f --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/FetchFeatureValues/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_FetchFeatureValues_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.FetchFeatureValuesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#FetchFeatureValuesRequest. + } + resp, err := c.FetchFeatureValues(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_FetchFeatureValues_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..5ac55e583303 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_GetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetLocation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetLocation/main.go new file mode 100644 index 000000000000..5f5ba3338337 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_GetLocation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_GetLocation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetOperation/main.go new file mode 100644 index 000000000000..8963e8507ac6 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_GetOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_GetOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListLocations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListLocations/main.go new file mode 100644 index 000000000000..587ac2ce99a6 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_ListLocations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_ListLocations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListOperations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListOperations/main.go new file mode 100644 index 000000000000..82410005dc45 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_ListOperations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_ListOperations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/SetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..d55041357763 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_SetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/TestIamPermissions/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..42828375e0b3 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_TestIamPermissions_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/WaitOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/WaitOperation/main.go new file mode 100644 index 000000000000..063e5ddbb4e0 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureOnlineStoreClient/WaitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureOnlineStoreService_WaitOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureOnlineStoreClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureOnlineStoreService_WaitOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CancelOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CancelOperation/main.go new file mode 100644 index 000000000000..3130bf24a67f --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_CancelOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_CancelOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeature/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeature/main.go new file mode 100644 index 000000000000..2eca21d66e25 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeature/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_CreateFeature_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureRequest. + } + op, err := c.CreateFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_CreateFeature_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeatureGroup/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeatureGroup/main.go new file mode 100644 index 000000000000..6c67ae0b7cdf --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/CreateFeatureGroup/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_CreateFeatureGroup_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CreateFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CreateFeatureGroupRequest. + } + op, err := c.CreateFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_CreateFeatureGroup_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeature/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeature/main.go new file mode 100644 index 000000000000..2ba53f2ffb07 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeature/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_DeleteFeature_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureRequest. + } + op, err := c.DeleteFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_DeleteFeature_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeatureGroup/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeatureGroup/main.go new file mode 100644 index 000000000000..c50dbba79cda --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteFeatureGroup/main.go @@ -0,0 +1,56 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_DeleteFeatureGroup_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.DeleteFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#DeleteFeatureGroupRequest. + } + op, err := c.DeleteFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_DeleteFeatureGroup_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteOperation/main.go new file mode 100644 index 000000000000..cf75a9204964 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_DeleteOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_DeleteOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeature/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeature/main.go new file mode 100644 index 000000000000..ed1d60c15219 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeature/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_GetFeature_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureRequest. + } + resp, err := c.GetFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_GetFeature_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeatureGroup/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeatureGroup/main.go new file mode 100644 index 000000000000..6ebbdae1a647 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetFeatureGroup/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_GetFeatureGroup_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.GetFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#GetFeatureGroupRequest. + } + resp, err := c.GetFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_GetFeatureGroup_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..61a4f66470f0 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_GetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetLocation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetLocation/main.go new file mode 100644 index 000000000000..664cb3301bfe --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_GetLocation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_GetLocation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetOperation/main.go new file mode 100644 index 000000000000..21cf971e40de --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_GetOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_GetOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatureGroups/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatureGroups/main.go new file mode 100644 index 000000000000..8588bf6d63f7 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatureGroups/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_ListFeatureGroups_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeatureGroupsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeatureGroupsRequest. + } + it := c.ListFeatureGroups(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_ListFeatureGroups_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatures/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatures/main.go new file mode 100644 index 000000000000..19fbe893180c --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListFeatures/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_ListFeatures_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ListFeaturesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ListFeaturesRequest. + } + it := c.ListFeatures(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_ListFeatures_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListLocations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListLocations/main.go new file mode 100644 index 000000000000..6874383ea616 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_ListLocations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_ListLocations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListOperations/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListOperations/main.go new file mode 100644 index 000000000000..6878060a654c --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_ListOperations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_FeatureRegistryService_ListOperations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/SetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..98ce7093421e --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_SetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/TestIamPermissions/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..32d5c112360e --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_TestIamPermissions_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeature/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeature/main.go new file mode 100644 index 000000000000..86de2371a574 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeature/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_UpdateFeature_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureRequest. + } + op, err := c.UpdateFeature(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_UpdateFeature_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeatureGroup/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeatureGroup/main.go new file mode 100644 index 000000000000..d3f75c5ac0ce --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/UpdateFeatureGroup/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_UpdateFeatureGroup_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.UpdateFeatureGroupRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#UpdateFeatureGroupRequest. + } + op, err := c.UpdateFeatureGroup(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_UpdateFeatureGroup_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/WaitOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/WaitOperation/main.go new file mode 100644 index 000000000000..9ea8d1471943 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/FeatureRegistryClient/WaitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_FeatureRegistryService_WaitOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewFeatureRegistryClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_FeatureRegistryService_WaitOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CancelOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CancelOperation/main.go new file mode 100644 index 000000000000..b68499b1265d --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_CancelOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_LlmUtilityService_CancelOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ComputeTokens/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ComputeTokens/main.go new file mode 100644 index 000000000000..07707dd34c99 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ComputeTokens/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_ComputeTokens_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ComputeTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#ComputeTokensRequest. + } + resp, err := c.ComputeTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_ComputeTokens_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CountTokens/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CountTokens/main.go new file mode 100644 index 000000000000..fb403da2c21f --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/CountTokens/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_CountTokens_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.CountTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1/aiplatformpb#CountTokensRequest. + } + resp, err := c.CountTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_CountTokens_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/DeleteOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/DeleteOperation/main.go new file mode 100644 index 000000000000..98257c995bc6 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_DeleteOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1_generated_LlmUtilityService_DeleteOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..a5f330a456f8 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_GetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetLocation/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetLocation/main.go new file mode 100644 index 000000000000..b144f8d48951 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_GetLocation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_GetLocation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetOperation/main.go new file mode 100644 index 000000000000..9cfa3aed92ee --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_GetOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_GetOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListLocations/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListLocations/main.go new file mode 100644 index 000000000000..4a3800062d5c --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_ListLocations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_LlmUtilityService_ListLocations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListOperations/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListOperations/main.go new file mode 100644 index 000000000000..20a6ce1423ba --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_ListOperations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1_generated_LlmUtilityService_ListOperations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/SetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..37214425e05b --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_SetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/TestIamPermissions/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..66d779969bbb --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_TestIamPermissions_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/WaitOperation/main.go b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/WaitOperation/main.go new file mode 100644 index 000000000000..dd2e8dd1748d --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1/LlmUtilityClient/WaitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1_generated_LlmUtilityService_WaitOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1_generated_LlmUtilityService_WaitOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json b/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json index b4acee784714..9c6debdd11e1 100644 --- a/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json +++ b/internal/generated/snippets/aiplatform/apiv1/snippet_metadata.google.cloud.aiplatform.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/aiplatform/apiv1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { @@ -2124,14 +2124,14 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_CancelOperation_sync", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_CancelOperation_sync", "title": "aiplatform CancelOperation Sample", "description": "CancelOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreOnlineServingClient/CancelOperation/main.go", + "file": "FeatureOnlineStoreAdminClient/CancelOperation/main.go", "language": "GO", "clientMethod": { "shortName": "CancelOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.CancelOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.CancelOperation", "parameters": [ { "type": "context.Context", @@ -2147,8 +2147,8 @@ } ], "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { "shortName": "CancelOperation", @@ -2169,21 +2169,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_DeleteOperation_sync", - "title": "aiplatform DeleteOperation Sample", - "description": "DeleteOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreOnlineServingClient/DeleteOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureOnlineStore_sync", + "title": "aiplatform CreateFeatureOnlineStore Sample", + "description": "CreateFeatureOnlineStore creates a new FeatureOnlineStore in a given project and location.", + "file": "FeatureOnlineStoreAdminClient/CreateFeatureOnlineStore/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.DeleteOperation", + "shortName": "CreateFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.CreateFeatureOnlineStore", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.DeleteOperationRequest", + "type": "aiplatformpb.CreateFeatureOnlineStoreRequest", "name": "req" }, { @@ -2191,16 +2191,17 @@ "name": "opts" } ], + "resultType": "CreateFeatureOnlineStoreOperation", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteOperation", - "fullName": "google.longrunning.Operations.DeleteOperation", + "shortName": "CreateFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureOnlineStore", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2208,27 +2209,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetIamPolicy_sync", - "title": "aiplatform GetIamPolicy Sample", - "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", - "file": "FeaturestoreOnlineServingClient/GetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_CreateFeatureView_sync", + "title": "aiplatform CreateFeatureView Sample", + "description": "CreateFeatureView creates a new FeatureView in a given FeatureOnlineStore.", + "file": "FeatureOnlineStoreAdminClient/CreateFeatureView/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetIamPolicy", + "shortName": "CreateFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.CreateFeatureView", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.GetIamPolicyRequest", + "type": "aiplatformpb.CreateFeatureViewRequest", "name": "req" }, { @@ -2236,17 +2237,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "CreateFeatureViewOperation", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "GetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "shortName": "CreateFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.CreateFeatureView", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2254,27 +2255,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetLocation_sync", - "title": "aiplatform GetLocation Sample", - "description": "GetLocation gets information about a location.", - "file": "FeaturestoreOnlineServingClient/GetLocation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureOnlineStore_sync", + "title": "aiplatform DeleteFeatureOnlineStore Sample", + "description": "DeleteFeatureOnlineStore deletes a single FeatureOnlineStore. The FeatureOnlineStore must not\ncontain any FeatureViews.", + "file": "FeatureOnlineStoreAdminClient/DeleteFeatureOnlineStore/main.go", "language": "GO", "clientMethod": { - "shortName": "GetLocation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetLocation", + "shortName": "DeleteFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.DeleteFeatureOnlineStore", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.GetLocationRequest", + "type": "aiplatformpb.DeleteFeatureOnlineStoreRequest", "name": "req" }, { @@ -2282,17 +2283,17 @@ "name": "opts" } ], - "resultType": "*locationpb.Location", + "resultType": "DeleteFeatureOnlineStoreOperation", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "GetLocation", - "fullName": "google.cloud.location.Locations.GetLocation", + "shortName": "DeleteFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureOnlineStore", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2300,27 +2301,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetOperation_sync", - "title": "aiplatform GetOperation Sample", - "description": "GetOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreOnlineServingClient/GetOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteFeatureView_sync", + "title": "aiplatform DeleteFeatureView Sample", + "description": "DeleteFeatureView deletes a single FeatureView.", + "file": "FeatureOnlineStoreAdminClient/DeleteFeatureView/main.go", "language": "GO", "clientMethod": { - "shortName": "GetOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetOperation", + "shortName": "DeleteFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.DeleteFeatureView", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.GetOperationRequest", + "type": "aiplatformpb.DeleteFeatureViewRequest", "name": "req" }, { @@ -2328,17 +2329,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "DeleteFeatureViewOperation", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "GetOperation", - "fullName": "google.longrunning.Operations.GetOperation", + "shortName": "DeleteFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.DeleteFeatureView", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2346,27 +2347,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ListLocations_sync", - "title": "aiplatform ListLocations Sample", - "description": "ListLocations lists information about the supported locations for this service.", - "file": "FeaturestoreOnlineServingClient/ListLocations/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreAdminClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListLocations", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ListLocations", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.ListLocationsRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -2374,17 +2375,16 @@ "name": "opts" } ], - "resultType": "LocationIterator", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "ListLocations", - "fullName": "google.cloud.location.Locations.ListLocations", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -2392,27 +2392,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ListOperations_sync", - "title": "aiplatform ListOperations Sample", - "description": "ListOperations is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreOnlineServingClient/ListOperations/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureOnlineStore_sync", + "title": "aiplatform GetFeatureOnlineStore Sample", + "description": "GetFeatureOnlineStore gets details of a single FeatureOnlineStore.", + "file": "FeatureOnlineStoreAdminClient/GetFeatureOnlineStore/main.go", "language": "GO", "clientMethod": { - "shortName": "ListOperations", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ListOperations", + "shortName": "GetFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetFeatureOnlineStore", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.ListOperationsRequest", + "type": "aiplatformpb.GetFeatureOnlineStoreRequest", "name": "req" }, { @@ -2420,17 +2420,17 @@ "name": "opts" } ], - "resultType": "OperationIterator", + "resultType": "*aiplatformpb.FeatureOnlineStore", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "ListOperations", - "fullName": "google.longrunning.Operations.ListOperations", + "shortName": "GetFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureOnlineStore", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2438,27 +2438,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_sync", - "title": "aiplatform ReadFeatureValues Sample", - "description": "ReadFeatureValues reads Feature values of a specific entity of an EntityType. For reading\nfeature values of multiple entities of an EntityType, please use\nStreamingReadFeatureValues.", - "file": "FeaturestoreOnlineServingClient/ReadFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureView_sync", + "title": "aiplatform GetFeatureView Sample", + "description": "GetFeatureView gets details of a single FeatureView.", + "file": "FeatureOnlineStoreAdminClient/GetFeatureView/main.go", "language": "GO", "clientMethod": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ReadFeatureValues", + "shortName": "GetFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetFeatureView", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ReadFeatureValuesRequest", + "type": "aiplatformpb.GetFeatureViewRequest", "name": "req" }, { @@ -2466,17 +2466,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.ReadFeatureValuesResponse", + "resultType": "*aiplatformpb.FeatureView", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "ReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", + "shortName": "GetFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureView", "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2490,21 +2490,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_SetIamPolicy_sync", - "title": "aiplatform SetIamPolicy Sample", - "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", - "file": "FeaturestoreOnlineServingClient/SetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetFeatureViewSync_sync", + "title": "aiplatform GetFeatureViewSync Sample", + "description": "GetFeatureViewSync gets details of a single FeatureViewSync.", + "file": "FeatureOnlineStoreAdminClient/GetFeatureViewSync/main.go", "language": "GO", "clientMethod": { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.SetIamPolicy", + "shortName": "GetFeatureViewSync", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetFeatureViewSync", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.SetIamPolicyRequest", + "type": "aiplatformpb.GetFeatureViewSyncRequest", "name": "req" }, { @@ -2512,17 +2512,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "*aiplatformpb.FeatureViewSync", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "SetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "shortName": "GetFeatureViewSync", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.GetFeatureViewSync", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2536,21 +2536,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_TestIamPermissions_sync", - "title": "aiplatform TestIamPermissions Sample", - "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", - "file": "FeaturestoreOnlineServingClient/TestIamPermissions/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "FeatureOnlineStoreAdminClient/GetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.TestIamPermissions", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.TestIamPermissionsRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -2558,14 +2558,14 @@ "name": "opts" } ], - "resultType": "*iampb.TestIamPermissionsResponse", + "resultType": "*iampb.Policy", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "TestIamPermissions", - "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { "shortName": "IAMPolicy", "fullName": "google.iam.v1.IAMPolicy" @@ -2582,21 +2582,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_WaitOperation_sync", - "title": "aiplatform WaitOperation Sample", - "description": "WaitOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreOnlineServingClient/WaitOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "FeatureOnlineStoreAdminClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "WaitOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.WaitOperation", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.WaitOperationRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -2604,17 +2604,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "*locationpb.Location", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "WaitOperation", - "fullName": "google.longrunning.Operations.WaitOperation", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -2628,21 +2628,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_WriteFeatureValues_sync", - "title": "aiplatform WriteFeatureValues Sample", - "description": "WriteFeatureValues writes Feature values of one or more entities of an EntityType.\n\nThe Feature values are merged into existing entities if any. The Feature\nvalues to be written must have timestamp within the online storage\nretention.", - "file": "FeaturestoreOnlineServingClient/WriteFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreAdminClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "WriteFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.WriteFeatureValues", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.WriteFeatureValuesRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -2650,17 +2650,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.WriteFeatureValuesResponse", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "FeaturestoreOnlineServingClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "WriteFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "FeaturestoreOnlineServingService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -2674,21 +2674,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchCreateFeatures_sync", - "title": "aiplatform BatchCreateFeatures Sample", - "description": "BatchCreateFeatures creates a batch of Features in a given EntityType.", - "file": "FeaturestoreClient/BatchCreateFeatures/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureOnlineStores_sync", + "title": "aiplatform ListFeatureOnlineStores Sample", + "description": "ListFeatureOnlineStores lists FeatureOnlineStores in a given project and location.", + "file": "FeatureOnlineStoreAdminClient/ListFeatureOnlineStores/main.go", "language": "GO", "clientMethod": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.BatchCreateFeatures", + "shortName": "ListFeatureOnlineStores", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.ListFeatureOnlineStores", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.BatchCreateFeaturesRequest", + "type": "aiplatformpb.ListFeatureOnlineStoresRequest", "name": "req" }, { @@ -2696,17 +2696,17 @@ "name": "opts" } ], - "resultType": "BatchCreateFeaturesOperation", + "resultType": "FeatureOnlineStoreIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "BatchCreateFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", + "shortName": "ListFeatureOnlineStores", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureOnlineStores", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2714,27 +2714,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchReadFeatureValues_sync", - "title": "aiplatform BatchReadFeatureValues Sample", - "description": "BatchReadFeatureValues batch reads Feature values from a Featurestore.\n\nThis API enables batch reading Feature values, where each read\ninstance in the batch may read Feature values of entities from one or\nmore EntityTypes. Point-in-time correctness is guaranteed for Feature\nvalues of each read instance as of each instance's read timestamp.", - "file": "FeaturestoreClient/BatchReadFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViewSyncs_sync", + "title": "aiplatform ListFeatureViewSyncs Sample", + "description": "ListFeatureViewSyncs lists FeatureViewSyncs in a given FeatureView.", + "file": "FeatureOnlineStoreAdminClient/ListFeatureViewSyncs/main.go", "language": "GO", "clientMethod": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.BatchReadFeatureValues", + "shortName": "ListFeatureViewSyncs", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.ListFeatureViewSyncs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.BatchReadFeatureValuesRequest", + "type": "aiplatformpb.ListFeatureViewSyncsRequest", "name": "req" }, { @@ -2742,17 +2742,17 @@ "name": "opts" } ], - "resultType": "BatchReadFeatureValuesOperation", + "resultType": "FeatureViewSyncIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "BatchReadFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", + "shortName": "ListFeatureViewSyncs", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViewSyncs", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2760,27 +2760,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CancelOperation_sync", - "title": "aiplatform CancelOperation Sample", - "description": "CancelOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreClient/CancelOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListFeatureViews_sync", + "title": "aiplatform ListFeatureViews Sample", + "description": "ListFeatureViews lists FeatureViews in a given FeatureOnlineStore.", + "file": "FeatureOnlineStoreAdminClient/ListFeatureViews/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CancelOperation", + "shortName": "ListFeatureViews", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.ListFeatureViews", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.CancelOperationRequest", + "type": "aiplatformpb.ListFeatureViewsRequest", "name": "req" }, { @@ -2788,16 +2788,17 @@ "name": "opts" } ], + "resultType": "FeatureViewIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "CancelOperation", - "fullName": "google.longrunning.Operations.CancelOperation", + "shortName": "ListFeatureViews", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.ListFeatureViews", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2805,27 +2806,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateEntityType_sync", - "title": "aiplatform CreateEntityType Sample", - "description": "CreateEntityType creates a new EntityType in a given Featurestore.", - "file": "FeaturestoreClient/CreateEntityType/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "FeatureOnlineStoreAdminClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateEntityType", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateEntityTypeRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -2833,17 +2834,17 @@ "name": "opts" } ], - "resultType": "CreateEntityTypeOperation", + "resultType": "LocationIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "CreateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -2851,27 +2852,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeature_sync", - "title": "aiplatform CreateFeature Sample", - "description": "CreateFeature creates a new Feature in a given EntityType.", - "file": "FeaturestoreClient/CreateFeature/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreAdminClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateFeature", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateFeatureRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -2879,17 +2880,17 @@ "name": "opts" } ], - "resultType": "CreateFeatureOperation", + "resultType": "OperationIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "CreateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -2897,27 +2898,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeaturestore_sync", - "title": "aiplatform CreateFeaturestore Sample", - "description": "CreateFeaturestore creates a new Featurestore in a given project and location.", - "file": "FeaturestoreClient/CreateFeaturestore/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "FeatureOnlineStoreAdminClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateFeaturestore", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.SetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateFeaturestoreRequest", + "type": "iampb.SetIamPolicyRequest", "name": "req" }, { @@ -2925,17 +2926,17 @@ "name": "opts" } ], - "resultType": "CreateFeaturestoreOperation", + "resultType": "*iampb.Policy", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "CreateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -2943,27 +2944,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteEntityType_sync", - "title": "aiplatform DeleteEntityType Sample", - "description": "DeleteEntityType deletes a single EntityType. The EntityType must not have any Features\nor `force` must be set to true for the request to succeed.", - "file": "FeaturestoreClient/DeleteEntityType/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_SyncFeatureView_sync", + "title": "aiplatform SyncFeatureView Sample", + "description": "SyncFeatureView triggers on-demand sync for the FeatureView.", + "file": "FeatureOnlineStoreAdminClient/SyncFeatureView/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteEntityType", + "shortName": "SyncFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.SyncFeatureView", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteEntityTypeRequest", + "type": "aiplatformpb.SyncFeatureViewRequest", "name": "req" }, { @@ -2971,17 +2972,17 @@ "name": "opts" } ], - "resultType": "DeleteEntityTypeOperation", + "resultType": "*aiplatformpb.SyncFeatureViewResponse", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", + "shortName": "SyncFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.SyncFeatureView", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -2989,27 +2990,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeature_sync", - "title": "aiplatform DeleteFeature Sample", - "description": "DeleteFeature deletes a single Feature.", - "file": "FeaturestoreClient/DeleteFeature/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "FeatureOnlineStoreAdminClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeature", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.TestIamPermissions", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteFeatureRequest", + "type": "iampb.TestIamPermissionsRequest", "name": "req" }, { @@ -3017,17 +3018,17 @@ "name": "opts" } ], - "resultType": "DeleteFeatureOperation", + "resultType": "*iampb.TestIamPermissionsResponse", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -3035,27 +3036,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeatureValues_sync", - "title": "aiplatform DeleteFeatureValues Sample", - "description": "DeleteFeatureValues delete Feature values from Featurestore.\n\nThe progress of the deletion is tracked by the returned operation. The\ndeleted feature values are guaranteed to be invisible to subsequent read\noperations after the operation is marked as successfully done.\n\nIf a delete feature values operation fails, the feature values\nreturned from reads and exports may be inconsistent. If consistency is\nrequired, the caller must retry the same delete request again and wait till\nthe new operation returned is marked as successfully done.", - "file": "FeaturestoreClient/DeleteFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureOnlineStore_sync", + "title": "aiplatform UpdateFeatureOnlineStore Sample", + "description": "UpdateFeatureOnlineStore updates the parameters of a single FeatureOnlineStore.", + "file": "FeatureOnlineStoreAdminClient/UpdateFeatureOnlineStore/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeatureValues", + "shortName": "UpdateFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.UpdateFeatureOnlineStore", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteFeatureValuesRequest", + "type": "aiplatformpb.UpdateFeatureOnlineStoreRequest", "name": "req" }, { @@ -3063,17 +3064,17 @@ "name": "opts" } ], - "resultType": "DeleteFeatureValuesOperation", + "resultType": "UpdateFeatureOnlineStoreOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeatureValues", + "shortName": "UpdateFeatureOnlineStore", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureOnlineStore", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -3087,21 +3088,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeaturestore_sync", - "title": "aiplatform DeleteFeaturestore Sample", - "description": "DeleteFeaturestore deletes a single Featurestore. The Featurestore must not contain any\nEntityTypes or `force` must be set to true for the request to succeed.", - "file": "FeaturestoreClient/DeleteFeaturestore/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_UpdateFeatureView_sync", + "title": "aiplatform UpdateFeatureView Sample", + "description": "UpdateFeatureView updates the parameters of a single FeatureView.", + "file": "FeatureOnlineStoreAdminClient/UpdateFeatureView/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeaturestore", + "shortName": "UpdateFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.UpdateFeatureView", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteFeaturestoreRequest", + "type": "aiplatformpb.UpdateFeatureViewRequest", "name": "req" }, { @@ -3109,17 +3110,17 @@ "name": "opts" } ], - "resultType": "DeleteFeaturestoreOperation", + "resultType": "UpdateFeatureViewOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", + "shortName": "UpdateFeatureView", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService.UpdateFeatureView", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreAdminService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminService" } } }, @@ -3127,27 +3128,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteOperation_sync", - "title": "aiplatform DeleteOperation Sample", - "description": "DeleteOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreClient/DeleteOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreAdminService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreAdminClient/WaitOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteOperation", + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient.WaitOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.DeleteOperationRequest", + "type": "longrunningpb.WaitOperationRequest", "name": "req" }, { @@ -3155,13 +3156,14 @@ "name": "opts" } ], + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreAdminClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreAdminClient" }, "method": { - "shortName": "DeleteOperation", - "fullName": "google.longrunning.Operations.DeleteOperation", + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -3172,27 +3174,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ExportFeatureValues_sync", - "title": "aiplatform ExportFeatureValues Sample", - "description": "ExportFeatureValues exports Feature values from all the entities of a target EntityType.", - "file": "FeaturestoreClient/ExportFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ExportFeatureValues", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ExportFeatureValuesRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -3200,17 +3202,16 @@ "name": "opts" } ], - "resultType": "ExportFeatureValuesOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "ExportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3218,27 +3219,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetEntityType_sync", - "title": "aiplatform GetEntityType Sample", - "description": "GetEntityType gets details of a single EntityType.", - "file": "FeaturestoreClient/GetEntityType/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetEntityType", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetEntityTypeRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -3246,17 +3247,16 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.EntityType", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3264,27 +3264,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeature_sync", - "title": "aiplatform GetFeature Sample", - "description": "GetFeature gets details of a single Feature.", - "file": "FeaturestoreClient/GetFeature/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_FetchFeatureValues_sync", + "title": "aiplatform FetchFeatureValues Sample", + "description": "FetchFeatureValues fetch feature values under a FeatureView.", + "file": "FeatureOnlineStoreClient/FetchFeatureValues/main.go", "language": "GO", "clientMethod": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetFeature", + "shortName": "FetchFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.FetchFeatureValues", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetFeatureRequest", + "type": "aiplatformpb.FetchFeatureValuesRequest", "name": "req" }, { @@ -3292,17 +3292,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.Feature", + "resultType": "*aiplatformpb.FetchFeatureValuesResponse", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", + "shortName": "FetchFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreService.FetchFeatureValues", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureOnlineStoreService", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreService" } } }, @@ -3316,21 +3316,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeaturestore_sync", - "title": "aiplatform GetFeaturestore Sample", - "description": "GetFeaturestore gets details of a single Featurestore.", - "file": "FeaturestoreClient/GetFeaturestore/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "FeatureOnlineStoreClient/GetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetFeaturestore", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetFeaturestoreRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -3338,17 +3338,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.Featurestore", + "resultType": "*iampb.Policy", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -3362,21 +3362,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetIamPolicy_sync", - "title": "aiplatform GetIamPolicy Sample", - "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", - "file": "FeaturestoreClient/GetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "FeatureOnlineStoreClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetIamPolicy", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.GetIamPolicyRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -3384,17 +3384,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "*locationpb.Location", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -3408,21 +3408,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetLocation_sync", - "title": "aiplatform GetLocation Sample", - "description": "GetLocation gets information about a location.", - "file": "FeaturestoreClient/GetLocation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "GetLocation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetLocation", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.GetLocationRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -3430,17 +3430,17 @@ "name": "opts" } ], - "resultType": "*locationpb.Location", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetLocation", - "fullName": "google.cloud.location.Locations.GetLocation", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3454,21 +3454,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetOperation_sync", - "title": "aiplatform GetOperation Sample", - "description": "GetOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreClient/GetOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "FeatureOnlineStoreClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "GetOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetOperation", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.GetOperationRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -3476,17 +3476,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "LocationIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "GetOperation", - "fullName": "google.longrunning.Operations.GetOperation", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -3494,27 +3494,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ImportFeatureValues_sync", - "title": "aiplatform ImportFeatureValues Sample", - "description": "ImportFeatureValues imports Feature values into the Featurestore from a source storage.\n\nThe progress of the import is tracked by the returned operation. The\nimported features are guaranteed to be visible to subsequent read\noperations after the operation is marked as successfully done.\n\nIf an import operation fails, the Feature values returned from\nreads and exports may be inconsistent. If consistency is\nrequired, the caller must retry the same import request again and wait till\nthe new operation returned is marked as successfully done.\n\nThere are also scenarios where the caller can cause inconsistency.\n\n- Source data for import contains multiple distinct Feature values for\nthe same entity ID and timestamp.\n- Source is modified during an import. This includes adding, updating, or\nremoving source data and/or metadata. Examples of updating metadata\ninclude but are not limited to changing storage location, storage class,\nor retention policy.\n- Online serving cluster is under-provisioned.", - "file": "FeaturestoreClient/ImportFeatureValues/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ImportFeatureValues", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ImportFeatureValuesRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -3522,17 +3522,17 @@ "name": "opts" } ], - "resultType": "ImportFeatureValuesOperation", + "resultType": "OperationIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "ImportFeatureValues", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3540,27 +3540,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListEntityTypes_sync", - "title": "aiplatform ListEntityTypes Sample", - "description": "ListEntityTypes lists EntityTypes in a given Featurestore.", - "file": "FeaturestoreClient/ListEntityTypes/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "FeatureOnlineStoreClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListEntityTypes", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.SetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListEntityTypesRequest", + "type": "iampb.SetIamPolicyRequest", "name": "req" }, { @@ -3568,17 +3568,17 @@ "name": "opts" } ], - "resultType": "EntityTypeIterator", + "resultType": "*iampb.Policy", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "ListEntityTypes", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -3586,27 +3586,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeatures_sync", - "title": "aiplatform ListFeatures Sample", - "description": "ListFeatures lists Features in a given EntityType.", - "file": "FeaturestoreClient/ListFeatures/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "FeatureOnlineStoreClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListFeatures", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.TestIamPermissions", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListFeaturesRequest", + "type": "iampb.TestIamPermissionsRequest", "name": "req" }, { @@ -3614,17 +3614,17 @@ "name": "opts" } ], - "resultType": "FeatureIterator", + "resultType": "*iampb.TestIamPermissionsResponse", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "ListFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -3632,27 +3632,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeaturestores_sync", - "title": "aiplatform ListFeaturestores Sample", - "description": "ListFeaturestores lists Featurestores in a given project and location.", - "file": "FeaturestoreClient/ListFeaturestores/main.go", + "regionTag": "aiplatform_v1_generated_FeatureOnlineStoreService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureOnlineStoreClient/WaitOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListFeaturestores", + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient.WaitOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListFeaturestoresRequest", + "type": "longrunningpb.WaitOperationRequest", "name": "req" }, { @@ -3660,17 +3660,17 @@ "name": "opts" } ], - "resultType": "FeaturestoreIterator", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureOnlineStoreClient", + "fullName": "google.cloud.aiplatform.v1.FeatureOnlineStoreClient" }, "method": { - "shortName": "ListFeaturestores", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3678,27 +3678,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListLocations_sync", - "title": "aiplatform ListLocations Sample", - "description": "ListLocations lists information about the supported locations for this service.", - "file": "FeaturestoreClient/ListLocations/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureRegistryClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListLocations", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListLocations", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.ListLocationsRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -3706,17 +3706,16 @@ "name": "opts" } ], - "resultType": "LocationIterator", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "ListLocations", - "fullName": "google.cloud.location.Locations.ListLocations", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3724,27 +3723,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListOperations_sync", - "title": "aiplatform ListOperations Sample", - "description": "ListOperations is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreClient/ListOperations/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_CreateFeature_sync", + "title": "aiplatform CreateFeature Sample", + "description": "CreateFeature creates a new Feature in a given FeatureGroup.", + "file": "FeatureRegistryClient/CreateFeature/main.go", "language": "GO", "clientMethod": { - "shortName": "ListOperations", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListOperations", + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.CreateFeature", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.ListOperationsRequest", + "type": "aiplatformpb.CreateFeatureRequest", "name": "req" }, { @@ -3752,17 +3751,17 @@ "name": "opts" } ], - "resultType": "OperationIterator", + "resultType": "CreateFeatureOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "ListOperations", - "fullName": "google.longrunning.Operations.ListOperations", + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeature", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -3770,27 +3769,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_SearchFeatures_sync", - "title": "aiplatform SearchFeatures Sample", - "description": "SearchFeatures searches Features matching a query in a given project.", - "file": "FeaturestoreClient/SearchFeatures/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_CreateFeatureGroup_sync", + "title": "aiplatform CreateFeatureGroup Sample", + "description": "CreateFeatureGroup creates a new FeatureGroup in a given project and location.", + "file": "FeatureRegistryClient/CreateFeatureGroup/main.go", "language": "GO", "clientMethod": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.SearchFeatures", + "shortName": "CreateFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.CreateFeatureGroup", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.SearchFeaturesRequest", + "type": "aiplatformpb.CreateFeatureGroupRequest", "name": "req" }, { @@ -3798,17 +3797,17 @@ "name": "opts" } ], - "resultType": "FeatureIterator", + "resultType": "CreateFeatureGroupOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "SearchFeatures", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", + "shortName": "CreateFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.CreateFeatureGroup", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -3816,27 +3815,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_SetIamPolicy_sync", - "title": "aiplatform SetIamPolicy Sample", - "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", - "file": "FeaturestoreClient/SetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_DeleteFeature_sync", + "title": "aiplatform DeleteFeature Sample", + "description": "DeleteFeature deletes a single Feature.", + "file": "FeatureRegistryClient/DeleteFeature/main.go", "language": "GO", "clientMethod": { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.SetIamPolicy", + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.DeleteFeature", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.SetIamPolicyRequest", + "type": "aiplatformpb.DeleteFeatureRequest", "name": "req" }, { @@ -3844,17 +3843,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "DeleteFeatureOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "SetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeature", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -3862,27 +3861,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_TestIamPermissions_sync", - "title": "aiplatform TestIamPermissions Sample", - "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", - "file": "FeaturestoreClient/TestIamPermissions/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_DeleteFeatureGroup_sync", + "title": "aiplatform DeleteFeatureGroup Sample", + "description": "DeleteFeatureGroup deletes a single FeatureGroup.", + "file": "FeatureRegistryClient/DeleteFeatureGroup/main.go", "language": "GO", "clientMethod": { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.TestIamPermissions", + "shortName": "DeleteFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.DeleteFeatureGroup", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.TestIamPermissionsRequest", + "type": "aiplatformpb.DeleteFeatureGroupRequest", "name": "req" }, { @@ -3890,17 +3889,17 @@ "name": "opts" } ], - "resultType": "*iampb.TestIamPermissionsResponse", + "resultType": "DeleteFeatureGroupOperation", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "TestIamPermissions", - "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "shortName": "DeleteFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.DeleteFeatureGroup", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -3908,27 +3907,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateEntityType_sync", - "title": "aiplatform UpdateEntityType Sample", - "description": "UpdateEntityType updates the parameters of a single EntityType.", - "file": "FeaturestoreClient/UpdateEntityType/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureRegistryClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateEntityType", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpdateEntityTypeRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -3936,17 +3935,16 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.EntityType", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "UpdateEntityType", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -3954,27 +3952,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeature_sync", - "title": "aiplatform UpdateFeature Sample", - "description": "UpdateFeature updates the parameters of a single Feature.", - "file": "FeaturestoreClient/UpdateFeature/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_GetFeature_sync", + "title": "aiplatform GetFeature Sample", + "description": "GetFeature gets details of a single Feature.", + "file": "FeatureRegistryClient/GetFeature/main.go", "language": "GO", "clientMethod": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateFeature", + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.GetFeature", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpdateFeatureRequest", + "type": "aiplatformpb.GetFeatureRequest", "name": "req" }, { @@ -3984,15 +3982,15 @@ ], "resultType": "*aiplatformpb.Feature", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "UpdateFeature", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.GetFeature", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4006,21 +4004,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeaturestore_sync", - "title": "aiplatform UpdateFeaturestore Sample", - "description": "UpdateFeaturestore updates the parameters of a single Featurestore.", - "file": "FeaturestoreClient/UpdateFeaturestore/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_GetFeatureGroup_sync", + "title": "aiplatform GetFeatureGroup Sample", + "description": "GetFeatureGroup gets details of a single FeatureGroup.", + "file": "FeatureRegistryClient/GetFeatureGroup/main.go", "language": "GO", "clientMethod": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateFeaturestore", + "shortName": "GetFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.GetFeatureGroup", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpdateFeaturestoreRequest", + "type": "aiplatformpb.GetFeatureGroupRequest", "name": "req" }, { @@ -4028,17 +4026,17 @@ "name": "opts" } ], - "resultType": "UpdateFeaturestoreOperation", + "resultType": "*aiplatformpb.FeatureGroup", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "UpdateFeaturestore", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", + "shortName": "GetFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.GetFeatureGroup", "service": { - "shortName": "FeaturestoreService", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4046,27 +4044,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_FeaturestoreService_WaitOperation_sync", - "title": "aiplatform WaitOperation Sample", - "description": "WaitOperation is a utility method from google.longrunning.Operations.", - "file": "FeaturestoreClient/WaitOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "FeatureRegistryClient/GetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "WaitOperation", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.WaitOperation", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.WaitOperationRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -4074,17 +4072,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "*iampb.Policy", "client": { - "shortName": "FeaturestoreClient", - "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "WaitOperation", - "fullName": "google.longrunning.Operations.WaitOperation", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -4098,21 +4096,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_CancelOperation_sync", - "title": "aiplatform CancelOperation Sample", - "description": "CancelOperation is a utility method from google.longrunning.Operations.", - "file": "IndexEndpointClient/CancelOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "FeatureRegistryClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelOperation", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.CancelOperation", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.CancelOperationRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -4120,16 +4118,17 @@ "name": "opts" } ], + "resultType": "*locationpb.Location", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "CancelOperation", - "fullName": "google.longrunning.Operations.CancelOperation", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -4137,27 +4136,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_CreateIndexEndpoint_sync", - "title": "aiplatform CreateIndexEndpoint Sample", - "description": "CreateIndexEndpoint creates an IndexEndpoint.", - "file": "IndexEndpointClient/CreateIndexEndpoint/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureRegistryClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.CreateIndexEndpoint", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateIndexEndpointRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -4165,17 +4164,17 @@ "name": "opts" } ], - "resultType": "CreateIndexEndpointOperation", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "CreateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -4183,27 +4182,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeleteIndexEndpoint_sync", - "title": "aiplatform DeleteIndexEndpoint Sample", - "description": "DeleteIndexEndpoint deletes an IndexEndpoint.", - "file": "IndexEndpointClient/DeleteIndexEndpoint/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_ListFeatureGroups_sync", + "title": "aiplatform ListFeatureGroups Sample", + "description": "ListFeatureGroups lists FeatureGroups in a given project and location.", + "file": "FeatureRegistryClient/ListFeatureGroups/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeleteIndexEndpoint", + "shortName": "ListFeatureGroups", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.ListFeatureGroups", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteIndexEndpointRequest", + "type": "aiplatformpb.ListFeatureGroupsRequest", "name": "req" }, { @@ -4211,17 +4210,17 @@ "name": "opts" } ], - "resultType": "DeleteIndexEndpointOperation", + "resultType": "FeatureGroupIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "DeleteIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", + "shortName": "ListFeatureGroups", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatureGroups", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4229,27 +4228,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeleteOperation_sync", - "title": "aiplatform DeleteOperation Sample", - "description": "DeleteOperation is a utility method from google.longrunning.Operations.", - "file": "IndexEndpointClient/DeleteOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_ListFeatures_sync", + "title": "aiplatform ListFeatures Sample", + "description": "ListFeatures lists Features in a given FeatureGroup.", + "file": "FeatureRegistryClient/ListFeatures/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteOperation", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeleteOperation", + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.ListFeatures", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.DeleteOperationRequest", + "type": "aiplatformpb.ListFeaturesRequest", "name": "req" }, { @@ -4257,16 +4256,17 @@ "name": "opts" } ], + "resultType": "FeatureIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "DeleteOperation", - "fullName": "google.longrunning.Operations.DeleteOperation", + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.ListFeatures", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4274,27 +4274,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeployIndex_sync", - "title": "aiplatform DeployIndex Sample", - "description": "DeployIndex deploys an Index into this IndexEndpoint, creating a DeployedIndex within\nit.\nOnly non-empty Indexes can be deployed.", - "file": "IndexEndpointClient/DeployIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "FeatureRegistryClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeployIndex", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeployIndexRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -4302,17 +4302,17 @@ "name": "opts" } ], - "resultType": "DeployIndexOperation", + "resultType": "LocationIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "DeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -4320,27 +4320,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetIamPolicy_sync", - "title": "aiplatform GetIamPolicy Sample", - "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", - "file": "IndexEndpointClient/GetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "FeatureRegistryClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetIamPolicy", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.GetIamPolicyRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -4348,17 +4348,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "OperationIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "GetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -4366,27 +4366,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetIndexEndpoint_sync", - "title": "aiplatform GetIndexEndpoint Sample", - "description": "GetIndexEndpoint gets an IndexEndpoint.", - "file": "IndexEndpointClient/GetIndexEndpoint/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "FeatureRegistryClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetIndexEndpoint", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.SetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetIndexEndpointRequest", + "type": "iampb.SetIamPolicyRequest", "name": "req" }, { @@ -4394,17 +4394,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.IndexEndpoint", + "resultType": "*iampb.Policy", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "GetIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -4418,21 +4418,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetLocation_sync", - "title": "aiplatform GetLocation Sample", - "description": "GetLocation gets information about a location.", - "file": "IndexEndpointClient/GetLocation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "FeatureRegistryClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { - "shortName": "GetLocation", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetLocation", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.TestIamPermissions", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.GetLocationRequest", + "type": "iampb.TestIamPermissionsRequest", "name": "req" }, { @@ -4440,17 +4440,17 @@ "name": "opts" } ], - "resultType": "*locationpb.Location", + "resultType": "*iampb.TestIamPermissionsResponse", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "GetLocation", - "fullName": "google.cloud.location.Locations.GetLocation", + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -4464,21 +4464,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetOperation_sync", - "title": "aiplatform GetOperation Sample", - "description": "GetOperation is a utility method from google.longrunning.Operations.", - "file": "IndexEndpointClient/GetOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_UpdateFeature_sync", + "title": "aiplatform UpdateFeature Sample", + "description": "UpdateFeature updates the parameters of a single Feature.", + "file": "FeatureRegistryClient/UpdateFeature/main.go", "language": "GO", "clientMethod": { - "shortName": "GetOperation", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetOperation", + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.UpdateFeature", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.GetOperationRequest", + "type": "aiplatformpb.UpdateFeatureRequest", "name": "req" }, { @@ -4486,17 +4486,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "UpdateFeatureOperation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "GetOperation", - "fullName": "google.longrunning.Operations.GetOperation", + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeature", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4504,27 +4504,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListIndexEndpoints_sync", - "title": "aiplatform ListIndexEndpoints Sample", - "description": "ListIndexEndpoints lists IndexEndpoints in a Location.", - "file": "IndexEndpointClient/ListIndexEndpoints/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_UpdateFeatureGroup_sync", + "title": "aiplatform UpdateFeatureGroup Sample", + "description": "UpdateFeatureGroup updates the parameters of a single FeatureGroup.", + "file": "FeatureRegistryClient/UpdateFeatureGroup/main.go", "language": "GO", "clientMethod": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListIndexEndpoints", + "shortName": "UpdateFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.UpdateFeatureGroup", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListIndexEndpointsRequest", + "type": "aiplatformpb.UpdateFeatureGroupRequest", "name": "req" }, { @@ -4532,17 +4532,17 @@ "name": "opts" } ], - "resultType": "IndexEndpointIterator", + "resultType": "UpdateFeatureGroupOperation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "ListIndexEndpoints", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", + "shortName": "UpdateFeatureGroup", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService.UpdateFeatureGroup", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "FeatureRegistryService", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryService" } } }, @@ -4550,27 +4550,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListLocations_sync", - "title": "aiplatform ListLocations Sample", - "description": "ListLocations lists information about the supported locations for this service.", - "file": "IndexEndpointClient/ListLocations/main.go", + "regionTag": "aiplatform_v1_generated_FeatureRegistryService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "FeatureRegistryClient/WaitOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListLocations", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListLocations", + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient.WaitOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.ListLocationsRequest", + "type": "longrunningpb.WaitOperationRequest", "name": "req" }, { @@ -4578,17 +4578,17 @@ "name": "opts" } ], - "resultType": "LocationIterator", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeatureRegistryClient", + "fullName": "google.cloud.aiplatform.v1.FeatureRegistryClient" }, "method": { - "shortName": "ListLocations", - "fullName": "google.cloud.location.Locations.ListLocations", + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -4596,27 +4596,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListOperations_sync", - "title": "aiplatform ListOperations Sample", - "description": "ListOperations is a utility method from google.longrunning.Operations.", - "file": "IndexEndpointClient/ListOperations/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreOnlineServingClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListOperations", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListOperations", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.ListOperationsRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -4624,14 +4624,13 @@ "name": "opts" } ], - "resultType": "OperationIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "ListOperations", - "fullName": "google.longrunning.Operations.ListOperations", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -4642,27 +4641,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_MutateDeployedIndex_sync", - "title": "aiplatform MutateDeployedIndex Sample", - "description": "MutateDeployedIndex update an existing DeployedIndex under an IndexEndpoint.", - "file": "IndexEndpointClient/MutateDeployedIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreOnlineServingClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.MutateDeployedIndex", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.MutateDeployedIndexRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -4670,17 +4669,16 @@ "name": "opts" } ], - "resultType": "MutateDeployedIndexOperation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "MutateDeployedIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -4688,27 +4686,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_SetIamPolicy_sync", - "title": "aiplatform SetIamPolicy Sample", - "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", - "file": "IndexEndpointClient/SetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "FeaturestoreOnlineServingClient/GetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.SetIamPolicy", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.SetIamPolicyRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -4718,12 +4716,12 @@ ], "resultType": "*iampb.Policy", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "SetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { "shortName": "IAMPolicy", "fullName": "google.iam.v1.IAMPolicy" @@ -4740,21 +4738,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_TestIamPermissions_sync", - "title": "aiplatform TestIamPermissions Sample", - "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", - "file": "IndexEndpointClient/TestIamPermissions/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "FeaturestoreOnlineServingClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.TestIamPermissions", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.TestIamPermissionsRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -4762,17 +4760,17 @@ "name": "opts" } ], - "resultType": "*iampb.TestIamPermissionsResponse", + "resultType": "*locationpb.Location", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "TestIamPermissions", - "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -4786,21 +4784,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_UndeployIndex_sync", - "title": "aiplatform UndeployIndex Sample", - "description": "UndeployIndex undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it,\nand freeing all resources it's using.", - "file": "IndexEndpointClient/UndeployIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreOnlineServingClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.UndeployIndex", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UndeployIndexRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -4808,17 +4806,17 @@ "name": "opts" } ], - "resultType": "UndeployIndexOperation", + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "UndeployIndex", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -4826,27 +4824,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_UpdateIndexEndpoint_sync", - "title": "aiplatform UpdateIndexEndpoint Sample", - "description": "UpdateIndexEndpoint updates an IndexEndpoint.", - "file": "IndexEndpointClient/UpdateIndexEndpoint/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "FeaturestoreOnlineServingClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.UpdateIndexEndpoint", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpdateIndexEndpointRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -4854,17 +4852,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.IndexEndpoint", + "resultType": "LocationIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "UpdateIndexEndpoint", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "IndexEndpointService", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -4872,27 +4870,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexEndpointService_WaitOperation_sync", - "title": "aiplatform WaitOperation Sample", - "description": "WaitOperation is a utility method from google.longrunning.Operations.", - "file": "IndexEndpointClient/WaitOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreOnlineServingClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "WaitOperation", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.WaitOperation", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.WaitOperationRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -4900,15 +4898,15 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "OperationIterator", "client": { - "shortName": "IndexEndpointClient", - "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "WaitOperation", - "fullName": "google.longrunning.Operations.WaitOperation", - "service": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" } @@ -4918,27 +4916,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_CancelOperation_sync", - "title": "aiplatform CancelOperation Sample", - "description": "CancelOperation is a utility method from google.longrunning.Operations.", - "file": "IndexClient/CancelOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_ReadFeatureValues_sync", + "title": "aiplatform ReadFeatureValues Sample", + "description": "ReadFeatureValues reads Feature values of a specific entity of an EntityType. For reading\nfeature values of multiple entities of an EntityType, please use\nStreamingReadFeatureValues.", + "file": "FeaturestoreOnlineServingClient/ReadFeatureValues/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelOperation", - "fullName": "google.cloud.aiplatform.v1.IndexClient.CancelOperation", + "shortName": "ReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.ReadFeatureValues", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.CancelOperationRequest", + "type": "aiplatformpb.ReadFeatureValuesRequest", "name": "req" }, { @@ -4946,16 +4944,17 @@ "name": "opts" } ], + "resultType": "*aiplatformpb.ReadFeatureValuesResponse", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "CancelOperation", - "fullName": "google.longrunning.Operations.CancelOperation", + "shortName": "ReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.ReadFeatureValues", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "FeaturestoreOnlineServingService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" } } }, @@ -4963,27 +4962,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_CreateIndex_sync", - "title": "aiplatform CreateIndex Sample", - "description": "CreateIndex creates an Index.", - "file": "IndexClient/CreateIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "FeaturestoreOnlineServingClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexClient.CreateIndex", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.SetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateIndexRequest", + "type": "iampb.SetIamPolicyRequest", "name": "req" }, { @@ -4991,17 +4990,17 @@ "name": "opts" } ], - "resultType": "CreateIndexOperation", + "resultType": "*iampb.Policy", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "CreateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -5009,27 +5008,27 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_DeleteIndex_sync", - "title": "aiplatform DeleteIndex Sample", - "description": "DeleteIndex deletes an Index.\nAn Index can only be deleted when all its\n[DeployedIndexes][google.cloud.aiplatform.v1.Index.deployed_indexes] had\nbeen undeployed.", - "file": "IndexClient/DeleteIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "FeaturestoreOnlineServingClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1.IndexClient.DeleteIndex", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.TestIamPermissions", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteIndexRequest", + "type": "iampb.TestIamPermissionsRequest", "name": "req" }, { @@ -5037,17 +5036,17 @@ "name": "opts" } ], - "resultType": "DeleteIndexOperation", + "resultType": "*iampb.TestIamPermissionsResponse", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "DeleteIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -5055,27 +5054,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_DeleteOperation_sync", - "title": "aiplatform DeleteOperation Sample", - "description": "DeleteOperation is a utility method from google.longrunning.Operations.", - "file": "IndexClient/DeleteOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreOnlineServingClient/WaitOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteOperation", - "fullName": "google.cloud.aiplatform.v1.IndexClient.DeleteOperation", + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.WaitOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.DeleteOperationRequest", + "type": "longrunningpb.WaitOperationRequest", "name": "req" }, { @@ -5083,13 +5082,14 @@ "name": "opts" } ], + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "DeleteOperation", - "fullName": "google.longrunning.Operations.DeleteOperation", + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -5100,27 +5100,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_GetIamPolicy_sync", - "title": "aiplatform GetIamPolicy Sample", - "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", - "file": "IndexClient/GetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreOnlineServingService_WriteFeatureValues_sync", + "title": "aiplatform WriteFeatureValues Sample", + "description": "WriteFeatureValues writes Feature values of one or more entities of an EntityType.\n\nThe Feature values are merged into existing entities if any. The Feature\nvalues to be written must have timestamp within the online storage\nretention.", + "file": "FeaturestoreOnlineServingClient/WriteFeatureValues/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.IndexClient.GetIamPolicy", + "shortName": "WriteFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient.WriteFeatureValues", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.GetIamPolicyRequest", + "type": "aiplatformpb.WriteFeatureValuesRequest", "name": "req" }, { @@ -5128,17 +5128,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "*aiplatformpb.WriteFeatureValuesResponse", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreOnlineServingClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingClient" }, "method": { - "shortName": "GetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "shortName": "WriteFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService.WriteFeatureValues", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "FeaturestoreOnlineServingService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreOnlineServingService" } } }, @@ -5152,21 +5152,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_GetIndex_sync", - "title": "aiplatform GetIndex Sample", - "description": "GetIndex gets an Index.", - "file": "IndexClient/GetIndex/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchCreateFeatures_sync", + "title": "aiplatform BatchCreateFeatures Sample", + "description": "BatchCreateFeatures creates a batch of Features in a given EntityType.", + "file": "FeaturestoreClient/BatchCreateFeatures/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1.IndexClient.GetIndex", + "shortName": "BatchCreateFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.BatchCreateFeatures", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetIndexRequest", + "type": "aiplatformpb.BatchCreateFeaturesRequest", "name": "req" }, { @@ -5174,17 +5174,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.Index", + "resultType": "BatchCreateFeaturesOperation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" }, "method": { - "shortName": "GetIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", + "shortName": "BatchCreateFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchCreateFeatures", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" } } }, @@ -5192,27 +5192,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_GetLocation_sync", - "title": "aiplatform GetLocation Sample", - "description": "GetLocation gets information about a location.", - "file": "IndexClient/GetLocation/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreService_BatchReadFeatureValues_sync", + "title": "aiplatform BatchReadFeatureValues Sample", + "description": "BatchReadFeatureValues batch reads Feature values from a Featurestore.\n\nThis API enables batch reading Feature values, where each read\ninstance in the batch may read Feature values of entities from one or\nmore EntityTypes. Point-in-time correctness is guaranteed for Feature\nvalues of each read instance as of each instance's read timestamp.", + "file": "FeaturestoreClient/BatchReadFeatureValues/main.go", "language": "GO", "clientMethod": { - "shortName": "GetLocation", - "fullName": "google.cloud.aiplatform.v1.IndexClient.GetLocation", + "shortName": "BatchReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.BatchReadFeatureValues", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.GetLocationRequest", + "type": "aiplatformpb.BatchReadFeatureValuesRequest", "name": "req" }, { @@ -5220,17 +5220,17 @@ "name": "opts" } ], - "resultType": "*locationpb.Location", + "resultType": "BatchReadFeatureValuesOperation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" }, "method": { - "shortName": "GetLocation", - "fullName": "google.cloud.location.Locations.GetLocation", + "shortName": "BatchReadFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.BatchReadFeatureValues", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" } } }, @@ -5238,27 +5238,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_GetOperation_sync", - "title": "aiplatform GetOperation Sample", - "description": "GetOperation is a utility method from google.longrunning.Operations.", - "file": "IndexClient/GetOperation/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "GetOperation", - "fullName": "google.cloud.aiplatform.v1.IndexClient.GetOperation", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.GetOperationRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -5266,14 +5266,13 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" }, "method": { - "shortName": "GetOperation", - "fullName": "google.longrunning.Operations.GetOperation", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -5284,27 +5283,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_ListIndexes_sync", - "title": "aiplatform ListIndexes Sample", - "description": "ListIndexes lists Indexes in a Location.", - "file": "IndexClient/ListIndexes/main.go", + "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateEntityType_sync", + "title": "aiplatform CreateEntityType Sample", + "description": "CreateEntityType creates a new EntityType in a given Featurestore.", + "file": "FeaturestoreClient/CreateEntityType/main.go", "language": "GO", "clientMethod": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1.IndexClient.ListIndexes", + "shortName": "CreateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateEntityType", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListIndexesRequest", + "type": "aiplatformpb.CreateEntityTypeRequest", "name": "req" }, { @@ -5312,14 +5311,2815 @@ "name": "opts" } ], - "resultType": "IndexIterator", + "resultType": "CreateEntityTypeOperation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" }, "method": { - "shortName": "ListIndexes", - "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", + "shortName": "CreateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateEntityType", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeature_sync", + "title": "aiplatform CreateFeature Sample", + "description": "CreateFeature creates a new Feature in a given EntityType.", + "file": "FeaturestoreClient/CreateFeature/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateFeature", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CreateFeatureRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateFeatureOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "CreateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeature", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_CreateFeaturestore_sync", + "title": "aiplatform CreateFeaturestore Sample", + "description": "CreateFeaturestore creates a new Featurestore in a given project and location.", + "file": "FeaturestoreClient/CreateFeaturestore/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.CreateFeaturestore", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CreateFeaturestoreRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateFeaturestoreOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "CreateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.CreateFeaturestore", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteEntityType_sync", + "title": "aiplatform DeleteEntityType Sample", + "description": "DeleteEntityType deletes a single EntityType. The EntityType must not have any Features\nor `force` must be set to true for the request to succeed.", + "file": "FeaturestoreClient/DeleteEntityType/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteEntityType", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteEntityTypeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteEntityTypeOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "DeleteEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteEntityType", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeature_sync", + "title": "aiplatform DeleteFeature Sample", + "description": "DeleteFeature deletes a single Feature.", + "file": "FeaturestoreClient/DeleteFeature/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeature", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteFeatureRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteFeatureOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "DeleteFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeature", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeatureValues_sync", + "title": "aiplatform DeleteFeatureValues Sample", + "description": "DeleteFeatureValues delete Feature values from Featurestore.\n\nThe progress of the deletion is tracked by the returned operation. The\ndeleted feature values are guaranteed to be invisible to subsequent read\noperations after the operation is marked as successfully done.\n\nIf a delete feature values operation fails, the feature values\nreturned from reads and exports may be inconsistent. If consistency is\nrequired, the caller must retry the same delete request again and wait till\nthe new operation returned is marked as successfully done.", + "file": "FeaturestoreClient/DeleteFeatureValues/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeatureValues", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteFeatureValuesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteFeatureValuesOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "DeleteFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeatureValues", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteFeaturestore_sync", + "title": "aiplatform DeleteFeaturestore Sample", + "description": "DeleteFeaturestore deletes a single Featurestore. The Featurestore must not contain any\nEntityTypes or `force` must be set to true for the request to succeed.", + "file": "FeaturestoreClient/DeleteFeaturestore/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteFeaturestore", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteFeaturestoreRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteFeaturestoreOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "DeleteFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.DeleteFeaturestore", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ExportFeatureValues_sync", + "title": "aiplatform ExportFeatureValues Sample", + "description": "ExportFeatureValues exports Feature values from all the entities of a target EntityType.", + "file": "FeaturestoreClient/ExportFeatureValues/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ExportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ExportFeatureValues", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ExportFeatureValuesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ExportFeatureValuesOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ExportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ExportFeatureValues", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetEntityType_sync", + "title": "aiplatform GetEntityType Sample", + "description": "GetEntityType gets details of a single EntityType.", + "file": "FeaturestoreClient/GetEntityType/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetEntityType", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.GetEntityTypeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.EntityType", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetEntityType", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeature_sync", + "title": "aiplatform GetFeature Sample", + "description": "GetFeature gets details of a single Feature.", + "file": "FeaturestoreClient/GetFeature/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetFeature", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.GetFeatureRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.Feature", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeature", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetFeaturestore_sync", + "title": "aiplatform GetFeaturestore Sample", + "description": "GetFeaturestore gets details of a single Featurestore.", + "file": "FeaturestoreClient/GetFeaturestore/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetFeaturestore", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.GetFeaturestoreRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.Featurestore", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.GetFeaturestore", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "FeaturestoreClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "FeaturestoreClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ImportFeatureValues_sync", + "title": "aiplatform ImportFeatureValues Sample", + "description": "ImportFeatureValues imports Feature values into the Featurestore from a source storage.\n\nThe progress of the import is tracked by the returned operation. The\nimported features are guaranteed to be visible to subsequent read\noperations after the operation is marked as successfully done.\n\nIf an import operation fails, the Feature values returned from\nreads and exports may be inconsistent. If consistency is\nrequired, the caller must retry the same import request again and wait till\nthe new operation returned is marked as successfully done.\n\nThere are also scenarios where the caller can cause inconsistency.\n\n- Source data for import contains multiple distinct Feature values for\nthe same entity ID and timestamp.\n- Source is modified during an import. This includes adding, updating, or\nremoving source data and/or metadata. Examples of updating metadata\ninclude but are not limited to changing storage location, storage class,\nor retention policy.\n- Online serving cluster is under-provisioned.", + "file": "FeaturestoreClient/ImportFeatureValues/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ImportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ImportFeatureValues", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ImportFeatureValuesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ImportFeatureValuesOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ImportFeatureValues", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ImportFeatureValues", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListEntityTypes_sync", + "title": "aiplatform ListEntityTypes Sample", + "description": "ListEntityTypes lists EntityTypes in a given Featurestore.", + "file": "FeaturestoreClient/ListEntityTypes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListEntityTypes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ListEntityTypesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "EntityTypeIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ListEntityTypes", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListEntityTypes", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeatures_sync", + "title": "aiplatform ListFeatures Sample", + "description": "ListFeatures lists Features in a given EntityType.", + "file": "FeaturestoreClient/ListFeatures/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListFeatures", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ListFeaturesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "FeatureIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ListFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeatures", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListFeaturestores_sync", + "title": "aiplatform ListFeaturestores Sample", + "description": "ListFeaturestores lists Featurestores in a given project and location.", + "file": "FeaturestoreClient/ListFeaturestores/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListFeaturestores", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListFeaturestores", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ListFeaturestoresRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "FeaturestoreIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ListFeaturestores", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.ListFeaturestores", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "FeaturestoreClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_SearchFeatures_sync", + "title": "aiplatform SearchFeatures Sample", + "description": "SearchFeatures searches Features matching a query in a given project.", + "file": "FeaturestoreClient/SearchFeatures/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SearchFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.SearchFeatures", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.SearchFeaturesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "FeatureIterator", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "SearchFeatures", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.SearchFeatures", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "FeaturestoreClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "FeaturestoreClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateEntityType_sync", + "title": "aiplatform UpdateEntityType Sample", + "description": "UpdateEntityType updates the parameters of a single EntityType.", + "file": "FeaturestoreClient/UpdateEntityType/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateEntityType", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpdateEntityTypeRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.EntityType", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "UpdateEntityType", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateEntityType", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeature_sync", + "title": "aiplatform UpdateFeature Sample", + "description": "UpdateFeature updates the parameters of a single Feature.", + "file": "FeaturestoreClient/UpdateFeature/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateFeature", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpdateFeatureRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.Feature", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "UpdateFeature", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeature", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_UpdateFeaturestore_sync", + "title": "aiplatform UpdateFeaturestore Sample", + "description": "UpdateFeaturestore updates the parameters of a single Featurestore.", + "file": "FeaturestoreClient/UpdateFeaturestore/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.UpdateFeaturestore", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpdateFeaturestoreRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateFeaturestoreOperation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "UpdateFeaturestore", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService.UpdateFeaturestore", + "service": { + "shortName": "FeaturestoreService", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_FeaturestoreService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "FeaturestoreClient/WaitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient.WaitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.WaitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "FeaturestoreClient", + "fullName": "google.cloud.aiplatform.v1.FeaturestoreClient" + }, + "method": { + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "IndexEndpointClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_CreateIndexEndpoint_sync", + "title": "aiplatform CreateIndexEndpoint Sample", + "description": "CreateIndexEndpoint creates an IndexEndpoint.", + "file": "IndexEndpointClient/CreateIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.CreateIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CreateIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateIndexEndpointOperation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.CreateIndexEndpoint", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeleteIndexEndpoint_sync", + "title": "aiplatform DeleteIndexEndpoint Sample", + "description": "DeleteIndexEndpoint deletes an IndexEndpoint.", + "file": "IndexEndpointClient/DeleteIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeleteIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteIndexEndpointOperation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeleteIndexEndpoint", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "IndexEndpointClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_DeployIndex_sync", + "title": "aiplatform DeployIndex Sample", + "description": "DeployIndex deploys an Index into this IndexEndpoint, creating a DeployedIndex within\nit.\nOnly non-empty Indexes can be deployed.", + "file": "IndexEndpointClient/DeployIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.DeployIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeployIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeployIndexOperation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "DeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.DeployIndex", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "IndexEndpointClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetIndexEndpoint_sync", + "title": "aiplatform GetIndexEndpoint Sample", + "description": "GetIndexEndpoint gets an IndexEndpoint.", + "file": "IndexEndpointClient/GetIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.GetIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.IndexEndpoint", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.GetIndexEndpoint", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "IndexEndpointClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "IndexEndpointClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListIndexEndpoints_sync", + "title": "aiplatform ListIndexEndpoints Sample", + "description": "ListIndexEndpoints lists IndexEndpoints in a Location.", + "file": "IndexEndpointClient/ListIndexEndpoints/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListIndexEndpoints", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ListIndexEndpointsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexEndpointIterator", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.ListIndexEndpoints", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "IndexEndpointClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "IndexEndpointClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_MutateDeployedIndex_sync", + "title": "aiplatform MutateDeployedIndex Sample", + "description": "MutateDeployedIndex update an existing DeployedIndex under an IndexEndpoint.", + "file": "IndexEndpointClient/MutateDeployedIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "MutateDeployedIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.MutateDeployedIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.MutateDeployedIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "MutateDeployedIndexOperation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "MutateDeployedIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.MutateDeployedIndex", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "IndexEndpointClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "IndexEndpointClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_UndeployIndex_sync", + "title": "aiplatform UndeployIndex Sample", + "description": "UndeployIndex undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it,\nand freeing all resources it's using.", + "file": "IndexEndpointClient/UndeployIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UndeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.UndeployIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UndeployIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UndeployIndexOperation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "UndeployIndex", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UndeployIndex", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_UpdateIndexEndpoint_sync", + "title": "aiplatform UpdateIndexEndpoint Sample", + "description": "UpdateIndexEndpoint updates an IndexEndpoint.", + "file": "IndexEndpointClient/UpdateIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.UpdateIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpdateIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.IndexEndpoint", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService.UpdateIndexEndpoint", + "service": { + "shortName": "IndexEndpointService", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexEndpointService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "IndexEndpointClient/WaitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient.WaitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.WaitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "IndexEndpointClient", + "fullName": "google.cloud.aiplatform.v1.IndexEndpointClient" + }, + "method": { + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "IndexClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.IndexClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_CreateIndex_sync", + "title": "aiplatform CreateIndex Sample", + "description": "CreateIndex creates an Index.", + "file": "IndexClient/CreateIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexClient.CreateIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CreateIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateIndexOperation", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "CreateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.CreateIndex", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_DeleteIndex_sync", + "title": "aiplatform DeleteIndex Sample", + "description": "DeleteIndex deletes an Index.\nAn Index can only be deleted when all its\n[DeployedIndexes][google.cloud.aiplatform.v1.Index.deployed_indexes] had\nbeen undeployed.", + "file": "IndexClient/DeleteIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteIndex", + "fullName": "google.cloud.aiplatform.v1.IndexClient.DeleteIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.DeleteIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteIndexOperation", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "DeleteIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.DeleteIndex", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "IndexClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.IndexClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "IndexClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.IndexClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_GetIndex_sync", + "title": "aiplatform GetIndex Sample", + "description": "GetIndex gets an Index.", + "file": "IndexClient/GetIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIndex", + "fullName": "google.cloud.aiplatform.v1.IndexClient.GetIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.GetIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.Index", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "GetIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.GetIndex", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "IndexClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.IndexClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "IndexClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.IndexClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_ListIndexes_sync", + "title": "aiplatform ListIndexes Sample", + "description": "ListIndexes lists Indexes in a Location.", + "file": "IndexClient/ListIndexes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListIndexes", + "fullName": "google.cloud.aiplatform.v1.IndexClient.ListIndexes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ListIndexesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexIterator", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "ListIndexes", + "fullName": "google.cloud.aiplatform.v1.IndexService.ListIndexes", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "IndexClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.IndexClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "IndexClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.IndexClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_RemoveDatapoints_sync", + "title": "aiplatform RemoveDatapoints Sample", + "description": "RemoveDatapoints remove Datapoints from an Index.", + "file": "IndexClient/RemoveDatapoints/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RemoveDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexClient.RemoveDatapoints", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.RemoveDatapointsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.RemoveDatapointsResponse", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "RemoveDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexService.RemoveDatapoints", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "IndexClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.IndexClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "IndexClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.IndexClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_UpdateIndex_sync", + "title": "aiplatform UpdateIndex Sample", + "description": "UpdateIndex updates an Index.", + "file": "IndexClient/UpdateIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexClient.UpdateIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpdateIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateIndexOperation", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "UpdateIndex", + "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", + "service": { + "shortName": "IndexService", + "fullName": "google.cloud.aiplatform.v1.IndexService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_UpsertDatapoints_sync", + "title": "aiplatform UpsertDatapoints Sample", + "description": "UpsertDatapoints add/update Datapoints into an Index.", + "file": "IndexClient/UpsertDatapoints/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpsertDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexClient.UpsertDatapoints", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.UpsertDatapointsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.UpsertDatapointsResponse", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "UpsertDatapoints", + "fullName": "google.cloud.aiplatform.v1.IndexService.UpsertDatapoints", "service": { "shortName": "IndexService", "fullName": "google.cloud.aiplatform.v1.IndexService" @@ -5330,27 +8130,253 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_IndexService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "IndexClient/WaitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.IndexClient.WaitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.WaitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "IndexClient", + "fullName": "google.cloud.aiplatform.v1.IndexClient" + }, + "method": { + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_JobService_CancelBatchPredictionJob_sync", + "title": "aiplatform CancelBatchPredictionJob Sample", + "description": "CancelBatchPredictionJob cancels a BatchPredictionJob.\n\nStarts asynchronous cancellation on the BatchPredictionJob. The server\nmakes the best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On a successful cancellation,\nthe BatchPredictionJob is not deleted;instead its\n[BatchPredictionJob.state][google.cloud.aiplatform.v1.BatchPredictionJob.state]\nis set to `CANCELLED`. Any files already outputted by the job are not\ndeleted.", + "file": "JobClient/CancelBatchPredictionJob/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelBatchPredictionJob", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CancelBatchPredictionJobRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" + }, + "method": { + "shortName": "CancelBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", + "service": { + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_JobService_CancelCustomJob_sync", + "title": "aiplatform CancelCustomJob Sample", + "description": "CancelCustomJob cancels a CustomJob.\nStarts asynchronous cancellation on the CustomJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetCustomJob][google.cloud.aiplatform.v1.JobService.GetCustomJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe CustomJob is not deleted; instead it becomes a job with\na [CustomJob.error][google.cloud.aiplatform.v1.CustomJob.error] value with\na [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to\n`Code.CANCELLED`, and\n[CustomJob.state][google.cloud.aiplatform.v1.CustomJob.state] is set to\n`CANCELLED`.", + "file": "JobClient/CancelCustomJob/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelCustomJob", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CancelCustomJobRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" + }, + "method": { + "shortName": "CancelCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", + "service": { + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_JobService_CancelDataLabelingJob_sync", + "title": "aiplatform CancelDataLabelingJob Sample", + "description": "CancelDataLabelingJob cancels a DataLabelingJob. Success of cancellation is not guaranteed.", + "file": "JobClient/CancelDataLabelingJob/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelDataLabelingJob", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CancelDataLabelingJobRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" + }, + "method": { + "shortName": "CancelDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", + "service": { + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_JobService_CancelHyperparameterTuningJob_sync", + "title": "aiplatform CancelHyperparameterTuningJob Sample", + "description": "CancelHyperparameterTuningJob cancels a HyperparameterTuningJob.\nStarts asynchronous cancellation on the HyperparameterTuningJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe HyperparameterTuningJob is not deleted; instead it becomes a job with\na\n[HyperparameterTuningJob.error][google.cloud.aiplatform.v1.HyperparameterTuningJob.error]\nvalue with a [google.rpc.Status.code][google.rpc.Status.code] of 1,\ncorresponding to `Code.CANCELLED`, and\n[HyperparameterTuningJob.state][google.cloud.aiplatform.v1.HyperparameterTuningJob.state]\nis set to `CANCELLED`.", + "file": "JobClient/CancelHyperparameterTuningJob/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelHyperparameterTuningJob", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CancelHyperparameterTuningJobRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" + }, + "method": { + "shortName": "CancelHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", + "service": { + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_ListLocations_sync", - "title": "aiplatform ListLocations Sample", - "description": "ListLocations lists information about the supported locations for this service.", - "file": "IndexClient/ListLocations/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CancelNasJob_sync", + "title": "aiplatform CancelNasJob Sample", + "description": "CancelNasJob cancels a NasJob.\nStarts asynchronous cancellation on the NasJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetNasJob][google.cloud.aiplatform.v1.JobService.GetNasJob] or\nother methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe NasJob is not deleted; instead it becomes a job with\na [NasJob.error][google.cloud.aiplatform.v1.NasJob.error] value with a\n[google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to\n`Code.CANCELLED`, and\n[NasJob.state][google.cloud.aiplatform.v1.NasJob.state] is set to\n`CANCELLED`.", + "file": "JobClient/CancelNasJob/main.go", "language": "GO", "clientMethod": { - "shortName": "ListLocations", - "fullName": "google.cloud.aiplatform.v1.IndexClient.ListLocations", + "shortName": "CancelNasJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelNasJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.ListLocationsRequest", + "type": "aiplatformpb.CancelNasJobRequest", "name": "req" }, { @@ -5358,17 +8384,16 @@ "name": "opts" } ], - "resultType": "LocationIterator", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "ListLocations", - "fullName": "google.cloud.location.Locations.ListLocations", + "shortName": "CancelNasJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CancelNasJob", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5376,27 +8401,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_ListOperations_sync", - "title": "aiplatform ListOperations Sample", - "description": "ListOperations is a utility method from google.longrunning.Operations.", - "file": "IndexClient/ListOperations/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "JobClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListOperations", - "fullName": "google.cloud.aiplatform.v1.IndexClient.ListOperations", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.JobClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.ListOperationsRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -5404,14 +8429,13 @@ "name": "opts" } ], - "resultType": "OperationIterator", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "ListOperations", - "fullName": "google.longrunning.Operations.ListOperations", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -5422,27 +8446,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_RemoveDatapoints_sync", - "title": "aiplatform RemoveDatapoints Sample", - "description": "RemoveDatapoints remove Datapoints from an Index.", - "file": "IndexClient/RemoveDatapoints/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CreateBatchPredictionJob_sync", + "title": "aiplatform CreateBatchPredictionJob Sample", + "description": "CreateBatchPredictionJob creates a BatchPredictionJob. A BatchPredictionJob once created will\nright away be attempted to start.", + "file": "JobClient/CreateBatchPredictionJob/main.go", "language": "GO", "clientMethod": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexClient.RemoveDatapoints", + "shortName": "CreateBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateBatchPredictionJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.RemoveDatapointsRequest", + "type": "aiplatformpb.CreateBatchPredictionJobRequest", "name": "req" }, { @@ -5450,17 +8474,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.RemoveDatapointsResponse", + "resultType": "*aiplatformpb.BatchPredictionJob", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "RemoveDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.RemoveDatapoints", + "shortName": "CreateBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5474,21 +8498,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_SetIamPolicy_sync", - "title": "aiplatform SetIamPolicy Sample", - "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", - "file": "IndexClient/SetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CreateCustomJob_sync", + "title": "aiplatform CreateCustomJob Sample", + "description": "CreateCustomJob creates a CustomJob. A created CustomJob right away\nwill be attempted to be run.", + "file": "JobClient/CreateCustomJob/main.go", "language": "GO", "clientMethod": { - "shortName": "SetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.IndexClient.SetIamPolicy", + "shortName": "CreateCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateCustomJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.SetIamPolicyRequest", + "type": "aiplatformpb.CreateCustomJobRequest", "name": "req" }, { @@ -5496,17 +8520,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "*aiplatformpb.CustomJob", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "SetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "shortName": "CreateCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5520,21 +8544,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_TestIamPermissions_sync", - "title": "aiplatform TestIamPermissions Sample", - "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", - "file": "IndexClient/TestIamPermissions/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CreateDataLabelingJob_sync", + "title": "aiplatform CreateDataLabelingJob Sample", + "description": "CreateDataLabelingJob creates a DataLabelingJob.", + "file": "JobClient/CreateDataLabelingJob/main.go", "language": "GO", "clientMethod": { - "shortName": "TestIamPermissions", - "fullName": "google.cloud.aiplatform.v1.IndexClient.TestIamPermissions", + "shortName": "CreateDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateDataLabelingJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.TestIamPermissionsRequest", + "type": "aiplatformpb.CreateDataLabelingJobRequest", "name": "req" }, { @@ -5542,17 +8566,17 @@ "name": "opts" } ], - "resultType": "*iampb.TestIamPermissionsResponse", + "resultType": "*aiplatformpb.DataLabelingJob", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "TestIamPermissions", - "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "shortName": "CreateDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5566,21 +8590,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_UpdateIndex_sync", - "title": "aiplatform UpdateIndex Sample", - "description": "UpdateIndex updates an Index.", - "file": "IndexClient/UpdateIndex/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CreateHyperparameterTuningJob_sync", + "title": "aiplatform CreateHyperparameterTuningJob Sample", + "description": "CreateHyperparameterTuningJob creates a HyperparameterTuningJob", + "file": "JobClient/CreateHyperparameterTuningJob/main.go", "language": "GO", "clientMethod": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexClient.UpdateIndex", + "shortName": "CreateHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateHyperparameterTuningJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpdateIndexRequest", + "type": "aiplatformpb.CreateHyperparameterTuningJobRequest", "name": "req" }, { @@ -5588,17 +8612,17 @@ "name": "opts" } ], - "resultType": "UpdateIndexOperation", + "resultType": "*aiplatformpb.HyperparameterTuningJob", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "UpdateIndex", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpdateIndex", + "shortName": "CreateHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5606,27 +8630,73 @@ "segments": [ { "start": 18, - "end": 58, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_UpsertDatapoints_sync", - "title": "aiplatform UpsertDatapoints Sample", - "description": "UpsertDatapoints add/update Datapoints into an Index.", - "file": "IndexClient/UpsertDatapoints/main.go", + "regionTag": "aiplatform_v1_generated_JobService_CreateModelDeploymentMonitoringJob_sync", + "title": "aiplatform CreateModelDeploymentMonitoringJob Sample", + "description": "CreateModelDeploymentMonitoringJob creates a ModelDeploymentMonitoringJob. It will run periodically on a\nconfigured interval.", + "file": "JobClient/CreateModelDeploymentMonitoringJob/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateModelDeploymentMonitoringJob", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.CreateModelDeploymentMonitoringJobRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.ModelDeploymentMonitoringJob", + "client": { + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" + }, + "method": { + "shortName": "CreateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", + "service": { + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1_generated_JobService_CreateNasJob_sync", + "title": "aiplatform CreateNasJob Sample", + "description": "CreateNasJob creates a NasJob", + "file": "JobClient/CreateNasJob/main.go", "language": "GO", "clientMethod": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexClient.UpsertDatapoints", + "shortName": "CreateNasJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.CreateNasJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.UpsertDatapointsRequest", + "type": "aiplatformpb.CreateNasJobRequest", "name": "req" }, { @@ -5634,17 +8704,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.UpsertDatapointsResponse", + "resultType": "*aiplatformpb.NasJob", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "UpsertDatapoints", - "fullName": "google.cloud.aiplatform.v1.IndexService.UpsertDatapoints", + "shortName": "CreateNasJob", + "fullName": "google.cloud.aiplatform.v1.JobService.CreateNasJob", "service": { - "shortName": "IndexService", - "fullName": "google.cloud.aiplatform.v1.IndexService" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5658,21 +8728,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_IndexService_WaitOperation_sync", - "title": "aiplatform WaitOperation Sample", - "description": "WaitOperation is a utility method from google.longrunning.Operations.", - "file": "IndexClient/WaitOperation/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteBatchPredictionJob_sync", + "title": "aiplatform DeleteBatchPredictionJob Sample", + "description": "DeleteBatchPredictionJob deletes a BatchPredictionJob. Can only be called on jobs that already\nfinished.", + "file": "JobClient/DeleteBatchPredictionJob/main.go", "language": "GO", "clientMethod": { - "shortName": "WaitOperation", - "fullName": "google.cloud.aiplatform.v1.IndexClient.WaitOperation", + "shortName": "DeleteBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteBatchPredictionJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.WaitOperationRequest", + "type": "aiplatformpb.DeleteBatchPredictionJobRequest", "name": "req" }, { @@ -5680,17 +8750,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "DeleteBatchPredictionJobOperation", "client": { - "shortName": "IndexClient", - "fullName": "google.cloud.aiplatform.v1.IndexClient" + "shortName": "JobClient", + "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "WaitOperation", - "fullName": "google.longrunning.Operations.WaitOperation", + "shortName": "DeleteBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -5698,27 +8768,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelBatchPredictionJob_sync", - "title": "aiplatform CancelBatchPredictionJob Sample", - "description": "CancelBatchPredictionJob cancels a BatchPredictionJob.\n\nStarts asynchronous cancellation on the BatchPredictionJob. The server\nmakes the best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetBatchPredictionJob][google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On a successful cancellation,\nthe BatchPredictionJob is not deleted;instead its\n[BatchPredictionJob.state][google.cloud.aiplatform.v1.BatchPredictionJob.state]\nis set to `CANCELLED`. Any files already outputted by the job are not\ndeleted.", - "file": "JobClient/CancelBatchPredictionJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteCustomJob_sync", + "title": "aiplatform DeleteCustomJob Sample", + "description": "DeleteCustomJob deletes a CustomJob.", + "file": "JobClient/DeleteCustomJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelBatchPredictionJob", + "shortName": "DeleteCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteCustomJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CancelBatchPredictionJobRequest", + "type": "aiplatformpb.DeleteCustomJobRequest", "name": "req" }, { @@ -5726,13 +8796,14 @@ "name": "opts" } ], + "resultType": "DeleteCustomJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelBatchPredictionJob", + "shortName": "DeleteCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -5743,27 +8814,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelCustomJob_sync", - "title": "aiplatform CancelCustomJob Sample", - "description": "CancelCustomJob cancels a CustomJob.\nStarts asynchronous cancellation on the CustomJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetCustomJob][google.cloud.aiplatform.v1.JobService.GetCustomJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe CustomJob is not deleted; instead it becomes a job with\na [CustomJob.error][google.cloud.aiplatform.v1.CustomJob.error] value with\na [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to\n`Code.CANCELLED`, and\n[CustomJob.state][google.cloud.aiplatform.v1.CustomJob.state] is set to\n`CANCELLED`.", - "file": "JobClient/CancelCustomJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteDataLabelingJob_sync", + "title": "aiplatform DeleteDataLabelingJob Sample", + "description": "DeleteDataLabelingJob deletes a DataLabelingJob.", + "file": "JobClient/DeleteDataLabelingJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelCustomJob", + "shortName": "DeleteDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteDataLabelingJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CancelCustomJobRequest", + "type": "aiplatformpb.DeleteDataLabelingJobRequest", "name": "req" }, { @@ -5771,13 +8842,14 @@ "name": "opts" } ], + "resultType": "DeleteDataLabelingJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelCustomJob", + "shortName": "DeleteDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -5788,27 +8860,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelDataLabelingJob_sync", - "title": "aiplatform CancelDataLabelingJob Sample", - "description": "CancelDataLabelingJob cancels a DataLabelingJob. Success of cancellation is not guaranteed.", - "file": "JobClient/CancelDataLabelingJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteHyperparameterTuningJob_sync", + "title": "aiplatform DeleteHyperparameterTuningJob Sample", + "description": "DeleteHyperparameterTuningJob deletes a HyperparameterTuningJob.", + "file": "JobClient/DeleteHyperparameterTuningJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelDataLabelingJob", + "shortName": "DeleteHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteHyperparameterTuningJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CancelDataLabelingJobRequest", + "type": "aiplatformpb.DeleteHyperparameterTuningJobRequest", "name": "req" }, { @@ -5816,13 +8888,14 @@ "name": "opts" } ], + "resultType": "DeleteHyperparameterTuningJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelDataLabelingJob", + "shortName": "DeleteHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -5833,27 +8906,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelHyperparameterTuningJob_sync", - "title": "aiplatform CancelHyperparameterTuningJob Sample", - "description": "CancelHyperparameterTuningJob cancels a HyperparameterTuningJob.\nStarts asynchronous cancellation on the HyperparameterTuningJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetHyperparameterTuningJob][google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob]\nor other methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe HyperparameterTuningJob is not deleted; instead it becomes a job with\na\n[HyperparameterTuningJob.error][google.cloud.aiplatform.v1.HyperparameterTuningJob.error]\nvalue with a [google.rpc.Status.code][google.rpc.Status.code] of 1,\ncorresponding to `Code.CANCELLED`, and\n[HyperparameterTuningJob.state][google.cloud.aiplatform.v1.HyperparameterTuningJob.state]\nis set to `CANCELLED`.", - "file": "JobClient/CancelHyperparameterTuningJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteModelDeploymentMonitoringJob_sync", + "title": "aiplatform DeleteModelDeploymentMonitoringJob Sample", + "description": "DeleteModelDeploymentMonitoringJob deletes a ModelDeploymentMonitoringJob.", + "file": "JobClient/DeleteModelDeploymentMonitoringJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelHyperparameterTuningJob", + "shortName": "DeleteModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteModelDeploymentMonitoringJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CancelHyperparameterTuningJobRequest", + "type": "aiplatformpb.DeleteModelDeploymentMonitoringJobRequest", "name": "req" }, { @@ -5861,13 +8934,14 @@ "name": "opts" } ], + "resultType": "DeleteModelDeploymentMonitoringJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelHyperparameterTuningJob", + "shortName": "DeleteModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -5878,27 +8952,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelNasJob_sync", - "title": "aiplatform CancelNasJob Sample", - "description": "CancelNasJob cancels a NasJob.\nStarts asynchronous cancellation on the NasJob. The server\nmakes a best effort to cancel the job, but success is not\nguaranteed. Clients can use\n[JobService.GetNasJob][google.cloud.aiplatform.v1.JobService.GetNasJob] or\nother methods to check whether the cancellation succeeded or whether the\njob completed despite cancellation. On successful cancellation,\nthe NasJob is not deleted; instead it becomes a job with\na [NasJob.error][google.cloud.aiplatform.v1.NasJob.error] value with a\n[google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to\n`Code.CANCELLED`, and\n[NasJob.state][google.cloud.aiplatform.v1.NasJob.state] is set to\n`CANCELLED`.", - "file": "JobClient/CancelNasJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteNasJob_sync", + "title": "aiplatform DeleteNasJob Sample", + "description": "DeleteNasJob deletes a NasJob.", + "file": "JobClient/DeleteNasJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelNasJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelNasJob", + "shortName": "DeleteNasJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteNasJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CancelNasJobRequest", + "type": "aiplatformpb.DeleteNasJobRequest", "name": "req" }, { @@ -5906,13 +8980,14 @@ "name": "opts" } ], + "resultType": "DeleteNasJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelNasJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CancelNasJob", + "shortName": "DeleteNasJob", + "fullName": "google.cloud.aiplatform.v1.JobService.DeleteNasJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -5923,27 +8998,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 56, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CancelOperation_sync", - "title": "aiplatform CancelOperation Sample", - "description": "CancelOperation is a utility method from google.longrunning.Operations.", - "file": "JobClient/CancelOperation/main.go", + "regionTag": "aiplatform_v1_generated_JobService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "JobClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "CancelOperation", - "fullName": "google.cloud.aiplatform.v1.JobClient.CancelOperation", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.CancelOperationRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -5956,8 +9031,8 @@ "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CancelOperation", - "fullName": "google.longrunning.Operations.CancelOperation", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { "shortName": "Operations", "fullName": "google.longrunning.Operations" @@ -5974,21 +9049,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateBatchPredictionJob_sync", - "title": "aiplatform CreateBatchPredictionJob Sample", - "description": "CreateBatchPredictionJob creates a BatchPredictionJob. A BatchPredictionJob once created will\nright away be attempted to start.", - "file": "JobClient/CreateBatchPredictionJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetBatchPredictionJob_sync", + "title": "aiplatform GetBatchPredictionJob Sample", + "description": "GetBatchPredictionJob gets a BatchPredictionJob", + "file": "JobClient/GetBatchPredictionJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateBatchPredictionJob", + "shortName": "GetBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetBatchPredictionJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateBatchPredictionJobRequest", + "type": "aiplatformpb.GetBatchPredictionJobRequest", "name": "req" }, { @@ -6002,8 +9077,8 @@ "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateBatchPredictionJob", + "shortName": "GetBatchPredictionJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6020,21 +9095,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateCustomJob_sync", - "title": "aiplatform CreateCustomJob Sample", - "description": "CreateCustomJob creates a CustomJob. A created CustomJob right away\nwill be attempted to be run.", - "file": "JobClient/CreateCustomJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetCustomJob_sync", + "title": "aiplatform GetCustomJob Sample", + "description": "GetCustomJob gets a CustomJob.", + "file": "JobClient/GetCustomJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateCustomJob", + "shortName": "GetCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetCustomJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateCustomJobRequest", + "type": "aiplatformpb.GetCustomJobRequest", "name": "req" }, { @@ -6048,8 +9123,8 @@ "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateCustomJob", + "shortName": "GetCustomJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6066,21 +9141,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateDataLabelingJob_sync", - "title": "aiplatform CreateDataLabelingJob Sample", - "description": "CreateDataLabelingJob creates a DataLabelingJob.", - "file": "JobClient/CreateDataLabelingJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetDataLabelingJob_sync", + "title": "aiplatform GetDataLabelingJob Sample", + "description": "GetDataLabelingJob gets a DataLabelingJob.", + "file": "JobClient/GetDataLabelingJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateDataLabelingJob", + "shortName": "GetDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetDataLabelingJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateDataLabelingJobRequest", + "type": "aiplatformpb.GetDataLabelingJobRequest", "name": "req" }, { @@ -6094,8 +9169,8 @@ "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateDataLabelingJob", + "shortName": "GetDataLabelingJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6112,21 +9187,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateHyperparameterTuningJob_sync", - "title": "aiplatform CreateHyperparameterTuningJob Sample", - "description": "CreateHyperparameterTuningJob creates a HyperparameterTuningJob", - "file": "JobClient/CreateHyperparameterTuningJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetHyperparameterTuningJob_sync", + "title": "aiplatform GetHyperparameterTuningJob Sample", + "description": "GetHyperparameterTuningJob gets a HyperparameterTuningJob", + "file": "JobClient/GetHyperparameterTuningJob/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateHyperparameterTuningJob", + "shortName": "GetHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetHyperparameterTuningJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateHyperparameterTuningJobRequest", + "type": "aiplatformpb.GetHyperparameterTuningJobRequest", "name": "req" }, { @@ -6140,8 +9215,8 @@ "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateHyperparameterTuningJob", + "shortName": "GetHyperparameterTuningJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6158,21 +9233,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateModelDeploymentMonitoringJob_sync", - "title": "aiplatform CreateModelDeploymentMonitoringJob Sample", - "description": "CreateModelDeploymentMonitoringJob creates a ModelDeploymentMonitoringJob. It will run periodically on a\nconfigured interval.", - "file": "JobClient/CreateModelDeploymentMonitoringJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "JobClient/GetIamPolicy/main.go", "language": "GO", - "clientMethod": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateModelDeploymentMonitoringJob", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateModelDeploymentMonitoringJobRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -6180,17 +9255,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.ModelDeploymentMonitoringJob", + "resultType": "*iampb.Policy", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateModelDeploymentMonitoringJob", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -6204,21 +9279,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_CreateNasJob_sync", - "title": "aiplatform CreateNasJob Sample", - "description": "CreateNasJob creates a NasJob", - "file": "JobClient/CreateNasJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "JobClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "CreateNasJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.CreateNasJob", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.CreateNasJobRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -6226,17 +9301,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.NasJob", + "resultType": "*locationpb.Location", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "CreateNasJob", - "fullName": "google.cloud.aiplatform.v1.JobService.CreateNasJob", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -6250,21 +9325,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteBatchPredictionJob_sync", - "title": "aiplatform DeleteBatchPredictionJob Sample", - "description": "DeleteBatchPredictionJob deletes a BatchPredictionJob. Can only be called on jobs that already\nfinished.", - "file": "JobClient/DeleteBatchPredictionJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetModelDeploymentMonitoringJob_sync", + "title": "aiplatform GetModelDeploymentMonitoringJob Sample", + "description": "GetModelDeploymentMonitoringJob gets a ModelDeploymentMonitoringJob.", + "file": "JobClient/GetModelDeploymentMonitoringJob/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteBatchPredictionJob", + "shortName": "GetModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetModelDeploymentMonitoringJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteBatchPredictionJobRequest", + "type": "aiplatformpb.GetModelDeploymentMonitoringJobRequest", "name": "req" }, { @@ -6272,14 +9347,14 @@ "name": "opts" } ], - "resultType": "DeleteBatchPredictionJobOperation", + "resultType": "*aiplatformpb.ModelDeploymentMonitoringJob", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteBatchPredictionJob", + "shortName": "GetModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6290,27 +9365,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteCustomJob_sync", - "title": "aiplatform DeleteCustomJob Sample", - "description": "DeleteCustomJob deletes a CustomJob.", - "file": "JobClient/DeleteCustomJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetNasJob_sync", + "title": "aiplatform GetNasJob Sample", + "description": "GetNasJob gets a NasJob", + "file": "JobClient/GetNasJob/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteCustomJob", + "shortName": "GetNasJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetNasJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteCustomJobRequest", + "type": "aiplatformpb.GetNasJobRequest", "name": "req" }, { @@ -6318,14 +9393,14 @@ "name": "opts" } ], - "resultType": "DeleteCustomJobOperation", + "resultType": "*aiplatformpb.NasJob", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteCustomJob", + "shortName": "GetNasJob", + "fullName": "google.cloud.aiplatform.v1.JobService.GetNasJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6336,27 +9411,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteDataLabelingJob_sync", - "title": "aiplatform DeleteDataLabelingJob Sample", - "description": "DeleteDataLabelingJob deletes a DataLabelingJob.", - "file": "JobClient/DeleteDataLabelingJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetNasTrialDetail_sync", + "title": "aiplatform GetNasTrialDetail Sample", + "description": "GetNasTrialDetail gets a NasTrialDetail.", + "file": "JobClient/GetNasTrialDetail/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteDataLabelingJob", + "shortName": "GetNasTrialDetail", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetNasTrialDetail", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteDataLabelingJobRequest", + "type": "aiplatformpb.GetNasTrialDetailRequest", "name": "req" }, { @@ -6364,14 +9439,14 @@ "name": "opts" } ], - "resultType": "DeleteDataLabelingJobOperation", + "resultType": "*aiplatformpb.NasTrialDetail", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteDataLabelingJob", + "shortName": "GetNasTrialDetail", + "fullName": "google.cloud.aiplatform.v1.JobService.GetNasTrialDetail", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6382,27 +9457,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteHyperparameterTuningJob_sync", - "title": "aiplatform DeleteHyperparameterTuningJob Sample", - "description": "DeleteHyperparameterTuningJob deletes a HyperparameterTuningJob.", - "file": "JobClient/DeleteHyperparameterTuningJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "JobClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteHyperparameterTuningJob", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.JobClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteHyperparameterTuningJobRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -6410,17 +9485,17 @@ "name": "opts" } ], - "resultType": "DeleteHyperparameterTuningJobOperation", + "resultType": "*longrunningpb.Operation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteHyperparameterTuningJob", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -6428,27 +9503,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteModelDeploymentMonitoringJob_sync", - "title": "aiplatform DeleteModelDeploymentMonitoringJob Sample", - "description": "DeleteModelDeploymentMonitoringJob deletes a ModelDeploymentMonitoringJob.", - "file": "JobClient/DeleteModelDeploymentMonitoringJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListBatchPredictionJobs_sync", + "title": "aiplatform ListBatchPredictionJobs Sample", + "description": "ListBatchPredictionJobs lists BatchPredictionJobs in a Location.", + "file": "JobClient/ListBatchPredictionJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteModelDeploymentMonitoringJob", + "shortName": "ListBatchPredictionJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListBatchPredictionJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteModelDeploymentMonitoringJobRequest", + "type": "aiplatformpb.ListBatchPredictionJobsRequest", "name": "req" }, { @@ -6456,14 +9531,14 @@ "name": "opts" } ], - "resultType": "DeleteModelDeploymentMonitoringJobOperation", + "resultType": "BatchPredictionJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteModelDeploymentMonitoringJob", + "shortName": "ListBatchPredictionJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6474,27 +9549,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteNasJob_sync", - "title": "aiplatform DeleteNasJob Sample", - "description": "DeleteNasJob deletes a NasJob.", - "file": "JobClient/DeleteNasJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListCustomJobs_sync", + "title": "aiplatform ListCustomJobs Sample", + "description": "ListCustomJobs lists CustomJobs in a Location.", + "file": "JobClient/ListCustomJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteNasJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteNasJob", + "shortName": "ListCustomJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListCustomJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.DeleteNasJobRequest", + "type": "aiplatformpb.ListCustomJobsRequest", "name": "req" }, { @@ -6502,14 +9577,14 @@ "name": "opts" } ], - "resultType": "DeleteNasJobOperation", + "resultType": "CustomJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteNasJob", - "fullName": "google.cloud.aiplatform.v1.JobService.DeleteNasJob", + "shortName": "ListCustomJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6520,27 +9595,27 @@ "segments": [ { "start": 18, - "end": 56, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_DeleteOperation_sync", - "title": "aiplatform DeleteOperation Sample", - "description": "DeleteOperation is a utility method from google.longrunning.Operations.", - "file": "JobClient/DeleteOperation/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListDataLabelingJobs_sync", + "title": "aiplatform ListDataLabelingJobs Sample", + "description": "ListDataLabelingJobs lists DataLabelingJobs in a Location.", + "file": "JobClient/ListDataLabelingJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "DeleteOperation", - "fullName": "google.cloud.aiplatform.v1.JobClient.DeleteOperation", + "shortName": "ListDataLabelingJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListDataLabelingJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.DeleteOperationRequest", + "type": "aiplatformpb.ListDataLabelingJobsRequest", "name": "req" }, { @@ -6548,16 +9623,17 @@ "name": "opts" } ], + "resultType": "DataLabelingJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "DeleteOperation", - "fullName": "google.longrunning.Operations.DeleteOperation", + "shortName": "ListDataLabelingJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -6565,27 +9641,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetBatchPredictionJob_sync", - "title": "aiplatform GetBatchPredictionJob Sample", - "description": "GetBatchPredictionJob gets a BatchPredictionJob", - "file": "JobClient/GetBatchPredictionJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListHyperparameterTuningJobs_sync", + "title": "aiplatform ListHyperparameterTuningJobs Sample", + "description": "ListHyperparameterTuningJobs lists HyperparameterTuningJobs in a Location.", + "file": "JobClient/ListHyperparameterTuningJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetBatchPredictionJob", + "shortName": "ListHyperparameterTuningJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListHyperparameterTuningJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetBatchPredictionJobRequest", + "type": "aiplatformpb.ListHyperparameterTuningJobsRequest", "name": "req" }, { @@ -6593,14 +9669,14 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.BatchPredictionJob", + "resultType": "HyperparameterTuningJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetBatchPredictionJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetBatchPredictionJob", + "shortName": "ListHyperparameterTuningJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6611,27 +9687,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetCustomJob_sync", - "title": "aiplatform GetCustomJob Sample", - "description": "GetCustomJob gets a CustomJob.", - "file": "JobClient/GetCustomJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "JobClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetCustomJob", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetCustomJobRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -6639,17 +9715,17 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.CustomJob", + "resultType": "LocationIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetCustomJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetCustomJob", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -6657,27 +9733,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetDataLabelingJob_sync", - "title": "aiplatform GetDataLabelingJob Sample", - "description": "GetDataLabelingJob gets a DataLabelingJob.", - "file": "JobClient/GetDataLabelingJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListModelDeploymentMonitoringJobs_sync", + "title": "aiplatform ListModelDeploymentMonitoringJobs Sample", + "description": "ListModelDeploymentMonitoringJobs lists ModelDeploymentMonitoringJobs in a Location.", + "file": "JobClient/ListModelDeploymentMonitoringJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetDataLabelingJob", + "shortName": "ListModelDeploymentMonitoringJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListModelDeploymentMonitoringJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetDataLabelingJobRequest", + "type": "aiplatformpb.ListModelDeploymentMonitoringJobsRequest", "name": "req" }, { @@ -6685,14 +9761,14 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.DataLabelingJob", + "resultType": "ModelDeploymentMonitoringJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetDataLabelingJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetDataLabelingJob", + "shortName": "ListModelDeploymentMonitoringJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6703,27 +9779,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetHyperparameterTuningJob_sync", - "title": "aiplatform GetHyperparameterTuningJob Sample", - "description": "GetHyperparameterTuningJob gets a HyperparameterTuningJob", - "file": "JobClient/GetHyperparameterTuningJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListNasJobs_sync", + "title": "aiplatform ListNasJobs Sample", + "description": "ListNasJobs lists NasJobs in a Location.", + "file": "JobClient/ListNasJobs/main.go", "language": "GO", "clientMethod": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetHyperparameterTuningJob", + "shortName": "ListNasJobs", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListNasJobs", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetHyperparameterTuningJobRequest", + "type": "aiplatformpb.ListNasJobsRequest", "name": "req" }, { @@ -6731,14 +9807,14 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.HyperparameterTuningJob", + "resultType": "NasJobIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetHyperparameterTuningJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetHyperparameterTuningJob", + "shortName": "ListNasJobs", + "fullName": "google.cloud.aiplatform.v1.JobService.ListNasJobs", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6749,27 +9825,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetIamPolicy_sync", - "title": "aiplatform GetIamPolicy Sample", - "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", - "file": "JobClient/GetIamPolicy/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListNasTrialDetails_sync", + "title": "aiplatform ListNasTrialDetails Sample", + "description": "ListNasTrialDetails list top NasTrialDetails of a NasJob.", + "file": "JobClient/ListNasTrialDetails/main.go", "language": "GO", "clientMethod": { - "shortName": "GetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetIamPolicy", + "shortName": "ListNasTrialDetails", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListNasTrialDetails", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "iampb.GetIamPolicyRequest", + "type": "aiplatformpb.ListNasTrialDetailsRequest", "name": "req" }, { @@ -6777,17 +9853,17 @@ "name": "opts" } ], - "resultType": "*iampb.Policy", + "resultType": "NasTrialDetailIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetIamPolicy", - "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "shortName": "ListNasTrialDetails", + "fullName": "google.cloud.aiplatform.v1.JobService.ListNasTrialDetails", "service": { - "shortName": "IAMPolicy", - "fullName": "google.iam.v1.IAMPolicy" + "shortName": "JobService", + "fullName": "google.cloud.aiplatform.v1.JobService" } } }, @@ -6795,27 +9871,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetLocation_sync", - "title": "aiplatform GetLocation Sample", - "description": "GetLocation gets information about a location.", - "file": "JobClient/GetLocation/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "JobClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "GetLocation", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetLocation", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.JobClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.GetLocationRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -6823,17 +9899,17 @@ "name": "opts" } ], - "resultType": "*locationpb.Location", + "resultType": "OperationIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetLocation", - "fullName": "google.cloud.location.Locations.GetLocation", + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -6841,27 +9917,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetModelDeploymentMonitoringJob_sync", - "title": "aiplatform GetModelDeploymentMonitoringJob Sample", - "description": "GetModelDeploymentMonitoringJob gets a ModelDeploymentMonitoringJob.", - "file": "JobClient/GetModelDeploymentMonitoringJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_PauseModelDeploymentMonitoringJob_sync", + "title": "aiplatform PauseModelDeploymentMonitoringJob Sample", + "description": "PauseModelDeploymentMonitoringJob pauses a ModelDeploymentMonitoringJob. If the job is running, the server\nmakes a best effort to cancel the job. Will mark\n[ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob.state]\nto 'PAUSED'.", + "file": "JobClient/PauseModelDeploymentMonitoringJob/main.go", "language": "GO", "clientMethod": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetModelDeploymentMonitoringJob", + "shortName": "PauseModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.PauseModelDeploymentMonitoringJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetModelDeploymentMonitoringJobRequest", + "type": "aiplatformpb.PauseModelDeploymentMonitoringJobRequest", "name": "req" }, { @@ -6869,14 +9945,13 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.ModelDeploymentMonitoringJob", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetModelDeploymentMonitoringJob", + "shortName": "PauseModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6887,27 +9962,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetNasJob_sync", - "title": "aiplatform GetNasJob Sample", - "description": "GetNasJob gets a NasJob", - "file": "JobClient/GetNasJob/main.go", + "regionTag": "aiplatform_v1_generated_JobService_ResumeModelDeploymentMonitoringJob_sync", + "title": "aiplatform ResumeModelDeploymentMonitoringJob Sample", + "description": "ResumeModelDeploymentMonitoringJob resumes a paused ModelDeploymentMonitoringJob. It will start to run from\nnext scheduled time. A deleted ModelDeploymentMonitoringJob can't be\nresumed.", + "file": "JobClient/ResumeModelDeploymentMonitoringJob/main.go", "language": "GO", "clientMethod": { - "shortName": "GetNasJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetNasJob", + "shortName": "ResumeModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.ResumeModelDeploymentMonitoringJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetNasJobRequest", + "type": "aiplatformpb.ResumeModelDeploymentMonitoringJobRequest", "name": "req" }, { @@ -6915,14 +9990,13 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.NasJob", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetNasJob", - "fullName": "google.cloud.aiplatform.v1.JobService.GetNasJob", + "shortName": "ResumeModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6933,27 +10007,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetNasTrialDetail_sync", - "title": "aiplatform GetNasTrialDetail Sample", - "description": "GetNasTrialDetail gets a NasTrialDetail.", - "file": "JobClient/GetNasTrialDetail/main.go", + "regionTag": "aiplatform_v1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_sync", + "title": "aiplatform SearchModelDeploymentMonitoringStatsAnomalies Sample", + "description": "SearchModelDeploymentMonitoringStatsAnomalies searches Model Monitoring Statistics generated within a given time window.", + "file": "JobClient/SearchModelDeploymentMonitoringStatsAnomalies/main.go", "language": "GO", "clientMethod": { - "shortName": "GetNasTrialDetail", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetNasTrialDetail", + "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", + "fullName": "google.cloud.aiplatform.v1.JobClient.SearchModelDeploymentMonitoringStatsAnomalies", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.GetNasTrialDetailRequest", + "type": "aiplatformpb.SearchModelDeploymentMonitoringStatsAnomaliesRequest", "name": "req" }, { @@ -6961,14 +10035,14 @@ "name": "opts" } ], - "resultType": "*aiplatformpb.NasTrialDetail", + "resultType": "ModelMonitoringStatsAnomaliesIterator", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetNasTrialDetail", - "fullName": "google.cloud.aiplatform.v1.JobService.GetNasTrialDetail", + "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", + "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -6979,27 +10053,27 @@ "segments": [ { "start": 18, - "end": 53, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_GetOperation_sync", - "title": "aiplatform GetOperation Sample", - "description": "GetOperation is a utility method from google.longrunning.Operations.", - "file": "JobClient/GetOperation/main.go", + "regionTag": "aiplatform_v1_generated_JobService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "JobClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "GetOperation", - "fullName": "google.cloud.aiplatform.v1.JobClient.GetOperation", + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.JobClient.SetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.GetOperationRequest", + "type": "iampb.SetIamPolicyRequest", "name": "req" }, { @@ -7007,17 +10081,17 @@ "name": "opts" } ], - "resultType": "*longrunningpb.Operation", + "resultType": "*iampb.Policy", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "GetOperation", - "fullName": "google.longrunning.Operations.GetOperation", + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -7031,21 +10105,21 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListBatchPredictionJobs_sync", - "title": "aiplatform ListBatchPredictionJobs Sample", - "description": "ListBatchPredictionJobs lists BatchPredictionJobs in a Location.", - "file": "JobClient/ListBatchPredictionJobs/main.go", + "regionTag": "aiplatform_v1_generated_JobService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "JobClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListBatchPredictionJobs", + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.JobClient.TestIamPermissions", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListBatchPredictionJobsRequest", + "type": "iampb.TestIamPermissionsRequest", "name": "req" }, { @@ -7053,17 +10127,17 @@ "name": "opts" } ], - "resultType": "BatchPredictionJobIterator", + "resultType": "*iampb.TestIamPermissionsResponse", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "ListBatchPredictionJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListBatchPredictionJobs", + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -7071,27 +10145,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListCustomJobs_sync", - "title": "aiplatform ListCustomJobs Sample", - "description": "ListCustomJobs lists CustomJobs in a Location.", - "file": "JobClient/ListCustomJobs/main.go", + "regionTag": "aiplatform_v1_generated_JobService_UpdateModelDeploymentMonitoringJob_sync", + "title": "aiplatform UpdateModelDeploymentMonitoringJob Sample", + "description": "UpdateModelDeploymentMonitoringJob updates a ModelDeploymentMonitoringJob.", + "file": "JobClient/UpdateModelDeploymentMonitoringJob/main.go", "language": "GO", "clientMethod": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListCustomJobs", + "shortName": "UpdateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobClient.UpdateModelDeploymentMonitoringJob", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListCustomJobsRequest", + "type": "aiplatformpb.UpdateModelDeploymentMonitoringJobRequest", "name": "req" }, { @@ -7099,14 +10173,14 @@ "name": "opts" } ], - "resultType": "CustomJobIterator", + "resultType": "UpdateModelDeploymentMonitoringJobOperation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "ListCustomJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListCustomJobs", + "shortName": "UpdateModelDeploymentMonitoringJob", + "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", "service": { "shortName": "JobService", "fullName": "google.cloud.aiplatform.v1.JobService" @@ -7117,27 +10191,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 58, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListDataLabelingJobs_sync", - "title": "aiplatform ListDataLabelingJobs Sample", - "description": "ListDataLabelingJobs lists DataLabelingJobs in a Location.", - "file": "JobClient/ListDataLabelingJobs/main.go", + "regionTag": "aiplatform_v1_generated_JobService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "JobClient/WaitOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListDataLabelingJobs", + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1.JobClient.WaitOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListDataLabelingJobsRequest", + "type": "longrunningpb.WaitOperationRequest", "name": "req" }, { @@ -7145,17 +10219,17 @@ "name": "opts" } ], - "resultType": "DataLabelingJobIterator", + "resultType": "*longrunningpb.Operation", "client": { "shortName": "JobClient", "fullName": "google.cloud.aiplatform.v1.JobClient" }, "method": { - "shortName": "ListDataLabelingJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListDataLabelingJobs", + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -7163,27 +10237,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListHyperparameterTuningJobs_sync", - "title": "aiplatform ListHyperparameterTuningJobs Sample", - "description": "ListHyperparameterTuningJobs lists HyperparameterTuningJobs in a Location.", - "file": "JobClient/ListHyperparameterTuningJobs/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/CancelOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListHyperparameterTuningJobs", + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.CancelOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListHyperparameterTuningJobsRequest", + "type": "longrunningpb.CancelOperationRequest", "name": "req" }, { @@ -7191,17 +10265,16 @@ "name": "opts" } ], - "resultType": "HyperparameterTuningJobIterator", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListHyperparameterTuningJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListHyperparameterTuningJobs", + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -7209,27 +10282,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListLocations_sync", - "title": "aiplatform ListLocations Sample", - "description": "ListLocations lists information about the supported locations for this service.", - "file": "JobClient/ListLocations/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_ComputeTokens_sync", + "title": "aiplatform ComputeTokens Sample", + "description": "ComputeTokens return a list of tokens based on the input text.", + "file": "LlmUtilityClient/ComputeTokens/main.go", "language": "GO", "clientMethod": { - "shortName": "ListLocations", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListLocations", + "shortName": "ComputeTokens", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.ComputeTokens", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "locationpb.ListLocationsRequest", + "type": "aiplatformpb.ComputeTokensRequest", "name": "req" }, { @@ -7237,17 +10310,17 @@ "name": "opts" } ], - "resultType": "LocationIterator", + "resultType": "*aiplatformpb.ComputeTokensResponse", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListLocations", - "fullName": "google.cloud.location.Locations.ListLocations", + "shortName": "ComputeTokens", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityService.ComputeTokens", "service": { - "shortName": "Locations", - "fullName": "google.cloud.location.Locations" + "shortName": "LlmUtilityService", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityService" } } }, @@ -7255,27 +10328,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListModelDeploymentMonitoringJobs_sync", - "title": "aiplatform ListModelDeploymentMonitoringJobs Sample", - "description": "ListModelDeploymentMonitoringJobs lists ModelDeploymentMonitoringJobs in a Location.", - "file": "JobClient/ListModelDeploymentMonitoringJobs/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_CountTokens_sync", + "title": "aiplatform CountTokens Sample", + "description": "CountTokens perform a token counting.", + "file": "LlmUtilityClient/CountTokens/main.go", "language": "GO", "clientMethod": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListModelDeploymentMonitoringJobs", + "shortName": "CountTokens", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.CountTokens", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListModelDeploymentMonitoringJobsRequest", + "type": "aiplatformpb.CountTokensRequest", "name": "req" }, { @@ -7283,17 +10356,17 @@ "name": "opts" } ], - "resultType": "ModelDeploymentMonitoringJobIterator", + "resultType": "*aiplatformpb.CountTokensResponse", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListModelDeploymentMonitoringJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListModelDeploymentMonitoringJobs", + "shortName": "CountTokens", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityService.CountTokens", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "LlmUtilityService", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityService" } } }, @@ -7301,27 +10374,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListNasJobs_sync", - "title": "aiplatform ListNasJobs Sample", - "description": "ListNasJobs lists NasJobs in a Location.", - "file": "JobClient/ListNasJobs/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/DeleteOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListNasJobs", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListNasJobs", + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.DeleteOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListNasJobsRequest", + "type": "longrunningpb.DeleteOperationRequest", "name": "req" }, { @@ -7329,17 +10402,16 @@ "name": "opts" } ], - "resultType": "NasJobIterator", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListNasJobs", - "fullName": "google.cloud.aiplatform.v1.JobService.ListNasJobs", + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -7347,27 +10419,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 51, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListNasTrialDetails_sync", - "title": "aiplatform ListNasTrialDetails Sample", - "description": "ListNasTrialDetails list top NasTrialDetails of a NasJob.", - "file": "JobClient/ListNasTrialDetails/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "LlmUtilityClient/GetIamPolicy/main.go", "language": "GO", "clientMethod": { - "shortName": "ListNasTrialDetails", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListNasTrialDetails", + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.GetIamPolicy", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ListNasTrialDetailsRequest", + "type": "iampb.GetIamPolicyRequest", "name": "req" }, { @@ -7375,17 +10447,17 @@ "name": "opts" } ], - "resultType": "NasTrialDetailIterator", + "resultType": "*iampb.Policy", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListNasTrialDetails", - "fullName": "google.cloud.aiplatform.v1.JobService.ListNasTrialDetails", + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" } } }, @@ -7393,27 +10465,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ListOperations_sync", - "title": "aiplatform ListOperations Sample", - "description": "ListOperations is a utility method from google.longrunning.Operations.", - "file": "JobClient/ListOperations/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "LlmUtilityClient/GetLocation/main.go", "language": "GO", "clientMethod": { - "shortName": "ListOperations", - "fullName": "google.cloud.aiplatform.v1.JobClient.ListOperations", + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.GetLocation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "longrunningpb.ListOperationsRequest", + "type": "locationpb.GetLocationRequest", "name": "req" }, { @@ -7421,17 +10493,17 @@ "name": "opts" } ], - "resultType": "OperationIterator", + "resultType": "*locationpb.Location", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ListOperations", - "fullName": "google.longrunning.Operations.ListOperations", + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", "service": { - "shortName": "Operations", - "fullName": "google.longrunning.Operations" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -7439,27 +10511,27 @@ "segments": [ { "start": 18, - "end": 60, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_PauseModelDeploymentMonitoringJob_sync", - "title": "aiplatform PauseModelDeploymentMonitoringJob Sample", - "description": "PauseModelDeploymentMonitoringJob pauses a ModelDeploymentMonitoringJob. If the job is running, the server\nmakes a best effort to cancel the job. Will mark\n[ModelDeploymentMonitoringJob.state][google.cloud.aiplatform.v1.ModelDeploymentMonitoringJob.state]\nto 'PAUSED'.", - "file": "JobClient/PauseModelDeploymentMonitoringJob/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/GetOperation/main.go", "language": "GO", "clientMethod": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.PauseModelDeploymentMonitoringJob", + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.GetOperation", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.PauseModelDeploymentMonitoringJobRequest", + "type": "longrunningpb.GetOperationRequest", "name": "req" }, { @@ -7467,16 +10539,17 @@ "name": "opts" } ], + "resultType": "*longrunningpb.Operation", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "PauseModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.PauseModelDeploymentMonitoringJob", + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -7484,27 +10557,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 53, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_ResumeModelDeploymentMonitoringJob_sync", - "title": "aiplatform ResumeModelDeploymentMonitoringJob Sample", - "description": "ResumeModelDeploymentMonitoringJob resumes a paused ModelDeploymentMonitoringJob. It will start to run from\nnext scheduled time. A deleted ModelDeploymentMonitoringJob can't be\nresumed.", - "file": "JobClient/ResumeModelDeploymentMonitoringJob/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "LlmUtilityClient/ListLocations/main.go", "language": "GO", "clientMethod": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.ResumeModelDeploymentMonitoringJob", + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.ListLocations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.ResumeModelDeploymentMonitoringJobRequest", + "type": "locationpb.ListLocationsRequest", "name": "req" }, { @@ -7512,16 +10585,17 @@ "name": "opts" } ], + "resultType": "LocationIterator", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "ResumeModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.ResumeModelDeploymentMonitoringJob", + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" } } }, @@ -7529,27 +10603,27 @@ "segments": [ { "start": 18, - "end": 51, + "end": 60, "type": "FULL" } ] }, { - "regionTag": "aiplatform_v1_generated_JobService_SearchModelDeploymentMonitoringStatsAnomalies_sync", - "title": "aiplatform SearchModelDeploymentMonitoringStatsAnomalies Sample", - "description": "SearchModelDeploymentMonitoringStatsAnomalies searches Model Monitoring Statistics generated within a given time window.", - "file": "JobClient/SearchModelDeploymentMonitoringStatsAnomalies/main.go", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/ListOperations/main.go", "language": "GO", "clientMethod": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1.JobClient.SearchModelDeploymentMonitoringStatsAnomalies", + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.ListOperations", "parameters": [ { "type": "context.Context", "name": "ctx" }, { - "type": "aiplatformpb.SearchModelDeploymentMonitoringStatsAnomaliesRequest", + "type": "longrunningpb.ListOperationsRequest", "name": "req" }, { @@ -7557,17 +10631,17 @@ "name": "opts" } ], - "resultType": "ModelMonitoringStatsAnomaliesIterator", + "resultType": "OperationIterator", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { - "shortName": "SearchModelDeploymentMonitoringStatsAnomalies", - "fullName": "google.cloud.aiplatform.v1.JobService.SearchModelDeploymentMonitoringStatsAnomalies", + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" + "shortName": "Operations", + "fullName": "google.longrunning.Operations" } } }, @@ -7581,14 +10655,14 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_SetIamPolicy_sync", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_SetIamPolicy_sync", "title": "aiplatform SetIamPolicy Sample", "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", - "file": "JobClient/SetIamPolicy/main.go", + "file": "LlmUtilityClient/SetIamPolicy/main.go", "language": "GO", "clientMethod": { "shortName": "SetIamPolicy", - "fullName": "google.cloud.aiplatform.v1.JobClient.SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.SetIamPolicy", "parameters": [ { "type": "context.Context", @@ -7605,8 +10679,8 @@ ], "resultType": "*iampb.Policy", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { "shortName": "SetIamPolicy", @@ -7627,14 +10701,14 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_TestIamPermissions_sync", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_TestIamPermissions_sync", "title": "aiplatform TestIamPermissions Sample", "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", - "file": "JobClient/TestIamPermissions/main.go", + "file": "LlmUtilityClient/TestIamPermissions/main.go", "language": "GO", "clientMethod": { "shortName": "TestIamPermissions", - "fullName": "google.cloud.aiplatform.v1.JobClient.TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.TestIamPermissions", "parameters": [ { "type": "context.Context", @@ -7651,8 +10725,8 @@ ], "resultType": "*iampb.TestIamPermissionsResponse", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { "shortName": "TestIamPermissions", @@ -7673,60 +10747,14 @@ ] }, { - "regionTag": "aiplatform_v1_generated_JobService_UpdateModelDeploymentMonitoringJob_sync", - "title": "aiplatform UpdateModelDeploymentMonitoringJob Sample", - "description": "UpdateModelDeploymentMonitoringJob updates a ModelDeploymentMonitoringJob.", - "file": "JobClient/UpdateModelDeploymentMonitoringJob/main.go", - "language": "GO", - "clientMethod": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobClient.UpdateModelDeploymentMonitoringJob", - "parameters": [ - { - "type": "context.Context", - "name": "ctx" - }, - { - "type": "aiplatformpb.UpdateModelDeploymentMonitoringJobRequest", - "name": "req" - }, - { - "type": "...gax.CallOption", - "name": "opts" - } - ], - "resultType": "UpdateModelDeploymentMonitoringJobOperation", - "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" - }, - "method": { - "shortName": "UpdateModelDeploymentMonitoringJob", - "fullName": "google.cloud.aiplatform.v1.JobService.UpdateModelDeploymentMonitoringJob", - "service": { - "shortName": "JobService", - "fullName": "google.cloud.aiplatform.v1.JobService" - } - } - }, - "origin": "API_DEFINITION", - "segments": [ - { - "start": 18, - "end": 58, - "type": "FULL" - } - ] - }, - { - "regionTag": "aiplatform_v1_generated_JobService_WaitOperation_sync", + "regionTag": "aiplatform_v1_generated_LlmUtilityService_WaitOperation_sync", "title": "aiplatform WaitOperation Sample", "description": "WaitOperation is a utility method from google.longrunning.Operations.", - "file": "JobClient/WaitOperation/main.go", + "file": "LlmUtilityClient/WaitOperation/main.go", "language": "GO", "clientMethod": { "shortName": "WaitOperation", - "fullName": "google.cloud.aiplatform.v1.JobClient.WaitOperation", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient.WaitOperation", "parameters": [ { "type": "context.Context", @@ -7743,8 +10771,8 @@ ], "resultType": "*longrunningpb.Operation", "client": { - "shortName": "JobClient", - "fullName": "google.cloud.aiplatform.v1.JobClient" + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1.LlmUtilityClient" }, "method": { "shortName": "WaitOperation", diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/CancelOperation/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/CancelOperation/main.go new file mode 100644 index 000000000000..313227c14f77 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_CancelOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_CancelOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ComputeTokens/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ComputeTokens/main.go new file mode 100644 index 000000000000..0e8fec63dde9 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ComputeTokens/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_ComputeTokens_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.ComputeTokensRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#ComputeTokensRequest. + } + resp, err := c.ComputeTokens(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_ComputeTokens_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/DeleteOperation/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/DeleteOperation/main.go new file mode 100644 index 000000000000..a4c64d48d8cf --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_DeleteOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_DeleteOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetIamPolicy/main.go new file mode 100644 index 000000000000..31be7094ff47 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_GetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.GetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#GetIamPolicyRequest. + } + resp, err := c.GetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_GetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetLocation/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetLocation/main.go new file mode 100644 index 000000000000..867331a0dd17 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_GetLocation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_GetLocation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetOperation/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetOperation/main.go new file mode 100644 index 000000000000..c5189e08fe82 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_GetOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_GetOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListLocations/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListLocations/main.go new file mode 100644 index 000000000000..9d83853572a0 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_ListLocations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_ListLocations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListOperations/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListOperations/main.go new file mode 100644 index 000000000000..1ea02a0be5ca --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_ListOperations_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_ListOperations_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/SetIamPolicy/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/SetIamPolicy/main.go new file mode 100644 index 000000000000..b6e735540f4e --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_SetIamPolicy_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.SetIamPolicyRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#SetIamPolicyRequest. + } + resp, err := c.SetIamPolicy(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_SetIamPolicy_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/TestIamPermissions/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/TestIamPermissions/main.go new file mode 100644 index 000000000000..762166c7b365 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_TestIamPermissions_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + iampb "cloud.google.com/go/iam/apiv1/iampb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &iampb.TestIamPermissionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/iam/apiv1/iampb#TestIamPermissionsRequest. + } + resp, err := c.TestIamPermissions(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_TestIamPermissions_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/WaitOperation/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/WaitOperation/main.go new file mode 100644 index 000000000000..741b28d5078a --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/LlmUtilityClient/WaitOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_LlmUtilityService_WaitOperation_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewLlmUtilityClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.WaitOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#WaitOperationRequest. + } + resp, err := c.WaitOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_LlmUtilityService_WaitOperation_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/PipelineClient/BatchDeletePipelineJobs/main.go b/internal/generated/snippets/aiplatform/apiv1beta1/PipelineClient/BatchDeletePipelineJobs/main.go new file mode 100644 index 000000000000..a8c1567ef141 --- /dev/null +++ b/internal/generated/snippets/aiplatform/apiv1beta1/PipelineClient/BatchDeletePipelineJobs/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START aiplatform_v1beta1_generated_PipelineService_BatchDeletePipelineJobs_sync] + +package main + +import ( + "context" + + aiplatform "cloud.google.com/go/aiplatform/apiv1beta1" + aiplatformpb "cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := aiplatform.NewPipelineClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &aiplatformpb.BatchDeletePipelineJobsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/aiplatform/apiv1beta1/aiplatformpb#BatchDeletePipelineJobsRequest. + } + op, err := c.BatchDeletePipelineJobs(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END aiplatform_v1beta1_generated_PipelineService_BatchDeletePipelineJobs_sync] diff --git a/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json b/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json index 7a9c60cc9c20..76443da24582 100644 --- a/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json +++ b/internal/generated/snippets/aiplatform/apiv1beta1/snippet_metadata.google.cloud.aiplatform.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/aiplatform/apiv1beta1", - "version": "1.52.0", + "version": "1.53.0", "language": "GO", "apis": [ { @@ -10976,6 +10976,510 @@ } ] }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_CancelOperation_sync", + "title": "aiplatform CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_ComputeTokens_sync", + "title": "aiplatform ComputeTokens Sample", + "description": "ComputeTokens return a list of tokens based on the input text.", + "file": "LlmUtilityClient/ComputeTokens/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ComputeTokens", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.ComputeTokens", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.ComputeTokensRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*aiplatformpb.ComputeTokensResponse", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "ComputeTokens", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityService.ComputeTokens", + "service": { + "shortName": "LlmUtilityService", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_DeleteOperation_sync", + "title": "aiplatform DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_GetIamPolicy_sync", + "title": "aiplatform GetIamPolicy Sample", + "description": "GetIamPolicy gets the access control policy for a resource. Returns an empty policy\nif the resource exists and does not have a policy set.", + "file": "LlmUtilityClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "GetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.GetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_GetLocation_sync", + "title": "aiplatform GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "LlmUtilityClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_GetOperation_sync", + "title": "aiplatform GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_ListLocations_sync", + "title": "aiplatform ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "LlmUtilityClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_ListOperations_sync", + "title": "aiplatform ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_SetIamPolicy_sync", + "title": "aiplatform SetIamPolicy Sample", + "description": "SetIamPolicy sets the access control policy on the specified resource. Replaces\nany existing policy.\n\nCan return `NOT_FOUND`, `INVALID_ARGUMENT`, and `PERMISSION_DENIED`\nerrors.", + "file": "LlmUtilityClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "SetIamPolicy", + "fullName": "google.iam.v1.IAMPolicy.SetIamPolicy", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_TestIamPermissions_sync", + "title": "aiplatform TestIamPermissions Sample", + "description": "TestIamPermissions returns permissions that a caller has on the specified resource. If the\nresource does not exist, this will return an empty set of\npermissions, not a `NOT_FOUND` error.\n\nNote: This operation is designed to be used for building\npermission-aware UIs and command-line tools, not for authorization\nchecking. This operation may \"fail open\" without warning.", + "file": "LlmUtilityClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "TestIamPermissions", + "fullName": "google.iam.v1.IAMPolicy.TestIamPermissions", + "service": { + "shortName": "IAMPolicy", + "fullName": "google.iam.v1.IAMPolicy" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "aiplatform_v1beta1_generated_LlmUtilityService_WaitOperation_sync", + "title": "aiplatform WaitOperation Sample", + "description": "WaitOperation is a utility method from google.longrunning.Operations.", + "file": "LlmUtilityClient/WaitOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "WaitOperation", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient.WaitOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.WaitOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "LlmUtilityClient", + "fullName": "google.cloud.aiplatform.v1beta1.LlmUtilityClient" + }, + "method": { + "shortName": "WaitOperation", + "fullName": "google.longrunning.Operations.WaitOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "aiplatform_v1beta1_generated_MatchService_CancelOperation_sync", "title": "aiplatform CancelOperation Sample", @@ -16530,6 +17034,52 @@ } ] }, + { + "regionTag": "aiplatform_v1beta1_generated_PipelineService_BatchDeletePipelineJobs_sync", + "title": "aiplatform BatchDeletePipelineJobs Sample", + "description": "BatchDeletePipelineJobs batch deletes PipelineJobs\nThe Operation is atomic. If it fails, none of the PipelineJobs are deleted.\nIf it succeeds, all of the PipelineJobs are deleted.", + "file": "PipelineClient/BatchDeletePipelineJobs/main.go", + "language": "GO", + "clientMethod": { + "shortName": "BatchDeletePipelineJobs", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineClient.BatchDeletePipelineJobs", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "aiplatformpb.BatchDeletePipelineJobsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "BatchDeletePipelineJobsOperation", + "client": { + "shortName": "PipelineClient", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineClient" + }, + "method": { + "shortName": "BatchDeletePipelineJobs", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService.BatchDeletePipelineJobs", + "service": { + "shortName": "PipelineService", + "fullName": "google.cloud.aiplatform.v1beta1.PipelineService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, { "regionTag": "aiplatform_v1beta1_generated_PipelineService_CancelOperation_sync", "title": "aiplatform CancelOperation Sample", diff --git a/internal/generated/snippets/alloydb/apiv1/snippet_metadata.google.cloud.alloydb.v1.json b/internal/generated/snippets/alloydb/apiv1/snippet_metadata.google.cloud.alloydb.v1.json index afb093081a52..a99b2e3575d4 100644 --- a/internal/generated/snippets/alloydb/apiv1/snippet_metadata.google.cloud.alloydb.v1.json +++ b/internal/generated/snippets/alloydb/apiv1/snippet_metadata.google.cloud.alloydb.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/alloydb/apiv1", - "version": "1.6.3", + "version": "1.7.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/alloydb/apiv1alpha/snippet_metadata.google.cloud.alloydb.v1alpha.json b/internal/generated/snippets/alloydb/apiv1alpha/snippet_metadata.google.cloud.alloydb.v1alpha.json index e8899a7647f3..36f68c212e5a 100644 --- a/internal/generated/snippets/alloydb/apiv1alpha/snippet_metadata.google.cloud.alloydb.v1alpha.json +++ b/internal/generated/snippets/alloydb/apiv1alpha/snippet_metadata.google.cloud.alloydb.v1alpha.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/alloydb/apiv1alpha", - "version": "1.6.3", + "version": "1.7.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/alloydb/apiv1beta/snippet_metadata.google.cloud.alloydb.v1beta.json b/internal/generated/snippets/alloydb/apiv1beta/snippet_metadata.google.cloud.alloydb.v1beta.json index 8698fc4acc53..92b27e0356f6 100644 --- a/internal/generated/snippets/alloydb/apiv1beta/snippet_metadata.google.cloud.alloydb.v1beta.json +++ b/internal/generated/snippets/alloydb/apiv1beta/snippet_metadata.google.cloud.alloydb.v1beta.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/alloydb/apiv1beta", - "version": "1.6.3", + "version": "1.7.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json b/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json index 304ffa2a69c9..5c18b484967e 100644 --- a/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json +++ b/internal/generated/snippets/cloudbuild/apiv1/v2/snippet_metadata.google.devtools.cloudbuild.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/cloudbuild/apiv1/v2", - "version": "1.14.3", + "version": "1.15.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json b/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json index de114a475be5..be5877c48c42 100644 --- a/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json +++ b/internal/generated/snippets/cloudbuild/apiv2/snippet_metadata.google.devtools.cloudbuild.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/cloudbuild/apiv2", - "version": "1.14.3", + "version": "1.15.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/contactcenterinsights/apiv1/snippet_metadata.google.cloud.contactcenterinsights.v1.json b/internal/generated/snippets/contactcenterinsights/apiv1/snippet_metadata.google.cloud.contactcenterinsights.v1.json index d8b212ccd0d7..f80f95979852 100644 --- a/internal/generated/snippets/contactcenterinsights/apiv1/snippet_metadata.google.cloud.contactcenterinsights.v1.json +++ b/internal/generated/snippets/contactcenterinsights/apiv1/snippet_metadata.google.cloud.contactcenterinsights.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/contactcenterinsights/apiv1", - "version": "1.11.3", + "version": "1.12.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/container/apiv1/snippet_metadata.google.container.v1.json b/internal/generated/snippets/container/apiv1/snippet_metadata.google.container.v1.json index 328399c287a6..d96828a6ea4c 100644 --- a/internal/generated/snippets/container/apiv1/snippet_metadata.google.container.v1.json +++ b/internal/generated/snippets/container/apiv1/snippet_metadata.google.container.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/container/apiv1", - "version": "1.27.1", + "version": "1.28.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/datacatalog/apiv1/snippet_metadata.google.cloud.datacatalog.v1.json b/internal/generated/snippets/datacatalog/apiv1/snippet_metadata.google.cloud.datacatalog.v1.json index a41b3474c826..ef7249034e2d 100644 --- a/internal/generated/snippets/datacatalog/apiv1/snippet_metadata.google.cloud.datacatalog.v1.json +++ b/internal/generated/snippets/datacatalog/apiv1/snippet_metadata.google.cloud.datacatalog.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/datacatalog/apiv1", - "version": "1.18.3", + "version": "1.19.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/datacatalog/apiv1beta1/snippet_metadata.google.cloud.datacatalog.v1beta1.json b/internal/generated/snippets/datacatalog/apiv1beta1/snippet_metadata.google.cloud.datacatalog.v1beta1.json index fbf4a7e9afbb..5c7aec3a9b87 100644 --- a/internal/generated/snippets/datacatalog/apiv1beta1/snippet_metadata.google.cloud.datacatalog.v1beta1.json +++ b/internal/generated/snippets/datacatalog/apiv1beta1/snippet_metadata.google.cloud.datacatalog.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/datacatalog/apiv1beta1", - "version": "1.18.3", + "version": "1.19.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/datacatalog/lineage/apiv1/snippet_metadata.google.cloud.datacatalog.lineage.v1.json b/internal/generated/snippets/datacatalog/lineage/apiv1/snippet_metadata.google.cloud.datacatalog.lineage.v1.json index fbe13be87547..ff606f03ab56 100644 --- a/internal/generated/snippets/datacatalog/lineage/apiv1/snippet_metadata.google.cloud.datacatalog.lineage.v1.json +++ b/internal/generated/snippets/datacatalog/lineage/apiv1/snippet_metadata.google.cloud.datacatalog.lineage.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/datacatalog/lineage/apiv1", - "version": "1.18.3", + "version": "1.19.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json b/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json index 687153ac66ce..c56172f1cc03 100644 --- a/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json +++ b/internal/generated/snippets/dataplex/apiv1/snippet_metadata.google.cloud.dataplex.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/dataplex/apiv1", - "version": "1.11.1", + "version": "1.11.2", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/dataproc/apiv1/snippet_metadata.google.cloud.dataproc.v1.json b/internal/generated/snippets/dataproc/apiv1/snippet_metadata.google.cloud.dataproc.v1.json index 9eecdbcc9ebc..86203de82ea2 100644 --- a/internal/generated/snippets/dataproc/apiv1/snippet_metadata.google.cloud.dataproc.v1.json +++ b/internal/generated/snippets/dataproc/apiv1/snippet_metadata.google.cloud.dataproc.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/dataproc/v2/apiv1", - "version": "2.2.3", + "version": "2.3.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json b/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json index 46f9e5f6e9d7..773b839f2263 100644 --- a/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json +++ b/internal/generated/snippets/deploy/apiv1/snippet_metadata.google.cloud.deploy.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/deploy/apiv1", - "version": "1.14.2", + "version": "1.15.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/edgenetwork/apiv1/snippet_metadata.google.cloud.edgenetwork.v1.json b/internal/generated/snippets/edgenetwork/apiv1/snippet_metadata.google.cloud.edgenetwork.v1.json index 32fdb34bbdf7..1f38053468d7 100644 --- a/internal/generated/snippets/edgenetwork/apiv1/snippet_metadata.google.cloud.edgenetwork.v1.json +++ b/internal/generated/snippets/edgenetwork/apiv1/snippet_metadata.google.cloud.edgenetwork.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/edgenetwork/apiv1", - "version": "0.0.0", + "version": "0.1.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/CancelOperation/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/CancelOperation/main.go new file mode 100644 index 000000000000..5bec99d9ab35 --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_CancelOperation_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.CancelOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#CancelOperationRequest. + } + err = c.CancelOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END file_v1_generated_CloudFilestoreManager_CancelOperation_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/DeleteOperation/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/DeleteOperation/main.go new file mode 100644 index 000000000000..2f0467ade6fa --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_DeleteOperation_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.DeleteOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#DeleteOperationRequest. + } + err = c.DeleteOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END file_v1_generated_CloudFilestoreManager_DeleteOperation_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetLocation/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetLocation/main.go new file mode 100644 index 000000000000..08c9980160d8 --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetLocation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_GetLocation_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.GetLocationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#GetLocationRequest. + } + resp, err := c.GetLocation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END file_v1_generated_CloudFilestoreManager_GetLocation_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetOperation/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetOperation/main.go new file mode 100644 index 000000000000..78114fad2698 --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_GetOperation_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.GetOperationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#GetOperationRequest. + } + resp, err := c.GetOperation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END file_v1_generated_CloudFilestoreManager_GetOperation_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListLocations/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListLocations/main.go new file mode 100644 index 000000000000..5739457ca48f --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListLocations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_ListLocations_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + "google.golang.org/api/iterator" + locationpb "google.golang.org/genproto/googleapis/cloud/location" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &locationpb.ListLocationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/location#ListLocationsRequest. + } + it := c.ListLocations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END file_v1_generated_CloudFilestoreManager_ListLocations_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListOperations/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListOperations/main.go new file mode 100644 index 000000000000..93ee60859e14 --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_ListOperations_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &longrunningpb.ListOperationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/longrunning/autogen/longrunningpb#ListOperationsRequest. + } + it := c.ListOperations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END file_v1_generated_CloudFilestoreManager_ListOperations_sync] diff --git a/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/RevertInstance/main.go b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/RevertInstance/main.go new file mode 100644 index 000000000000..696281fefee9 --- /dev/null +++ b/internal/generated/snippets/filestore/apiv1/CloudFilestoreManagerClient/RevertInstance/main.go @@ -0,0 +1,58 @@ +// Copyright 2023 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 +// +// https://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. + +// Code generated by protoc-gen-go_gapic. DO NOT EDIT. + +// [START file_v1_generated_CloudFilestoreManager_RevertInstance_sync] + +package main + +import ( + "context" + + filestore "cloud.google.com/go/filestore/apiv1" + filestorepb "cloud.google.com/go/filestore/apiv1/filestorepb" +) + +func main() { + ctx := context.Background() + // This snippet has been automatically generated and should be regarded as a code template only. + // It will require modifications to work: + // - It may require correct/in-range values for request initialization. + // - It may require specifying regional endpoints when creating the service client as shown in: + // https://pkg.go.dev/cloud.google.com/go#hdr-Client_Options + c, err := filestore.NewCloudFilestoreManagerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &filestorepb.RevertInstanceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/filestore/apiv1/filestorepb#RevertInstanceRequest. + } + op, err := c.RevertInstance(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END file_v1_generated_CloudFilestoreManager_RevertInstance_sync] diff --git a/internal/generated/snippets/filestore/apiv1/snippet_metadata.google.cloud.filestore.v1.json b/internal/generated/snippets/filestore/apiv1/snippet_metadata.google.cloud.filestore.v1.json index 5d908127bbe8..8a676d509cfd 100644 --- a/internal/generated/snippets/filestore/apiv1/snippet_metadata.google.cloud.filestore.v1.json +++ b/internal/generated/snippets/filestore/apiv1/snippet_metadata.google.cloud.filestore.v1.json @@ -11,6 +11,51 @@ ] }, "snippets": [ + { + "regionTag": "file_v1_generated_CloudFilestoreManager_CancelOperation_sync", + "title": "file CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "CloudFilestoreManagerClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "CancelOperation", + "fullName": "google.longrunning.Operations.CancelOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, { "regionTag": "file_v1_generated_CloudFilestoreManager_CreateBackup_sync", "title": "file CreateBackup Sample", @@ -241,6 +286,51 @@ } ] }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_DeleteOperation_sync", + "title": "file DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "CloudFilestoreManagerClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "DeleteOperation", + "fullName": "google.longrunning.Operations.DeleteOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, { "regionTag": "file_v1_generated_CloudFilestoreManager_DeleteSnapshot_sync", "title": "file DeleteSnapshot Sample", @@ -379,6 +469,98 @@ } ] }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_GetLocation_sync", + "title": "file GetLocation Sample", + "description": "GetLocation gets information about a location.", + "file": "CloudFilestoreManagerClient/GetLocation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetLocation", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.GetLocation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.GetLocationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*locationpb.Location", + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "GetLocation", + "fullName": "google.cloud.location.Locations.GetLocation", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_GetOperation_sync", + "title": "file GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "CloudFilestoreManagerClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "GetOperation", + "fullName": "google.longrunning.Operations.GetOperation", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "file_v1_generated_CloudFilestoreManager_GetSnapshot_sync", "title": "file GetSnapshot Sample", @@ -517,6 +699,98 @@ } ] }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_ListLocations_sync", + "title": "file ListLocations Sample", + "description": "ListLocations lists information about the supported locations for this service.", + "file": "CloudFilestoreManagerClient/ListLocations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListLocations", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.ListLocations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "locationpb.ListLocationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "LocationIterator", + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "ListLocations", + "fullName": "google.cloud.location.Locations.ListLocations", + "service": { + "shortName": "Locations", + "fullName": "google.cloud.location.Locations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_ListOperations_sync", + "title": "file ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "CloudFilestoreManagerClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "ListOperations", + "fullName": "google.longrunning.Operations.ListOperations", + "service": { + "shortName": "Operations", + "fullName": "google.longrunning.Operations" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, { "regionTag": "file_v1_generated_CloudFilestoreManager_ListSnapshots_sync", "title": "file ListSnapshots Sample", @@ -609,6 +883,52 @@ } ] }, + { + "regionTag": "file_v1_generated_CloudFilestoreManager_RevertInstance_sync", + "title": "file RevertInstance Sample", + "description": "RevertInstance revert an existing instance's file system to a specified snapshot.", + "file": "CloudFilestoreManagerClient/RevertInstance/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RevertInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient.RevertInstance", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "filestorepb.RevertInstanceRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RevertInstanceOperation", + "client": { + "shortName": "CloudFilestoreManagerClient", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManagerClient" + }, + "method": { + "shortName": "RevertInstance", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager.RevertInstance", + "service": { + "shortName": "CloudFilestoreManager", + "fullName": "google.cloud.filestore.v1.CloudFilestoreManager" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, { "regionTag": "file_v1_generated_CloudFilestoreManager_UpdateBackup_sync", "title": "file UpdateBackup Sample", diff --git a/internal/generated/snippets/scheduler/apiv1/snippet_metadata.google.cloud.scheduler.v1.json b/internal/generated/snippets/scheduler/apiv1/snippet_metadata.google.cloud.scheduler.v1.json index 9646f11a1d01..609a0e3552f5 100644 --- a/internal/generated/snippets/scheduler/apiv1/snippet_metadata.google.cloud.scheduler.v1.json +++ b/internal/generated/snippets/scheduler/apiv1/snippet_metadata.google.cloud.scheduler.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/scheduler/apiv1", - "version": "1.10.4", + "version": "1.10.5", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/scheduler/apiv1beta1/snippet_metadata.google.cloud.scheduler.v1beta1.json b/internal/generated/snippets/scheduler/apiv1beta1/snippet_metadata.google.cloud.scheduler.v1beta1.json index 041334f84512..ace31e323ed3 100644 --- a/internal/generated/snippets/scheduler/apiv1beta1/snippet_metadata.google.cloud.scheduler.v1beta1.json +++ b/internal/generated/snippets/scheduler/apiv1beta1/snippet_metadata.google.cloud.scheduler.v1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/scheduler/apiv1beta1", - "version": "1.10.4", + "version": "1.10.5", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/speech/apiv1/snippet_metadata.google.cloud.speech.v1.json b/internal/generated/snippets/speech/apiv1/snippet_metadata.google.cloud.speech.v1.json index d49f0fd5baea..93342209fd93 100644 --- a/internal/generated/snippets/speech/apiv1/snippet_metadata.google.cloud.speech.v1.json +++ b/internal/generated/snippets/speech/apiv1/snippet_metadata.google.cloud.speech.v1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/speech/apiv1", - "version": "1.20.1", + "version": "1.21.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/speech/apiv1p1beta1/snippet_metadata.google.cloud.speech.v1p1beta1.json b/internal/generated/snippets/speech/apiv1p1beta1/snippet_metadata.google.cloud.speech.v1p1beta1.json index bbe70f088d6b..a7f570a7c6cd 100644 --- a/internal/generated/snippets/speech/apiv1p1beta1/snippet_metadata.google.cloud.speech.v1p1beta1.json +++ b/internal/generated/snippets/speech/apiv1p1beta1/snippet_metadata.google.cloud.speech.v1p1beta1.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/speech/apiv1p1beta1", - "version": "1.20.1", + "version": "1.21.0", "language": "GO", "apis": [ { diff --git a/internal/generated/snippets/speech/apiv2/snippet_metadata.google.cloud.speech.v2.json b/internal/generated/snippets/speech/apiv2/snippet_metadata.google.cloud.speech.v2.json index e3e5288c248b..59dc609ffd0b 100644 --- a/internal/generated/snippets/speech/apiv2/snippet_metadata.google.cloud.speech.v2.json +++ b/internal/generated/snippets/speech/apiv2/snippet_metadata.google.cloud.speech.v2.json @@ -1,7 +1,7 @@ { "clientLibrary": { "name": "cloud.google.com/go/speech/apiv2", - "version": "1.20.1", + "version": "1.21.0", "language": "GO", "apis": [ {