From 4d56af183d42ff12862c0c35226e767ed8763118 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Tue, 30 Jan 2024 18:06:16 +0000 Subject: [PATCH] docs(aiplatform): add comments for FeatureOnlineStoreService and ModelMonitoringAlertConfig (#9326) - [ ] Regenerate this pull request now. PiperOrigin-RevId: 602479847 Source-Link: https://togithub.com/googleapis/googleapis/commit/18a81568cbc3eb4a4a3ade3ec4b35387942d36b4 Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/629a7df9d3110a03cdc798dee4327d9d88813895 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiNjI5YTdkZjlkMzExMGEwM2NkYzc5OGRlZTQzMjdkOWQ4ODgxMzg5NSJ9 BEGIN_NESTED_COMMIT feat(dataproc): add session and session_template controllers PiperOrigin-RevId: 602428194 Source-Link: https://togithub.com/googleapis/googleapis/commit/71ea538d922c5cb4115fc5340a956d4c7bceb1be Source-Link: https://togithub.com/googleapis/googleapis-gen/commit/c4c4a52c4bbd5f79f1f290772507353febe253b4 Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYzRjNGE1MmM0YmJkNWY3OWYxZjI5MDc3MjUwNzM1M2ZlYmUyNTNiNCJ9 END_NESTED_COMMIT --- .release-please-manifest-submodules.json | 1 + .../apiv1/aiplatformpb/model_monitoring.pb.go | 1 + .../apiv1/feature_online_store_client.go | 4 + .../aiplatformpb/model_monitoring.pb.go | 1 + .../apiv1beta1/feature_online_store_client.go | 6 + dataproc/apiv1/auxiliary.go | 286 + dataproc/apiv1/dataprocpb/operations.pb.go | 539 +- .../apiv1/dataprocpb/session_templates.pb.go | 1165 + dataproc/apiv1/dataprocpb/sessions.pb.go | 1628 ++ dataproc/apiv1/dataprocpb/shared.pb.go | 928 +- dataproc/apiv1/gapic_metadata.json | 268 + dataproc/apiv1/session_controller_client.go | 1574 ++ .../session_controller_client_example_test.go | 384 + .../session_template_controller_client.go | 1413 ++ ...template_controller_client_example_test.go | 367 + go.work | 1 + go.work.sum | 3 + internal/.repo-metadata-full.json | 10 + .../CancelOperation/main.go | 51 + .../CreateSession/main.go | 58 + .../DeleteOperation/main.go | 51 + .../DeleteSession/main.go | 58 + .../GetIamPolicy/main.go | 53 + .../GetOperation/main.go | 53 + .../GetSession/main.go | 53 + .../ListOperations/main.go | 60 + .../ListSessions/main.go | 60 + .../SetIamPolicy/main.go | 53 + .../TerminateSession/main.go | 58 + .../TestIamPermissions/main.go | 53 + .../CancelOperation/main.go | 51 + .../CreateSessionTemplate/main.go | 53 + .../DeleteOperation/main.go | 51 + .../DeleteSessionTemplate/main.go | 51 + .../GetIamPolicy/main.go | 53 + .../GetOperation/main.go | 53 + .../GetSessionTemplate/main.go | 53 + .../ListOperations/main.go | 60 + .../ListSessionTemplates/main.go | 60 + .../SetIamPolicy/main.go | 53 + .../TestIamPermissions/main.go | 53 + .../UpdateSessionTemplate/main.go | 53 + ...pet_metadata.google.cloud.dataproc.v1.json | 1099 + internal/generated/snippets/go.mod | 2 + .../AddApplicationStreamInput/main.go | 58 + .../AppPlatformClient/CancelOperation/main.go | 51 + .../CreateApplication/main.go | 58 + .../CreateApplicationInstances/main.go | 58 + .../AppPlatformClient/CreateDraft/main.go | 58 + .../AppPlatformClient/CreateProcessor/main.go | 58 + .../DeleteApplication/main.go | 56 + .../DeleteApplicationInstances/main.go | 58 + .../AppPlatformClient/DeleteDraft/main.go | 56 + .../AppPlatformClient/DeleteOperation/main.go | 51 + .../AppPlatformClient/DeleteProcessor/main.go | 56 + .../DeployApplication/main.go | 58 + .../AppPlatformClient/GetApplication/main.go | 53 + .../apiv1/AppPlatformClient/GetDraft/main.go | 53 + .../AppPlatformClient/GetInstance/main.go | 53 + .../AppPlatformClient/GetOperation/main.go | 53 + .../AppPlatformClient/GetProcessor/main.go | 53 + .../ListApplications/main.go | 60 + .../AppPlatformClient/ListDrafts/main.go | 60 + .../AppPlatformClient/ListInstances/main.go | 60 + .../AppPlatformClient/ListOperations/main.go | 60 + .../ListPrebuiltProcessors/main.go | 53 + .../AppPlatformClient/ListProcessors/main.go | 60 + .../RemoveApplicationStreamInput/main.go | 58 + .../UndeployApplication/main.go | 58 + .../UpdateApplication/main.go | 58 + .../UpdateApplicationInstances/main.go | 58 + .../UpdateApplicationStreamInput/main.go | 58 + .../AppPlatformClient/UpdateDraft/main.go | 58 + .../AppPlatformClient/UpdateProcessor/main.go | 58 + .../HealthCheckClient/CancelOperation/main.go | 51 + .../HealthCheckClient/DeleteOperation/main.go | 51 + .../HealthCheckClient/GetOperation/main.go | 53 + .../HealthCheckClient/HealthCheck/main.go | 53 + .../HealthCheckClient/ListOperations/main.go | 60 + .../BatchRunProcess/main.go | 58 + .../CancelOperation/main.go | 51 + .../CreateAnalysis/main.go | 58 + .../CreateOperator/main.go | 58 + .../CreateProcess/main.go | 58 + .../DeleteAnalysis/main.go | 56 + .../DeleteOperation/main.go | 51 + .../DeleteOperator/main.go | 56 + .../DeleteProcess/main.go | 56 + .../GetAnalysis/main.go | 53 + .../GetOperation/main.go | 53 + .../GetOperator/main.go | 53 + .../GetProcess/main.go | 53 + .../ListAnalyses/main.go | 60 + .../ListOperations/main.go | 60 + .../ListOperators/main.go | 60 + .../ListProcesses/main.go | 60 + .../ListPublicOperators/main.go | 60 + .../ResolveOperatorInfo/main.go | 53 + .../UpdateAnalysis/main.go | 58 + .../UpdateOperator/main.go | 58 + .../UpdateProcess/main.go | 58 + .../StreamingClient/AcquireLease/main.go | 53 + .../StreamingClient/CancelOperation/main.go | 51 + .../StreamingClient/DeleteOperation/main.go | 51 + .../StreamingClient/GetOperation/main.go | 53 + .../StreamingClient/ListOperations/main.go | 60 + .../StreamingClient/ReceiveEvents/main.go | 69 + .../StreamingClient/ReceivePackets/main.go | 69 + .../StreamingClient/ReleaseLease/main.go | 53 + .../apiv1/StreamingClient/RenewLease/main.go | 53 + .../apiv1/StreamingClient/SendPackets/main.go | 69 + .../StreamsClient/CancelOperation/main.go | 51 + .../apiv1/StreamsClient/CreateCluster/main.go | 58 + .../apiv1/StreamsClient/CreateEvent/main.go | 58 + .../apiv1/StreamsClient/CreateSeries/main.go | 58 + .../apiv1/StreamsClient/CreateStream/main.go | 58 + .../apiv1/StreamsClient/DeleteCluster/main.go | 56 + .../apiv1/StreamsClient/DeleteEvent/main.go | 56 + .../StreamsClient/DeleteOperation/main.go | 51 + .../apiv1/StreamsClient/DeleteSeries/main.go | 56 + .../apiv1/StreamsClient/DeleteStream/main.go | 56 + .../GenerateStreamHlsToken/main.go | 53 + .../apiv1/StreamsClient/GetCluster/main.go | 53 + .../apiv1/StreamsClient/GetEvent/main.go | 53 + .../apiv1/StreamsClient/GetOperation/main.go | 53 + .../apiv1/StreamsClient/GetSeries/main.go | 53 + .../apiv1/StreamsClient/GetStream/main.go | 53 + .../StreamsClient/GetStreamThumbnail/main.go | 58 + .../apiv1/StreamsClient/ListClusters/main.go | 60 + .../apiv1/StreamsClient/ListEvents/main.go | 60 + .../StreamsClient/ListOperations/main.go | 60 + .../apiv1/StreamsClient/ListSeries/main.go | 60 + .../apiv1/StreamsClient/ListStreams/main.go | 60 + .../StreamsClient/MaterializeChannel/main.go | 58 + .../apiv1/StreamsClient/UpdateCluster/main.go | 58 + .../apiv1/StreamsClient/UpdateEvent/main.go | 58 + .../apiv1/StreamsClient/UpdateSeries/main.go | 58 + .../apiv1/StreamsClient/UpdateStream/main.go | 58 + .../WarehouseClient/AddCollectionItem/main.go | 53 + .../WarehouseClient/AnalyzeAsset/main.go | 58 + .../WarehouseClient/AnalyzeCorpus/main.go | 58 + .../WarehouseClient/CancelOperation/main.go | 51 + .../apiv1/WarehouseClient/ClipAsset/main.go | 53 + .../WarehouseClient/CreateAnnotation/main.go | 53 + .../apiv1/WarehouseClient/CreateAsset/main.go | 53 + .../WarehouseClient/CreateCollection/main.go | 58 + .../WarehouseClient/CreateCorpus/main.go | 58 + .../WarehouseClient/CreateDataSchema/main.go | 53 + .../apiv1/WarehouseClient/CreateIndex/main.go | 58 + .../CreateIndexEndpoint/main.go | 58 + .../CreateSearchConfig/main.go | 53 + .../CreateSearchHypernym/main.go | 53 + .../WarehouseClient/DeleteAnnotation/main.go | 51 + .../apiv1/WarehouseClient/DeleteAsset/main.go | 56 + .../WarehouseClient/DeleteCollection/main.go | 56 + .../WarehouseClient/DeleteCorpus/main.go | 51 + .../WarehouseClient/DeleteDataSchema/main.go | 51 + .../apiv1/WarehouseClient/DeleteIndex/main.go | 56 + .../DeleteIndexEndpoint/main.go | 56 + .../WarehouseClient/DeleteOperation/main.go | 51 + .../DeleteSearchConfig/main.go | 51 + .../DeleteSearchHypernym/main.go | 51 + .../apiv1/WarehouseClient/DeployIndex/main.go | 58 + .../WarehouseClient/GenerateHlsUri/main.go | 53 + .../GenerateRetrievalUrl/main.go | 53 + .../WarehouseClient/GetAnnotation/main.go | 53 + .../apiv1/WarehouseClient/GetAsset/main.go | 53 + .../WarehouseClient/GetCollection/main.go | 53 + .../apiv1/WarehouseClient/GetCorpus/main.go | 53 + .../WarehouseClient/GetDataSchema/main.go | 53 + .../apiv1/WarehouseClient/GetIndex/main.go | 53 + .../WarehouseClient/GetIndexEndpoint/main.go | 53 + .../WarehouseClient/GetOperation/main.go | 53 + .../WarehouseClient/GetSearchConfig/main.go | 53 + .../WarehouseClient/GetSearchHypernym/main.go | 53 + .../WarehouseClient/ImportAssets/main.go | 58 + .../apiv1/WarehouseClient/IndexAsset/main.go | 58 + .../apiv1/WarehouseClient/IngestAsset/main.go | 69 + .../WarehouseClient/ListAnnotations/main.go | 60 + .../apiv1/WarehouseClient/ListAssets/main.go | 60 + .../WarehouseClient/ListCollections/main.go | 60 + .../apiv1/WarehouseClient/ListCorpora/main.go | 60 + .../WarehouseClient/ListDataSchemas/main.go | 60 + .../ListIndexEndpoints/main.go | 60 + .../apiv1/WarehouseClient/ListIndexes/main.go | 60 + .../WarehouseClient/ListOperations/main.go | 60 + .../WarehouseClient/ListSearchConfigs/main.go | 60 + .../ListSearchHypernyms/main.go | 60 + .../RemoveCollectionItem/main.go | 53 + .../WarehouseClient/RemoveIndexAsset/main.go | 58 + .../WarehouseClient/SearchAssets/main.go | 60 + .../SearchIndexEndpoint/main.go | 60 + .../WarehouseClient/UndeployIndex/main.go | 58 + .../WarehouseClient/UpdateAnnotation/main.go | 53 + .../apiv1/WarehouseClient/UpdateAsset/main.go | 53 + .../WarehouseClient/UpdateCollection/main.go | 53 + .../WarehouseClient/UpdateCorpus/main.go | 53 + .../WarehouseClient/UpdateDataSchema/main.go | 53 + .../apiv1/WarehouseClient/UpdateIndex/main.go | 58 + .../UpdateIndexEndpoint/main.go | 58 + .../UpdateSearchConfig/main.go | 53 + .../UpdateSearchHypernym/main.go | 53 + .../apiv1/WarehouseClient/UploadAsset/main.go | 58 + .../ViewCollectionItems/main.go | 60 + .../WarehouseClient/ViewIndexedAssets/main.go | 60 + ...pet_metadata.google.cloud.visionai.v1.json | 7388 ++++++ release-please-config-yoshi-submodules.json | 3 + visionai/CHANGES.md | 1 + visionai/README.md | 55 + visionai/apiv1/app_platform_client.go | 3891 +++ .../apiv1/app_platform_client_example_test.go | 915 + visionai/apiv1/auxiliary.go | 4778 ++++ visionai/apiv1/doc.go | 124 + visionai/apiv1/gapic_metadata.json | 1703 ++ visionai/apiv1/health_check_client.go | 717 + .../apiv1/health_check_client_example_test.go | 187 + visionai/apiv1/live_video_analytics_client.go | 3113 +++ ...ive_video_analytics_client_example_test.go | 680 + visionai/apiv1/streaming_client.go | 1005 + .../apiv1/streaming_client_example_test.go | 358 + visionai/apiv1/streams_client.go | 3508 +++ visionai/apiv1/streams_client_example_test.go | 823 + visionai/apiv1/version.go | 23 + visionai/apiv1/visionaipb/annotations.pb.go | 4457 ++++ visionai/apiv1/visionaipb/common.pb.go | 573 + .../apiv1/visionaipb/health_service.pb.go | 454 + visionai/apiv1/visionaipb/lva.pb.go | 1426 ++ visionai/apiv1/visionaipb/lva_resources.pb.go | 664 + visionai/apiv1/visionaipb/lva_service.pb.go | 3672 +++ visionai/apiv1/visionaipb/platform.pb.go | 11953 ++++++++++ .../visionaipb/streaming_resources.pb.go | 949 + .../apiv1/visionaipb/streaming_service.pb.go | 2773 +++ .../apiv1/visionaipb/streams_resources.pb.go | 860 + .../apiv1/visionaipb/streams_service.pb.go | 4190 ++++ visionai/apiv1/visionaipb/warehouse.pb.go | 19909 ++++++++++++++++ visionai/apiv1/warehouse_client.go | 9046 +++++++ .../apiv1/warehouse_client_example_test.go | 1903 ++ visionai/go.mod | 41 + visionai/go.sum | 185 + visionai/internal/version.go | 20 + 240 files changed, 111893 insertions(+), 486 deletions(-) create mode 100755 dataproc/apiv1/dataprocpb/session_templates.pb.go create mode 100755 dataproc/apiv1/dataprocpb/sessions.pb.go create mode 100755 dataproc/apiv1/session_controller_client.go create mode 100644 dataproc/apiv1/session_controller_client_example_test.go create mode 100755 dataproc/apiv1/session_template_controller_client.go create mode 100644 dataproc/apiv1/session_template_controller_client_example_test.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CreateSession/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteSession/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetSession/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListOperations/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListSessions/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TerminateSession/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CreateSessionTemplate/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteSessionTemplate/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetIamPolicy/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetOperation/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetSessionTemplate/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListOperations/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListSessionTemplates/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/SetIamPolicy/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/TestIamPermissions/main.go create mode 100644 internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/UpdateSessionTemplate/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/AddApplicationStreamInput/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplicationInstances/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateDraft/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateProcessor/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplicationInstances/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteDraft/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteProcessor/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeployApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetDraft/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetInstance/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetProcessor/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListApplications/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListDrafts/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListInstances/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListPrebuiltProcessors/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListProcessors/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/RemoveApplicationStreamInput/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UndeployApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplication/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationInstances/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationStreamInput/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateDraft/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateProcessor/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/HealthCheckClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/HealthCheckClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/HealthCheckClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/HealthCheckClient/HealthCheck/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/HealthCheckClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/BatchRunProcess/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateAnalysis/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateOperator/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateProcess/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteAnalysis/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperator/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteProcess/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetAnalysis/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperator/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetProcess/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListAnalyses/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperators/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListProcesses/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListPublicOperators/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ResolveOperatorInfo/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateAnalysis/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateOperator/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateProcess/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/AcquireLease/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/ReceiveEvents/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/ReceivePackets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/ReleaseLease/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/RenewLease/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamingClient/SendPackets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/CreateCluster/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/CreateEvent/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/CreateSeries/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/CreateStream/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteCluster/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteEvent/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteSeries/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteStream/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GenerateStreamHlsToken/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetCluster/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetEvent/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetSeries/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetStream/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/GetStreamThumbnail/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/ListClusters/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/ListEvents/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/ListSeries/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/ListStreams/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/MaterializeChannel/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateCluster/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateEvent/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateSeries/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateStream/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/AddCollectionItem/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeCorpus/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CancelOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ClipAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAnnotation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCollection/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCorpus/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateDataSchema/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndexEndpoint/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchConfig/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchHypernym/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAnnotation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCollection/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCorpus/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteDataSchema/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndexEndpoint/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchConfig/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchHypernym/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/DeployIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateHlsUri/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateRetrievalUrl/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAnnotation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCollection/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCorpus/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetDataSchema/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndexEndpoint/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetOperation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchConfig/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchHypernym/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ImportAssets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/IndexAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/IngestAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAnnotations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAssets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCollections/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCorpora/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListDataSchemas/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexEndpoints/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexes/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListOperations/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchConfigs/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchHypernyms/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveCollectionItem/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveIndexAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchAssets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchIndexEndpoint/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UndeployIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAnnotation/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCollection/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCorpus/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateDataSchema/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndex/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndexEndpoint/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchConfig/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchHypernym/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/UploadAsset/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewCollectionItems/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewIndexedAssets/main.go create mode 100644 internal/generated/snippets/visionai/apiv1/snippet_metadata.google.cloud.visionai.v1.json create mode 100644 visionai/CHANGES.md create mode 100644 visionai/README.md create mode 100755 visionai/apiv1/app_platform_client.go create mode 100644 visionai/apiv1/app_platform_client_example_test.go create mode 100755 visionai/apiv1/auxiliary.go create mode 100755 visionai/apiv1/doc.go create mode 100644 visionai/apiv1/gapic_metadata.json create mode 100755 visionai/apiv1/health_check_client.go create mode 100644 visionai/apiv1/health_check_client_example_test.go create mode 100755 visionai/apiv1/live_video_analytics_client.go create mode 100644 visionai/apiv1/live_video_analytics_client_example_test.go create mode 100755 visionai/apiv1/streaming_client.go create mode 100644 visionai/apiv1/streaming_client_example_test.go create mode 100755 visionai/apiv1/streams_client.go create mode 100644 visionai/apiv1/streams_client_example_test.go create mode 100644 visionai/apiv1/version.go create mode 100755 visionai/apiv1/visionaipb/annotations.pb.go create mode 100755 visionai/apiv1/visionaipb/common.pb.go create mode 100755 visionai/apiv1/visionaipb/health_service.pb.go create mode 100755 visionai/apiv1/visionaipb/lva.pb.go create mode 100755 visionai/apiv1/visionaipb/lva_resources.pb.go create mode 100755 visionai/apiv1/visionaipb/lva_service.pb.go create mode 100755 visionai/apiv1/visionaipb/platform.pb.go create mode 100755 visionai/apiv1/visionaipb/streaming_resources.pb.go create mode 100755 visionai/apiv1/visionaipb/streaming_service.pb.go create mode 100755 visionai/apiv1/visionaipb/streams_resources.pb.go create mode 100755 visionai/apiv1/visionaipb/streams_service.pb.go create mode 100755 visionai/apiv1/visionaipb/warehouse.pb.go create mode 100755 visionai/apiv1/warehouse_client.go create mode 100644 visionai/apiv1/warehouse_client_example_test.go create mode 100644 visionai/go.mod create mode 100644 visionai/go.sum create mode 100644 visionai/internal/version.go diff --git a/.release-please-manifest-submodules.json b/.release-please-manifest-submodules.json index d018a3bb073..2bea0dfa64d 100644 --- a/.release-please-manifest-submodules.json +++ b/.release-please-manifest-submodules.json @@ -129,6 +129,7 @@ "video": "1.20.3", "videointelligence": "1.11.4", "vision": "2.7.5", + "visionai": "0.0.0", "vmmigration": "1.7.4", "vmwareengine": "1.1.0", "vpcaccess": "1.7.4", diff --git a/aiplatform/apiv1/aiplatformpb/model_monitoring.pb.go b/aiplatform/apiv1/aiplatformpb/model_monitoring.pb.go index a4f3c17dce6..b2c651ca22f 100755 --- a/aiplatform/apiv1/aiplatformpb/model_monitoring.pb.go +++ b/aiplatform/apiv1/aiplatformpb/model_monitoring.pb.go @@ -167,6 +167,7 @@ func (x *ModelMonitoringObjectiveConfig) GetExplanationConfig() *ModelMonitoring return nil } +// The alert config for model monitoring. type ModelMonitoringAlertConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/aiplatform/apiv1/feature_online_store_client.go b/aiplatform/apiv1/feature_online_store_client.go index 838db0218c2..9ef3f39630d 100755 --- a/aiplatform/apiv1/feature_online_store_client.go +++ b/aiplatform/apiv1/feature_online_store_client.go @@ -102,6 +102,8 @@ type internalFeatureOnlineStoreClient interface { // 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. +// +// A service for fetching feature values from the online store. type FeatureOnlineStoreClient struct { // The internal transport-dependent client. internalClient internalFeatureOnlineStoreClient @@ -224,6 +226,8 @@ type featureOnlineStoreGRPCClient struct { // 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. +// +// A service for fetching feature values from the online store. func NewFeatureOnlineStoreClient(ctx context.Context, opts ...option.ClientOption) (*FeatureOnlineStoreClient, error) { clientOpts := defaultFeatureOnlineStoreGRPCClientOptions() if newFeatureOnlineStoreClientHook != nil { diff --git a/aiplatform/apiv1beta1/aiplatformpb/model_monitoring.pb.go b/aiplatform/apiv1beta1/aiplatformpb/model_monitoring.pb.go index 8db063db7b6..bb37b81811d 100755 --- a/aiplatform/apiv1beta1/aiplatformpb/model_monitoring.pb.go +++ b/aiplatform/apiv1beta1/aiplatformpb/model_monitoring.pb.go @@ -252,6 +252,7 @@ func (x *ModelMonitoringObjectiveConfig) GetExplanationConfig() *ModelMonitoring return nil } +// The alert config for model monitoring. type ModelMonitoringAlertConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/aiplatform/apiv1beta1/feature_online_store_client.go b/aiplatform/apiv1beta1/feature_online_store_client.go index 4d52c09cefa..22371b11711 100755 --- a/aiplatform/apiv1beta1/feature_online_store_client.go +++ b/aiplatform/apiv1beta1/feature_online_store_client.go @@ -128,6 +128,8 @@ type internalFeatureOnlineStoreClient interface { // 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. +// +// A service for fetching feature values from the online store. type FeatureOnlineStoreClient struct { // The internal transport-dependent client. internalClient internalFeatureOnlineStoreClient @@ -257,6 +259,8 @@ type featureOnlineStoreGRPCClient struct { // 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. +// +// A service for fetching feature values from the online store. func NewFeatureOnlineStoreClient(ctx context.Context, opts ...option.ClientOption) (*FeatureOnlineStoreClient, error) { clientOpts := defaultFeatureOnlineStoreGRPCClientOptions() if newFeatureOnlineStoreClientHook != nil { @@ -327,6 +331,8 @@ type featureOnlineStoreRESTClient struct { } // NewFeatureOnlineStoreRESTClient creates a new feature online store service rest client. +// +// A service for fetching feature values from the online store. func NewFeatureOnlineStoreRESTClient(ctx context.Context, opts ...option.ClientOption) (*FeatureOnlineStoreClient, error) { clientOpts := append(defaultFeatureOnlineStoreRESTClientOptions(), opts...) httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) diff --git a/dataproc/apiv1/auxiliary.go b/dataproc/apiv1/auxiliary.go index 2aa84c0af4b..d971a7414b6 100755 --- a/dataproc/apiv1/auxiliary.go +++ b/dataproc/apiv1/auxiliary.go @@ -219,6 +219,70 @@ func (op *CreateNodeGroupOperation) Name() string { return op.lro.Name() } +// CreateSessionOperation manages a long-running operation from CreateSession. +type CreateSessionOperation 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 *CreateSessionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *CreateSessionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *CreateSessionOperation) Metadata() (*dataprocpb.SessionOperationMetadata, error) { + var meta dataprocpb.SessionOperationMetadata + 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 *CreateSessionOperation) 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 *CreateSessionOperation) Name() string { + return op.lro.Name() +} + // DeleteClusterOperation manages a long-running operation from DeleteCluster. type DeleteClusterOperation struct { lro *longrunning.Operation @@ -272,6 +336,70 @@ func (op *DeleteClusterOperation) Name() string { return op.lro.Name() } +// DeleteSessionOperation manages a long-running operation from DeleteSession. +type DeleteSessionOperation 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 *DeleteSessionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *DeleteSessionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *DeleteSessionOperation) Metadata() (*dataprocpb.SessionOperationMetadata, error) { + var meta dataprocpb.SessionOperationMetadata + 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 *DeleteSessionOperation) 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 *DeleteSessionOperation) Name() string { + return op.lro.Name() +} + // DiagnoseClusterOperation manages a long-running operation from DiagnoseCluster. type DiagnoseClusterOperation struct { lro *longrunning.Operation @@ -698,6 +826,70 @@ func (op *SubmitJobAsOperationOperation) Name() string { return op.lro.Name() } +// TerminateSessionOperation manages a long-running operation from TerminateSession. +type TerminateSessionOperation 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 *TerminateSessionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *TerminateSessionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*dataprocpb.Session, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp dataprocpb.Session + 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 *TerminateSessionOperation) Metadata() (*dataprocpb.SessionOperationMetadata, error) { + var meta dataprocpb.SessionOperationMetadata + 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 *TerminateSessionOperation) 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 *TerminateSessionOperation) Name() string { + return op.lro.Name() +} + // UpdateClusterOperation manages a long-running operation from UpdateCluster. type UpdateClusterOperation struct { lro *longrunning.Operation @@ -997,6 +1189,100 @@ func (it *OperationIterator) takeBuf() interface{} { return b } +// SessionIterator manages a stream of *dataprocpb.Session. +type SessionIterator struct { + items []*dataprocpb.Session + 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 []*dataprocpb.Session, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SessionIterator) 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 *SessionIterator) Next() (*dataprocpb.Session, error) { + var item *dataprocpb.Session + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SessionIterator) bufLen() int { + return len(it.items) +} + +func (it *SessionIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SessionTemplateIterator manages a stream of *dataprocpb.SessionTemplate. +type SessionTemplateIterator struct { + items []*dataprocpb.SessionTemplate + 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 []*dataprocpb.SessionTemplate, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SessionTemplateIterator) 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 *SessionTemplateIterator) Next() (*dataprocpb.SessionTemplate, error) { + var item *dataprocpb.SessionTemplate + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SessionTemplateIterator) bufLen() int { + return len(it.items) +} + +func (it *SessionTemplateIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + // WorkflowTemplateIterator manages a stream of *dataprocpb.WorkflowTemplate. type WorkflowTemplateIterator struct { items []*dataprocpb.WorkflowTemplate diff --git a/dataproc/apiv1/dataprocpb/operations.pb.go b/dataproc/apiv1/dataprocpb/operations.pb.go index 1b157cd7ac3..58ae0f52e7c 100755 --- a/dataproc/apiv1/dataprocpb/operations.pb.go +++ b/dataproc/apiv1/dataprocpb/operations.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// 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. @@ -86,6 +86,63 @@ func (BatchOperationMetadata_BatchOperationType) EnumDescriptor() ([]byte, []int return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{0, 0} } +// Operation type for Session resources +type SessionOperationMetadata_SessionOperationType int32 + +const ( + // Session operation type is unknown. + SessionOperationMetadata_SESSION_OPERATION_TYPE_UNSPECIFIED SessionOperationMetadata_SessionOperationType = 0 + // Create Session operation type. + SessionOperationMetadata_CREATE SessionOperationMetadata_SessionOperationType = 1 + // Terminate Session operation type. + SessionOperationMetadata_TERMINATE SessionOperationMetadata_SessionOperationType = 2 + // Delete Session operation type. + SessionOperationMetadata_DELETE SessionOperationMetadata_SessionOperationType = 3 +) + +// Enum value maps for SessionOperationMetadata_SessionOperationType. +var ( + SessionOperationMetadata_SessionOperationType_name = map[int32]string{ + 0: "SESSION_OPERATION_TYPE_UNSPECIFIED", + 1: "CREATE", + 2: "TERMINATE", + 3: "DELETE", + } + SessionOperationMetadata_SessionOperationType_value = map[string]int32{ + "SESSION_OPERATION_TYPE_UNSPECIFIED": 0, + "CREATE": 1, + "TERMINATE": 2, + "DELETE": 3, + } +) + +func (x SessionOperationMetadata_SessionOperationType) Enum() *SessionOperationMetadata_SessionOperationType { + p := new(SessionOperationMetadata_SessionOperationType) + *p = x + return p +} + +func (x SessionOperationMetadata_SessionOperationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SessionOperationMetadata_SessionOperationType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataproc_v1_operations_proto_enumTypes[1].Descriptor() +} + +func (SessionOperationMetadata_SessionOperationType) Type() protoreflect.EnumType { + return &file_google_cloud_dataproc_v1_operations_proto_enumTypes[1] +} + +func (x SessionOperationMetadata_SessionOperationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SessionOperationMetadata_SessionOperationType.Descriptor instead. +func (SessionOperationMetadata_SessionOperationType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{1, 0} +} + // The operation state. type ClusterOperationStatus_State int32 @@ -127,11 +184,11 @@ func (x ClusterOperationStatus_State) String() string { } func (ClusterOperationStatus_State) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataproc_v1_operations_proto_enumTypes[1].Descriptor() + return file_google_cloud_dataproc_v1_operations_proto_enumTypes[2].Descriptor() } func (ClusterOperationStatus_State) Type() protoreflect.EnumType { - return &file_google_cloud_dataproc_v1_operations_proto_enumTypes[1] + return &file_google_cloud_dataproc_v1_operations_proto_enumTypes[2] } func (x ClusterOperationStatus_State) Number() protoreflect.EnumNumber { @@ -140,7 +197,7 @@ func (x ClusterOperationStatus_State) Number() protoreflect.EnumNumber { // Deprecated: Use ClusterOperationStatus_State.Descriptor instead. func (ClusterOperationStatus_State) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{1, 0} + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{2, 0} } // Operation type for node group resources. @@ -188,11 +245,11 @@ func (x NodeGroupOperationMetadata_NodeGroupOperationType) String() string { } func (NodeGroupOperationMetadata_NodeGroupOperationType) Descriptor() protoreflect.EnumDescriptor { - return file_google_cloud_dataproc_v1_operations_proto_enumTypes[2].Descriptor() + return file_google_cloud_dataproc_v1_operations_proto_enumTypes[3].Descriptor() } func (NodeGroupOperationMetadata_NodeGroupOperationType) Type() protoreflect.EnumType { - return &file_google_cloud_dataproc_v1_operations_proto_enumTypes[2] + return &file_google_cloud_dataproc_v1_operations_proto_enumTypes[3] } func (x NodeGroupOperationMetadata_NodeGroupOperationType) Number() protoreflect.EnumNumber { @@ -201,7 +258,7 @@ func (x NodeGroupOperationMetadata_NodeGroupOperationType) Number() protoreflect // Deprecated: Use NodeGroupOperationMetadata_NodeGroupOperationType.Descriptor instead. func (NodeGroupOperationMetadata_NodeGroupOperationType) EnumDescriptor() ([]byte, []int) { - return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{3, 0} + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{4, 0} } // Metadata describing the Batch operation. @@ -316,6 +373,118 @@ func (x *BatchOperationMetadata) GetWarnings() []string { return nil } +// Metadata describing the Session operation. +type SessionOperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the session for the operation. + Session string `protobuf:"bytes,1,opt,name=session,proto3" json:"session,omitempty"` + // Session UUID for the operation. + SessionUuid string `protobuf:"bytes,2,opt,name=session_uuid,json=sessionUuid,proto3" json:"session_uuid,omitempty"` + // The time when the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // The time when the operation was finished. + DoneTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=done_time,json=doneTime,proto3" json:"done_time,omitempty"` + // The operation type. + OperationType SessionOperationMetadata_SessionOperationType `protobuf:"varint,6,opt,name=operation_type,json=operationType,proto3,enum=google.cloud.dataproc.v1.SessionOperationMetadata_SessionOperationType" json:"operation_type,omitempty"` + // Short description of the operation. + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` + // Labels associated with the operation. + Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Warnings encountered during operation execution. + Warnings []string `protobuf:"bytes,9,rep,name=warnings,proto3" json:"warnings,omitempty"` +} + +func (x *SessionOperationMetadata) Reset() { + *x = SessionOperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SessionOperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionOperationMetadata) ProtoMessage() {} + +func (x *SessionOperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_operations_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 SessionOperationMetadata.ProtoReflect.Descriptor instead. +func (*SessionOperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{1} +} + +func (x *SessionOperationMetadata) GetSession() string { + if x != nil { + return x.Session + } + return "" +} + +func (x *SessionOperationMetadata) GetSessionUuid() string { + if x != nil { + return x.SessionUuid + } + return "" +} + +func (x *SessionOperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *SessionOperationMetadata) GetDoneTime() *timestamppb.Timestamp { + if x != nil { + return x.DoneTime + } + return nil +} + +func (x *SessionOperationMetadata) GetOperationType() SessionOperationMetadata_SessionOperationType { + if x != nil { + return x.OperationType + } + return SessionOperationMetadata_SESSION_OPERATION_TYPE_UNSPECIFIED +} + +func (x *SessionOperationMetadata) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SessionOperationMetadata) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *SessionOperationMetadata) GetWarnings() []string { + if x != nil { + return x.Warnings + } + return nil +} + // The status of the operation. type ClusterOperationStatus struct { state protoimpl.MessageState @@ -335,7 +504,7 @@ type ClusterOperationStatus struct { func (x *ClusterOperationStatus) Reset() { *x = ClusterOperationStatus{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[1] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -348,7 +517,7 @@ func (x *ClusterOperationStatus) String() string { func (*ClusterOperationStatus) ProtoMessage() {} func (x *ClusterOperationStatus) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[1] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -361,7 +530,7 @@ func (x *ClusterOperationStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterOperationStatus.ProtoReflect.Descriptor instead. func (*ClusterOperationStatus) Descriptor() ([]byte, []int) { - return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{1} + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{2} } func (x *ClusterOperationStatus) GetState() ClusterOperationStatus_State { @@ -421,7 +590,7 @@ type ClusterOperationMetadata struct { func (x *ClusterOperationMetadata) Reset() { *x = ClusterOperationMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[2] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -434,7 +603,7 @@ func (x *ClusterOperationMetadata) String() string { func (*ClusterOperationMetadata) ProtoMessage() {} func (x *ClusterOperationMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[2] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -447,7 +616,7 @@ func (x *ClusterOperationMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterOperationMetadata.ProtoReflect.Descriptor instead. func (*ClusterOperationMetadata) Descriptor() ([]byte, []int) { - return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{2} + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{3} } func (x *ClusterOperationMetadata) GetClusterName() string { @@ -540,7 +709,7 @@ type NodeGroupOperationMetadata struct { func (x *NodeGroupOperationMetadata) Reset() { *x = NodeGroupOperationMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[3] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -553,7 +722,7 @@ func (x *NodeGroupOperationMetadata) String() string { func (*NodeGroupOperationMetadata) ProtoMessage() {} func (x *NodeGroupOperationMetadata) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[3] + mi := &file_google_cloud_dataproc_v1_operations_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -566,7 +735,7 @@ func (x *NodeGroupOperationMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeGroupOperationMetadata.ProtoReflect.Descriptor instead. func (*NodeGroupOperationMetadata) Descriptor() ([]byte, []int) { - return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{3} + return file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP(), []int{4} } func (x *NodeGroupOperationMetadata) GetNodeGroupId() string { @@ -673,118 +842,157 @@ var file_google_cloud_dataproc_v1_operations_proto_rawDesc = []byte{ 0x0a, 0x20, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x41, 0x54, 0x43, 0x48, 0x10, 0x01, 0x22, - 0xb5, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, - 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 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, 0x0e, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x38, 0x0a, - 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, - 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, - 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, 0xd8, 0x04, 0x0a, 0x18, 0x43, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, - 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, + 0xf5, 0x04, 0x0a, 0x18, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x55, 0x75, 0x69, 0x64, 0x12, 0x3b, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x09, 0x64, 0x6f, 0x6e, 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, 0x52, 0x08, 0x64, 0x6f, 0x6e, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x6e, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x56, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 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, 0x65, 0x0a, 0x14, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x45, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, + 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x22, 0xb5, 0x02, 0x0a, 0x16, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0a, 0x69, 0x6e, 0x6e, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x38, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, + 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, + 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x03, 0x22, + 0xd8, 0x04, 0x0a, 0x18, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x26, 0x0a, 0x0c, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, - 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x75, 0x75, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, + 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x63, 0x68, + 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0xe5, 0x05, 0x0a, 0x1a, 0x4e, + 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, + 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x75, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x75, 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, + 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x72, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 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, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, + 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0e, 0x20, + 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x73, 0x12, 0x33, 0x0a, 0x13, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x42, - 0x03, 0xe0, 0x41, 0x03, 0x52, 0x11, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0xe5, 0x05, 0x0a, 0x1a, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x27, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x6e, - 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x55, 0x75, - 0x69, 0x64, 0x12, 0x4d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, - 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x5c, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, - 0x72, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x67, 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, 0x73, 0x0a, + 0x16, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x29, 0x0a, 0x25, 0x4e, 0x4f, 0x44, 0x45, 0x5f, + 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4f, 0x50, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, + 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, + 0x10, 0x04, 0x42, 0x6e, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4e, 0x6f, - 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 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, 0x03, 0x52, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x06, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, - 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, - 0x03, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x1f, 0x0a, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, - 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 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, 0x73, 0x0a, 0x16, 0x4e, 0x6f, 0x64, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x29, 0x0a, 0x25, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x4f, 0x50, - 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, - 0x45, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x0a, - 0x0a, 0x06, 0x52, 0x45, 0x53, 0x49, 0x5a, 0x45, 0x10, 0x04, 0x42, 0x6e, 0x0a, 0x1c, 0x63, 0x6f, - 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, - 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x3b, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x76, 0x31, 0x42, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 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, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -799,40 +1007,47 @@ func file_google_cloud_dataproc_v1_operations_proto_rawDescGZIP() []byte { return file_google_cloud_dataproc_v1_operations_proto_rawDescData } -var file_google_cloud_dataproc_v1_operations_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_dataproc_v1_operations_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_google_cloud_dataproc_v1_operations_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_google_cloud_dataproc_v1_operations_proto_msgTypes = make([]protoimpl.MessageInfo, 9) var file_google_cloud_dataproc_v1_operations_proto_goTypes = []interface{}{ (BatchOperationMetadata_BatchOperationType)(0), // 0: google.cloud.dataproc.v1.BatchOperationMetadata.BatchOperationType - (ClusterOperationStatus_State)(0), // 1: google.cloud.dataproc.v1.ClusterOperationStatus.State - (NodeGroupOperationMetadata_NodeGroupOperationType)(0), // 2: google.cloud.dataproc.v1.NodeGroupOperationMetadata.NodeGroupOperationType - (*BatchOperationMetadata)(nil), // 3: google.cloud.dataproc.v1.BatchOperationMetadata - (*ClusterOperationStatus)(nil), // 4: google.cloud.dataproc.v1.ClusterOperationStatus - (*ClusterOperationMetadata)(nil), // 5: google.cloud.dataproc.v1.ClusterOperationMetadata - (*NodeGroupOperationMetadata)(nil), // 6: google.cloud.dataproc.v1.NodeGroupOperationMetadata - nil, // 7: google.cloud.dataproc.v1.BatchOperationMetadata.LabelsEntry - nil, // 8: google.cloud.dataproc.v1.ClusterOperationMetadata.LabelsEntry - nil, // 9: google.cloud.dataproc.v1.NodeGroupOperationMetadata.LabelsEntry - (*timestamppb.Timestamp)(nil), // 10: google.protobuf.Timestamp + (SessionOperationMetadata_SessionOperationType)(0), // 1: google.cloud.dataproc.v1.SessionOperationMetadata.SessionOperationType + (ClusterOperationStatus_State)(0), // 2: google.cloud.dataproc.v1.ClusterOperationStatus.State + (NodeGroupOperationMetadata_NodeGroupOperationType)(0), // 3: google.cloud.dataproc.v1.NodeGroupOperationMetadata.NodeGroupOperationType + (*BatchOperationMetadata)(nil), // 4: google.cloud.dataproc.v1.BatchOperationMetadata + (*SessionOperationMetadata)(nil), // 5: google.cloud.dataproc.v1.SessionOperationMetadata + (*ClusterOperationStatus)(nil), // 6: google.cloud.dataproc.v1.ClusterOperationStatus + (*ClusterOperationMetadata)(nil), // 7: google.cloud.dataproc.v1.ClusterOperationMetadata + (*NodeGroupOperationMetadata)(nil), // 8: google.cloud.dataproc.v1.NodeGroupOperationMetadata + nil, // 9: google.cloud.dataproc.v1.BatchOperationMetadata.LabelsEntry + nil, // 10: google.cloud.dataproc.v1.SessionOperationMetadata.LabelsEntry + nil, // 11: google.cloud.dataproc.v1.ClusterOperationMetadata.LabelsEntry + nil, // 12: google.cloud.dataproc.v1.NodeGroupOperationMetadata.LabelsEntry + (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp } var file_google_cloud_dataproc_v1_operations_proto_depIdxs = []int32{ - 10, // 0: google.cloud.dataproc.v1.BatchOperationMetadata.create_time:type_name -> google.protobuf.Timestamp - 10, // 1: google.cloud.dataproc.v1.BatchOperationMetadata.done_time:type_name -> google.protobuf.Timestamp + 13, // 0: google.cloud.dataproc.v1.BatchOperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 13, // 1: google.cloud.dataproc.v1.BatchOperationMetadata.done_time:type_name -> google.protobuf.Timestamp 0, // 2: google.cloud.dataproc.v1.BatchOperationMetadata.operation_type:type_name -> google.cloud.dataproc.v1.BatchOperationMetadata.BatchOperationType - 7, // 3: google.cloud.dataproc.v1.BatchOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.BatchOperationMetadata.LabelsEntry - 1, // 4: google.cloud.dataproc.v1.ClusterOperationStatus.state:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus.State - 10, // 5: google.cloud.dataproc.v1.ClusterOperationStatus.state_start_time:type_name -> google.protobuf.Timestamp - 4, // 6: google.cloud.dataproc.v1.ClusterOperationMetadata.status:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus - 4, // 7: google.cloud.dataproc.v1.ClusterOperationMetadata.status_history:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus - 8, // 8: google.cloud.dataproc.v1.ClusterOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.ClusterOperationMetadata.LabelsEntry - 4, // 9: google.cloud.dataproc.v1.NodeGroupOperationMetadata.status:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus - 4, // 10: google.cloud.dataproc.v1.NodeGroupOperationMetadata.status_history:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus - 2, // 11: google.cloud.dataproc.v1.NodeGroupOperationMetadata.operation_type:type_name -> google.cloud.dataproc.v1.NodeGroupOperationMetadata.NodeGroupOperationType - 9, // 12: google.cloud.dataproc.v1.NodeGroupOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.NodeGroupOperationMetadata.LabelsEntry - 13, // [13:13] is the sub-list for method output_type - 13, // [13:13] 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 + 9, // 3: google.cloud.dataproc.v1.BatchOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.BatchOperationMetadata.LabelsEntry + 13, // 4: google.cloud.dataproc.v1.SessionOperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 13, // 5: google.cloud.dataproc.v1.SessionOperationMetadata.done_time:type_name -> google.protobuf.Timestamp + 1, // 6: google.cloud.dataproc.v1.SessionOperationMetadata.operation_type:type_name -> google.cloud.dataproc.v1.SessionOperationMetadata.SessionOperationType + 10, // 7: google.cloud.dataproc.v1.SessionOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.SessionOperationMetadata.LabelsEntry + 2, // 8: google.cloud.dataproc.v1.ClusterOperationStatus.state:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus.State + 13, // 9: google.cloud.dataproc.v1.ClusterOperationStatus.state_start_time:type_name -> google.protobuf.Timestamp + 6, // 10: google.cloud.dataproc.v1.ClusterOperationMetadata.status:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus + 6, // 11: google.cloud.dataproc.v1.ClusterOperationMetadata.status_history:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus + 11, // 12: google.cloud.dataproc.v1.ClusterOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.ClusterOperationMetadata.LabelsEntry + 6, // 13: google.cloud.dataproc.v1.NodeGroupOperationMetadata.status:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus + 6, // 14: google.cloud.dataproc.v1.NodeGroupOperationMetadata.status_history:type_name -> google.cloud.dataproc.v1.ClusterOperationStatus + 3, // 15: google.cloud.dataproc.v1.NodeGroupOperationMetadata.operation_type:type_name -> google.cloud.dataproc.v1.NodeGroupOperationMetadata.NodeGroupOperationType + 12, // 16: google.cloud.dataproc.v1.NodeGroupOperationMetadata.labels:type_name -> google.cloud.dataproc.v1.NodeGroupOperationMetadata.LabelsEntry + 17, // [17:17] is the sub-list for method output_type + 17, // [17:17] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_google_cloud_dataproc_v1_operations_proto_init() } @@ -854,7 +1069,7 @@ func file_google_cloud_dataproc_v1_operations_proto_init() { } } file_google_cloud_dataproc_v1_operations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterOperationStatus); i { + switch v := v.(*SessionOperationMetadata); i { case 0: return &v.state case 1: @@ -866,7 +1081,7 @@ func file_google_cloud_dataproc_v1_operations_proto_init() { } } file_google_cloud_dataproc_v1_operations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterOperationMetadata); i { + switch v := v.(*ClusterOperationStatus); i { case 0: return &v.state case 1: @@ -878,6 +1093,18 @@ func file_google_cloud_dataproc_v1_operations_proto_init() { } } file_google_cloud_dataproc_v1_operations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClusterOperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_operations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeGroupOperationMetadata); i { case 0: return &v.state @@ -895,8 +1122,8 @@ func file_google_cloud_dataproc_v1_operations_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataproc_v1_operations_proto_rawDesc, - NumEnums: 3, - NumMessages: 7, + NumEnums: 4, + NumMessages: 9, NumExtensions: 0, NumServices: 0, }, diff --git a/dataproc/apiv1/dataprocpb/session_templates.pb.go b/dataproc/apiv1/dataprocpb/session_templates.pb.go new file mode 100755 index 00000000000..f9ff3b2c50f --- /dev/null +++ b/dataproc/apiv1/dataprocpb/session_templates.pb.go @@ -0,0 +1,1165 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/dataproc/v1/session_templates.proto + +package dataprocpb + +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" + emptypb "google.golang.org/protobuf/types/known/emptypb" + 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) +) + +// A request to create a session template. +type CreateSessionTemplateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this session template will be created. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The session template to create. + SessionTemplate *SessionTemplate `protobuf:"bytes,3,opt,name=session_template,json=sessionTemplate,proto3" json:"session_template,omitempty"` +} + +func (x *CreateSessionTemplateRequest) Reset() { + *x = CreateSessionTemplateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSessionTemplateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSessionTemplateRequest) ProtoMessage() {} + +func (x *CreateSessionTemplateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 CreateSessionTemplateRequest.ProtoReflect.Descriptor instead. +func (*CreateSessionTemplateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateSessionTemplateRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSessionTemplateRequest) GetSessionTemplate() *SessionTemplate { + if x != nil { + return x.SessionTemplate + } + return nil +} + +// A request to update a session template. +type UpdateSessionTemplateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The updated session template. + SessionTemplate *SessionTemplate `protobuf:"bytes,1,opt,name=session_template,json=sessionTemplate,proto3" json:"session_template,omitempty"` +} + +func (x *UpdateSessionTemplateRequest) Reset() { + *x = UpdateSessionTemplateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSessionTemplateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSessionTemplateRequest) ProtoMessage() {} + +func (x *UpdateSessionTemplateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 UpdateSessionTemplateRequest.ProtoReflect.Descriptor instead. +func (*UpdateSessionTemplateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{1} +} + +func (x *UpdateSessionTemplateRequest) GetSessionTemplate() *SessionTemplate { + if x != nil { + return x.SessionTemplate + } + return nil +} + +// A request to get the resource representation for a session template. +type GetSessionTemplateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the session template to retrieve. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSessionTemplateRequest) Reset() { + *x = GetSessionTemplateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSessionTemplateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSessionTemplateRequest) ProtoMessage() {} + +func (x *GetSessionTemplateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 GetSessionTemplateRequest.ProtoReflect.Descriptor instead. +func (*GetSessionTemplateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{2} +} + +func (x *GetSessionTemplateRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// A request to list session templates in a project. +type ListSessionTemplatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent that owns this collection of session templates. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of sessions to return in each response. + // The service may return fewer than this value. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token received from a previous `ListSessions` call. + // Provide this token to retrieve the subsequent page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. A filter for the session templates to return in the response. + // Filters are case sensitive and have the following syntax: + // + // [field = value] AND [field [= value]] ... + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListSessionTemplatesRequest) Reset() { + *x = ListSessionTemplatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionTemplatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionTemplatesRequest) ProtoMessage() {} + +func (x *ListSessionTemplatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 ListSessionTemplatesRequest.ProtoReflect.Descriptor instead. +func (*ListSessionTemplatesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{3} +} + +func (x *ListSessionTemplatesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSessionTemplatesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSessionTemplatesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSessionTemplatesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// A list of session templates. +type ListSessionTemplatesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Session template list + SessionTemplates []*SessionTemplate `protobuf:"bytes,1,rep,name=session_templates,json=sessionTemplates,proto3" json:"session_templates,omitempty"` + // A token, which can be sent as `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 *ListSessionTemplatesResponse) Reset() { + *x = ListSessionTemplatesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionTemplatesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionTemplatesResponse) ProtoMessage() {} + +func (x *ListSessionTemplatesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 ListSessionTemplatesResponse.ProtoReflect.Descriptor instead. +func (*ListSessionTemplatesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{4} +} + +func (x *ListSessionTemplatesResponse) GetSessionTemplates() []*SessionTemplate { + if x != nil { + return x.SessionTemplates + } + return nil +} + +func (x *ListSessionTemplatesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// A request to delete a session template. +type DeleteSessionTemplateRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the session template resource to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteSessionTemplateRequest) Reset() { + *x = DeleteSessionTemplateRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSessionTemplateRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSessionTemplateRequest) ProtoMessage() {} + +func (x *DeleteSessionTemplateRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 DeleteSessionTemplateRequest.ProtoReflect.Descriptor instead. +func (*DeleteSessionTemplateRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteSessionTemplateRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// A representation of a session template. +type SessionTemplate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the session template. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Brief description of the template. + Description string `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The time when the template was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // The session configuration. + // + // Types that are assignable to SessionConfig: + // + // *SessionTemplate_JupyterSession + SessionConfig isSessionTemplate_SessionConfig `protobuf_oneof:"session_config"` + // Output only. The email address of the user who created the template. + Creator string `protobuf:"bytes,5,opt,name=creator,proto3" json:"creator,omitempty"` + // Optional. Labels to associate with sessions created using this template. + // Label **keys** must contain 1 to 63 characters, and must conform to + // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). + // Label **values** can be empty, but, if present, must contain 1 to 63 + // characters and conform to [RFC + // 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be + // associated with a session. + 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"` + // Optional. Runtime configuration for session execution. + RuntimeConfig *RuntimeConfig `protobuf:"bytes,7,opt,name=runtime_config,json=runtimeConfig,proto3" json:"runtime_config,omitempty"` + // Optional. Environment configuration for session execution. + EnvironmentConfig *EnvironmentConfig `protobuf:"bytes,8,opt,name=environment_config,json=environmentConfig,proto3" json:"environment_config,omitempty"` + // Output only. The time the template was last updated. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Output only. A session template UUID (Unique Universal Identifier). The + // service generates this value when it creates the session template. + Uuid string `protobuf:"bytes,12,opt,name=uuid,proto3" json:"uuid,omitempty"` +} + +func (x *SessionTemplate) Reset() { + *x = SessionTemplate{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SessionTemplate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SessionTemplate) ProtoMessage() {} + +func (x *SessionTemplate) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_session_templates_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 SessionTemplate.ProtoReflect.Descriptor instead. +func (*SessionTemplate) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP(), []int{6} +} + +func (x *SessionTemplate) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SessionTemplate) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *SessionTemplate) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (m *SessionTemplate) GetSessionConfig() isSessionTemplate_SessionConfig { + if m != nil { + return m.SessionConfig + } + return nil +} + +func (x *SessionTemplate) GetJupyterSession() *JupyterConfig { + if x, ok := x.GetSessionConfig().(*SessionTemplate_JupyterSession); ok { + return x.JupyterSession + } + return nil +} + +func (x *SessionTemplate) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +func (x *SessionTemplate) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *SessionTemplate) GetRuntimeConfig() *RuntimeConfig { + if x != nil { + return x.RuntimeConfig + } + return nil +} + +func (x *SessionTemplate) GetEnvironmentConfig() *EnvironmentConfig { + if x != nil { + return x.EnvironmentConfig + } + return nil +} + +func (x *SessionTemplate) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *SessionTemplate) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +type isSessionTemplate_SessionConfig interface { + isSessionTemplate_SessionConfig() +} + +type SessionTemplate_JupyterSession struct { + // Optional. Jupyter session config. + JupyterSession *JupyterConfig `protobuf:"bytes,3,opt,name=jupyter_session,json=jupyterSession,proto3,oneof"` +} + +func (*SessionTemplate_JupyterSession) isSessionTemplate_SessionConfig() {} + +var File_google_cloud_dataproc_v1_session_templates_proto protoreflect.FileDescriptor + +var file_google_cloud_dataproc_v1_session_templates_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 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, + 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 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, 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, 0xc2, 0x01, + 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x12, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x22, 0x79, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x59, 0x0a, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x60, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, + 0x0a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xc9, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x47, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x12, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xa3, 0x01, 0x0a, 0x1c, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x11, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x63, 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x43, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x2f, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x29, 0x0a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb0, 0x06, 0x0a, 0x0f, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 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, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x57, 0x0a, 0x0f, + 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x4a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x53, 0x0a, 0x0e, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, + 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 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, 0x75, 0x75, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 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, 0x71, 0xea, 0x41, 0x6e, 0x0a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x12, 0x43, 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, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x7d, 0x42, 0x10, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0xfa, 0x08, 0x0a, 0x19, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0xe4, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x22, 0x68, 0xda, 0x41, 0x17, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x34, 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, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xee, + 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x72, 0xda, 0x41, 0x10, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x59, 0x3a, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x32, 0x45, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xb9, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, + 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcc, 0x01, 0x0a, 0x14, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 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, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x45, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x15, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x12, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 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, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x36, 0x2a, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, + 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 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, 0x74, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 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, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, + 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_dataproc_v1_session_templates_proto_rawDescOnce sync.Once + file_google_cloud_dataproc_v1_session_templates_proto_rawDescData = file_google_cloud_dataproc_v1_session_templates_proto_rawDesc +) + +func file_google_cloud_dataproc_v1_session_templates_proto_rawDescGZIP() []byte { + file_google_cloud_dataproc_v1_session_templates_proto_rawDescOnce.Do(func() { + file_google_cloud_dataproc_v1_session_templates_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dataproc_v1_session_templates_proto_rawDescData) + }) + return file_google_cloud_dataproc_v1_session_templates_proto_rawDescData +} + +var file_google_cloud_dataproc_v1_session_templates_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_dataproc_v1_session_templates_proto_goTypes = []interface{}{ + (*CreateSessionTemplateRequest)(nil), // 0: google.cloud.dataproc.v1.CreateSessionTemplateRequest + (*UpdateSessionTemplateRequest)(nil), // 1: google.cloud.dataproc.v1.UpdateSessionTemplateRequest + (*GetSessionTemplateRequest)(nil), // 2: google.cloud.dataproc.v1.GetSessionTemplateRequest + (*ListSessionTemplatesRequest)(nil), // 3: google.cloud.dataproc.v1.ListSessionTemplatesRequest + (*ListSessionTemplatesResponse)(nil), // 4: google.cloud.dataproc.v1.ListSessionTemplatesResponse + (*DeleteSessionTemplateRequest)(nil), // 5: google.cloud.dataproc.v1.DeleteSessionTemplateRequest + (*SessionTemplate)(nil), // 6: google.cloud.dataproc.v1.SessionTemplate + nil, // 7: google.cloud.dataproc.v1.SessionTemplate.LabelsEntry + (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp + (*JupyterConfig)(nil), // 9: google.cloud.dataproc.v1.JupyterConfig + (*RuntimeConfig)(nil), // 10: google.cloud.dataproc.v1.RuntimeConfig + (*EnvironmentConfig)(nil), // 11: google.cloud.dataproc.v1.EnvironmentConfig + (*emptypb.Empty)(nil), // 12: google.protobuf.Empty +} +var file_google_cloud_dataproc_v1_session_templates_proto_depIdxs = []int32{ + 6, // 0: google.cloud.dataproc.v1.CreateSessionTemplateRequest.session_template:type_name -> google.cloud.dataproc.v1.SessionTemplate + 6, // 1: google.cloud.dataproc.v1.UpdateSessionTemplateRequest.session_template:type_name -> google.cloud.dataproc.v1.SessionTemplate + 6, // 2: google.cloud.dataproc.v1.ListSessionTemplatesResponse.session_templates:type_name -> google.cloud.dataproc.v1.SessionTemplate + 8, // 3: google.cloud.dataproc.v1.SessionTemplate.create_time:type_name -> google.protobuf.Timestamp + 9, // 4: google.cloud.dataproc.v1.SessionTemplate.jupyter_session:type_name -> google.cloud.dataproc.v1.JupyterConfig + 7, // 5: google.cloud.dataproc.v1.SessionTemplate.labels:type_name -> google.cloud.dataproc.v1.SessionTemplate.LabelsEntry + 10, // 6: google.cloud.dataproc.v1.SessionTemplate.runtime_config:type_name -> google.cloud.dataproc.v1.RuntimeConfig + 11, // 7: google.cloud.dataproc.v1.SessionTemplate.environment_config:type_name -> google.cloud.dataproc.v1.EnvironmentConfig + 8, // 8: google.cloud.dataproc.v1.SessionTemplate.update_time:type_name -> google.protobuf.Timestamp + 0, // 9: google.cloud.dataproc.v1.SessionTemplateController.CreateSessionTemplate:input_type -> google.cloud.dataproc.v1.CreateSessionTemplateRequest + 1, // 10: google.cloud.dataproc.v1.SessionTemplateController.UpdateSessionTemplate:input_type -> google.cloud.dataproc.v1.UpdateSessionTemplateRequest + 2, // 11: google.cloud.dataproc.v1.SessionTemplateController.GetSessionTemplate:input_type -> google.cloud.dataproc.v1.GetSessionTemplateRequest + 3, // 12: google.cloud.dataproc.v1.SessionTemplateController.ListSessionTemplates:input_type -> google.cloud.dataproc.v1.ListSessionTemplatesRequest + 5, // 13: google.cloud.dataproc.v1.SessionTemplateController.DeleteSessionTemplate:input_type -> google.cloud.dataproc.v1.DeleteSessionTemplateRequest + 6, // 14: google.cloud.dataproc.v1.SessionTemplateController.CreateSessionTemplate:output_type -> google.cloud.dataproc.v1.SessionTemplate + 6, // 15: google.cloud.dataproc.v1.SessionTemplateController.UpdateSessionTemplate:output_type -> google.cloud.dataproc.v1.SessionTemplate + 6, // 16: google.cloud.dataproc.v1.SessionTemplateController.GetSessionTemplate:output_type -> google.cloud.dataproc.v1.SessionTemplate + 4, // 17: google.cloud.dataproc.v1.SessionTemplateController.ListSessionTemplates:output_type -> google.cloud.dataproc.v1.ListSessionTemplatesResponse + 12, // 18: google.cloud.dataproc.v1.SessionTemplateController.DeleteSessionTemplate:output_type -> google.protobuf.Empty + 14, // [14:19] is the sub-list for method output_type + 9, // [9:14] is the sub-list for method input_type + 9, // [9:9] is the sub-list for extension type_name + 9, // [9:9] is the sub-list for extension extendee + 0, // [0:9] is the sub-list for field type_name +} + +func init() { file_google_cloud_dataproc_v1_session_templates_proto_init() } +func file_google_cloud_dataproc_v1_session_templates_proto_init() { + if File_google_cloud_dataproc_v1_session_templates_proto != nil { + return + } + file_google_cloud_dataproc_v1_sessions_proto_init() + file_google_cloud_dataproc_v1_shared_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSessionTemplateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSessionTemplateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSessionTemplateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionTemplatesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionTemplatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSessionTemplateRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SessionTemplate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_dataproc_v1_session_templates_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*SessionTemplate_JupyterSession)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_dataproc_v1_session_templates_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_dataproc_v1_session_templates_proto_goTypes, + DependencyIndexes: file_google_cloud_dataproc_v1_session_templates_proto_depIdxs, + MessageInfos: file_google_cloud_dataproc_v1_session_templates_proto_msgTypes, + }.Build() + File_google_cloud_dataproc_v1_session_templates_proto = out.File + file_google_cloud_dataproc_v1_session_templates_proto_rawDesc = nil + file_google_cloud_dataproc_v1_session_templates_proto_goTypes = nil + file_google_cloud_dataproc_v1_session_templates_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 + +// SessionTemplateControllerClient is the client API for SessionTemplateController service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SessionTemplateControllerClient interface { + // Create a session template synchronously. + CreateSessionTemplate(ctx context.Context, in *CreateSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) + // Updates the session template synchronously. + UpdateSessionTemplate(ctx context.Context, in *UpdateSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) + // Gets the resource representation for a session template. + GetSessionTemplate(ctx context.Context, in *GetSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) + // Lists session templates. + ListSessionTemplates(ctx context.Context, in *ListSessionTemplatesRequest, opts ...grpc.CallOption) (*ListSessionTemplatesResponse, error) + // Deletes a session template. + DeleteSessionTemplate(ctx context.Context, in *DeleteSessionTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) +} + +type sessionTemplateControllerClient struct { + cc grpc.ClientConnInterface +} + +func NewSessionTemplateControllerClient(cc grpc.ClientConnInterface) SessionTemplateControllerClient { + return &sessionTemplateControllerClient{cc} +} + +func (c *sessionTemplateControllerClient) CreateSessionTemplate(ctx context.Context, in *CreateSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) { + out := new(SessionTemplate) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionTemplateController/CreateSessionTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionTemplateControllerClient) UpdateSessionTemplate(ctx context.Context, in *UpdateSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) { + out := new(SessionTemplate) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionTemplateController/UpdateSessionTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionTemplateControllerClient) GetSessionTemplate(ctx context.Context, in *GetSessionTemplateRequest, opts ...grpc.CallOption) (*SessionTemplate, error) { + out := new(SessionTemplate) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionTemplateController/GetSessionTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionTemplateControllerClient) ListSessionTemplates(ctx context.Context, in *ListSessionTemplatesRequest, opts ...grpc.CallOption) (*ListSessionTemplatesResponse, error) { + out := new(ListSessionTemplatesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionTemplateController/ListSessionTemplates", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionTemplateControllerClient) DeleteSessionTemplate(ctx context.Context, in *DeleteSessionTemplateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionTemplateController/DeleteSessionTemplate", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SessionTemplateControllerServer is the server API for SessionTemplateController service. +type SessionTemplateControllerServer interface { + // Create a session template synchronously. + CreateSessionTemplate(context.Context, *CreateSessionTemplateRequest) (*SessionTemplate, error) + // Updates the session template synchronously. + UpdateSessionTemplate(context.Context, *UpdateSessionTemplateRequest) (*SessionTemplate, error) + // Gets the resource representation for a session template. + GetSessionTemplate(context.Context, *GetSessionTemplateRequest) (*SessionTemplate, error) + // Lists session templates. + ListSessionTemplates(context.Context, *ListSessionTemplatesRequest) (*ListSessionTemplatesResponse, error) + // Deletes a session template. + DeleteSessionTemplate(context.Context, *DeleteSessionTemplateRequest) (*emptypb.Empty, error) +} + +// UnimplementedSessionTemplateControllerServer can be embedded to have forward compatible implementations. +type UnimplementedSessionTemplateControllerServer struct { +} + +func (*UnimplementedSessionTemplateControllerServer) CreateSessionTemplate(context.Context, *CreateSessionTemplateRequest) (*SessionTemplate, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSessionTemplate not implemented") +} +func (*UnimplementedSessionTemplateControllerServer) UpdateSessionTemplate(context.Context, *UpdateSessionTemplateRequest) (*SessionTemplate, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSessionTemplate not implemented") +} +func (*UnimplementedSessionTemplateControllerServer) GetSessionTemplate(context.Context, *GetSessionTemplateRequest) (*SessionTemplate, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSessionTemplate not implemented") +} +func (*UnimplementedSessionTemplateControllerServer) ListSessionTemplates(context.Context, *ListSessionTemplatesRequest) (*ListSessionTemplatesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSessionTemplates not implemented") +} +func (*UnimplementedSessionTemplateControllerServer) DeleteSessionTemplate(context.Context, *DeleteSessionTemplateRequest) (*emptypb.Empty, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSessionTemplate not implemented") +} + +func RegisterSessionTemplateControllerServer(s *grpc.Server, srv SessionTemplateControllerServer) { + s.RegisterService(&_SessionTemplateController_serviceDesc, srv) +} + +func _SessionTemplateController_CreateSessionTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSessionTemplateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionTemplateControllerServer).CreateSessionTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionTemplateController/CreateSessionTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionTemplateControllerServer).CreateSessionTemplate(ctx, req.(*CreateSessionTemplateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionTemplateController_UpdateSessionTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSessionTemplateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionTemplateControllerServer).UpdateSessionTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionTemplateController/UpdateSessionTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionTemplateControllerServer).UpdateSessionTemplate(ctx, req.(*UpdateSessionTemplateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionTemplateController_GetSessionTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSessionTemplateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionTemplateControllerServer).GetSessionTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionTemplateController/GetSessionTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionTemplateControllerServer).GetSessionTemplate(ctx, req.(*GetSessionTemplateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionTemplateController_ListSessionTemplates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSessionTemplatesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionTemplateControllerServer).ListSessionTemplates(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionTemplateController/ListSessionTemplates", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionTemplateControllerServer).ListSessionTemplates(ctx, req.(*ListSessionTemplatesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionTemplateController_DeleteSessionTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSessionTemplateRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionTemplateControllerServer).DeleteSessionTemplate(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionTemplateController/DeleteSessionTemplate", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionTemplateControllerServer).DeleteSessionTemplate(ctx, req.(*DeleteSessionTemplateRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _SessionTemplateController_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.dataproc.v1.SessionTemplateController", + HandlerType: (*SessionTemplateControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateSessionTemplate", + Handler: _SessionTemplateController_CreateSessionTemplate_Handler, + }, + { + MethodName: "UpdateSessionTemplate", + Handler: _SessionTemplateController_UpdateSessionTemplate_Handler, + }, + { + MethodName: "GetSessionTemplate", + Handler: _SessionTemplateController_GetSessionTemplate_Handler, + }, + { + MethodName: "ListSessionTemplates", + Handler: _SessionTemplateController_ListSessionTemplates_Handler, + }, + { + MethodName: "DeleteSessionTemplate", + Handler: _SessionTemplateController_DeleteSessionTemplate_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/dataproc/v1/session_templates.proto", +} diff --git a/dataproc/apiv1/dataprocpb/sessions.pb.go b/dataproc/apiv1/dataprocpb/sessions.pb.go new file mode 100755 index 00000000000..adf77ef365f --- /dev/null +++ b/dataproc/apiv1/dataprocpb/sessions.pb.go @@ -0,0 +1,1628 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/dataproc/v1/sessions.proto + +package dataprocpb + +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" + 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) +) + +// The session state. +type Session_State int32 + +const ( + // The session state is unknown. + Session_STATE_UNSPECIFIED Session_State = 0 + // The session is created prior to running. + Session_CREATING Session_State = 1 + // The session is running. + Session_ACTIVE Session_State = 2 + // The session is terminating. + Session_TERMINATING Session_State = 3 + // The session is terminated successfully. + Session_TERMINATED Session_State = 4 + // The session is no longer running due to an error. + Session_FAILED Session_State = 5 +) + +// Enum value maps for Session_State. +var ( + Session_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "ACTIVE", + 3: "TERMINATING", + 4: "TERMINATED", + 5: "FAILED", + } + Session_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "TERMINATING": 3, + "TERMINATED": 4, + "FAILED": 5, + } +) + +func (x Session_State) Enum() *Session_State { + p := new(Session_State) + *p = x + return p +} + +func (x Session_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Session_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataproc_v1_sessions_proto_enumTypes[0].Descriptor() +} + +func (Session_State) Type() protoreflect.EnumType { + return &file_google_cloud_dataproc_v1_sessions_proto_enumTypes[0] +} + +func (x Session_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Session_State.Descriptor instead. +func (Session_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{6, 0} +} + +// Jupyter kernel types. +type JupyterConfig_Kernel int32 + +const ( + // The kernel is unknown. + JupyterConfig_KERNEL_UNSPECIFIED JupyterConfig_Kernel = 0 + // Python kernel. + JupyterConfig_PYTHON JupyterConfig_Kernel = 1 + // Scala kernel. + JupyterConfig_SCALA JupyterConfig_Kernel = 2 +) + +// Enum value maps for JupyterConfig_Kernel. +var ( + JupyterConfig_Kernel_name = map[int32]string{ + 0: "KERNEL_UNSPECIFIED", + 1: "PYTHON", + 2: "SCALA", + } + JupyterConfig_Kernel_value = map[string]int32{ + "KERNEL_UNSPECIFIED": 0, + "PYTHON": 1, + "SCALA": 2, + } +) + +func (x JupyterConfig_Kernel) Enum() *JupyterConfig_Kernel { + p := new(JupyterConfig_Kernel) + *p = x + return p +} + +func (x JupyterConfig_Kernel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (JupyterConfig_Kernel) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_dataproc_v1_sessions_proto_enumTypes[1].Descriptor() +} + +func (JupyterConfig_Kernel) Type() protoreflect.EnumType { + return &file_google_cloud_dataproc_v1_sessions_proto_enumTypes[1] +} + +func (x JupyterConfig_Kernel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use JupyterConfig_Kernel.Descriptor instead. +func (JupyterConfig_Kernel) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{7, 0} +} + +// A request to create a session. +type CreateSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this session will be created. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The interactive session to create. + Session *Session `protobuf:"bytes,2,opt,name=session,proto3" json:"session,omitempty"` + // Required. The ID to use for the session, which becomes the final component + // of the session's resource name. + // + // This value must be 4-63 characters. Valid characters + // are /[a-z][0-9]-/. + SessionId string `protobuf:"bytes,3,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + // Optional. A unique ID used to identify the request. If the service + // receives two + // [CreateSessionRequests](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.CreateSessionRequest)s + // with the same ID, the second request is ignored, and the + // first [Session][google.cloud.dataproc.v1.Session] is created and stored in + // the backend. + // + // Recommendation: Set this value to a + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). + // + // The value must contain only letters (a-z, A-Z), numbers (0-9), + // underscores (_), and hyphens (-). The maximum length is 40 characters. + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateSessionRequest) Reset() { + *x = CreateSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSessionRequest) ProtoMessage() {} + +func (x *CreateSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 CreateSessionRequest.ProtoReflect.Descriptor instead. +func (*CreateSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateSessionRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSessionRequest) GetSession() *Session { + if x != nil { + return x.Session + } + return nil +} + +func (x *CreateSessionRequest) GetSessionId() string { + if x != nil { + return x.SessionId + } + return "" +} + +func (x *CreateSessionRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// A request to get the resource representation for a session. +type GetSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the session to retrieve. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSessionRequest) Reset() { + *x = GetSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSessionRequest) ProtoMessage() {} + +func (x *GetSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 GetSessionRequest.ProtoReflect.Descriptor instead. +func (*GetSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{1} +} + +func (x *GetSessionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// A request to list sessions in a project. +type ListSessionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent, which owns this collection of sessions. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The maximum number of sessions to return in each response. + // The service may return fewer than this value. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token received from a previous `ListSessions` call. + // Provide this token to retrieve the subsequent page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. A filter for the sessions to return in the response. + // + // A filter is a logical expression constraining the values of various fields + // in each session resource. Filters are case sensitive, and may contain + // multiple clauses combined with logical operators (AND, OR). + // Supported fields are `session_id`, `session_uuid`, `state`, and + // `create_time`. + // + // Example: `state = ACTIVE and create_time < "2023-01-01T00:00:00Z"` + // is a filter for sessions in an ACTIVE state that were created before + // 2023-01-01. + // + // See https://google.aip.dev/assets/misc/ebnf-filtering.txt for a detailed + // description of the filter syntax and a list of supported comparators. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListSessionsRequest) Reset() { + *x = ListSessionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionsRequest) ProtoMessage() {} + +func (x *ListSessionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 ListSessionsRequest.ProtoReflect.Descriptor instead. +func (*ListSessionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{2} +} + +func (x *ListSessionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSessionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSessionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSessionsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// A list of interactive sessions. +type ListSessionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The sessions from the specified collection. + Sessions []*Session `protobuf:"bytes,1,rep,name=sessions,proto3" json:"sessions,omitempty"` + // A token, which can be sent as `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 *ListSessionsResponse) Reset() { + *x = ListSessionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSessionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSessionsResponse) ProtoMessage() {} + +func (x *ListSessionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 ListSessionsResponse.ProtoReflect.Descriptor instead. +func (*ListSessionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{3} +} + +func (x *ListSessionsResponse) GetSessions() []*Session { + if x != nil { + return x.Sessions + } + return nil +} + +func (x *ListSessionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// A request to terminate an interactive session. +type TerminateSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the session resource to terminate. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A unique ID used to identify the request. If the service + // receives two + // [TerminateSessionRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.TerminateSessionRequest)s + // with the same ID, the second request is ignored. + // + // Recommendation: Set this value to a + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). + // + // The value must contain only letters (a-z, A-Z), numbers (0-9), + // underscores (_), and hyphens (-). The maximum length is 40 characters. + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *TerminateSessionRequest) Reset() { + *x = TerminateSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TerminateSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TerminateSessionRequest) ProtoMessage() {} + +func (x *TerminateSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 TerminateSessionRequest.ProtoReflect.Descriptor instead. +func (*TerminateSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{4} +} + +func (x *TerminateSessionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *TerminateSessionRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// A request to delete a session. +type DeleteSessionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the session resource to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. A unique ID used to identify the request. If the service + // receives two + // [DeleteSessionRequest](https://cloud.google.com/dataproc/docs/reference/rpc/google.cloud.dataproc.v1#google.cloud.dataproc.v1.DeleteSessionRequest)s + // with the same ID, the second request is ignored. + // + // Recommendation: Set this value to a + // [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier). + // + // The value must contain only letters (a-z, A-Z), numbers (0-9), + // underscores (_), and hyphens (-). The maximum length is 40 characters. + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteSessionRequest) Reset() { + *x = DeleteSessionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSessionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSessionRequest) ProtoMessage() {} + +func (x *DeleteSessionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 DeleteSessionRequest.ProtoReflect.Descriptor instead. +func (*DeleteSessionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteSessionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteSessionRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// A representation of a session. +type Session struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the session. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. A session UUID (Unique Universal Identifier). The service + // generates this value when it creates the session. + Uuid string `protobuf:"bytes,2,opt,name=uuid,proto3" json:"uuid,omitempty"` + // Output only. The time when the session was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // The session configuration. + // + // Types that are assignable to SessionConfig: + // + // *Session_JupyterSession + SessionConfig isSession_SessionConfig `protobuf_oneof:"session_config"` + // Output only. Runtime information about session execution. + RuntimeInfo *RuntimeInfo `protobuf:"bytes,6,opt,name=runtime_info,json=runtimeInfo,proto3" json:"runtime_info,omitempty"` + // Output only. A state of the session. + State Session_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.dataproc.v1.Session_State" json:"state,omitempty"` + // Output only. Session state details, such as the failure + // description if the state is `FAILED`. + StateMessage string `protobuf:"bytes,8,opt,name=state_message,json=stateMessage,proto3" json:"state_message,omitempty"` + // Output only. The time when the session entered the current state. + StateTime *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=state_time,json=stateTime,proto3" json:"state_time,omitempty"` + // Output only. The email address of the user who created the session. + Creator string `protobuf:"bytes,10,opt,name=creator,proto3" json:"creator,omitempty"` + // Optional. The labels to associate with the session. + // Label **keys** must contain 1 to 63 characters, and must conform to + // [RFC 1035](https://www.ietf.org/rfc/rfc1035.txt). + // Label **values** may be empty, but, if present, must contain 1 to 63 + // characters, and must conform to [RFC + // 1035](https://www.ietf.org/rfc/rfc1035.txt). No more than 32 labels can be + // associated with a session. + Labels map[string]string `protobuf:"bytes,11,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Runtime configuration for the session execution. + RuntimeConfig *RuntimeConfig `protobuf:"bytes,12,opt,name=runtime_config,json=runtimeConfig,proto3" json:"runtime_config,omitempty"` + // Optional. Environment configuration for the session execution. + EnvironmentConfig *EnvironmentConfig `protobuf:"bytes,13,opt,name=environment_config,json=environmentConfig,proto3" json:"environment_config,omitempty"` + // Optional. The email address of the user who owns the session. + User string `protobuf:"bytes,14,opt,name=user,proto3" json:"user,omitempty"` + // Output only. Historical state information for the session. + StateHistory []*Session_SessionStateHistory `protobuf:"bytes,15,rep,name=state_history,json=stateHistory,proto3" json:"state_history,omitempty"` + // Optional. The session template used by the session. + // + // Only resource names, including project ID and location, are valid. + // + // Example: + // * `https://www.googleapis.com/compute/v1/projects/[project_id]/locations/[dataproc_region]/sessionTemplates/[template_id]` + // * `projects/[project_id]/locations/[dataproc_region]/sessionTemplates/[template_id]` + // + // The template must be in the same project and Dataproc region as the + // session. + SessionTemplate string `protobuf:"bytes,16,opt,name=session_template,json=sessionTemplate,proto3" json:"session_template,omitempty"` +} + +func (x *Session) Reset() { + *x = Session{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Session) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Session) ProtoMessage() {} + +func (x *Session) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 Session.ProtoReflect.Descriptor instead. +func (*Session) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{6} +} + +func (x *Session) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Session) GetUuid() string { + if x != nil { + return x.Uuid + } + return "" +} + +func (x *Session) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (m *Session) GetSessionConfig() isSession_SessionConfig { + if m != nil { + return m.SessionConfig + } + return nil +} + +func (x *Session) GetJupyterSession() *JupyterConfig { + if x, ok := x.GetSessionConfig().(*Session_JupyterSession); ok { + return x.JupyterSession + } + return nil +} + +func (x *Session) GetRuntimeInfo() *RuntimeInfo { + if x != nil { + return x.RuntimeInfo + } + return nil +} + +func (x *Session) GetState() Session_State { + if x != nil { + return x.State + } + return Session_STATE_UNSPECIFIED +} + +func (x *Session) GetStateMessage() string { + if x != nil { + return x.StateMessage + } + return "" +} + +func (x *Session) GetStateTime() *timestamppb.Timestamp { + if x != nil { + return x.StateTime + } + return nil +} + +func (x *Session) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +func (x *Session) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Session) GetRuntimeConfig() *RuntimeConfig { + if x != nil { + return x.RuntimeConfig + } + return nil +} + +func (x *Session) GetEnvironmentConfig() *EnvironmentConfig { + if x != nil { + return x.EnvironmentConfig + } + return nil +} + +func (x *Session) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *Session) GetStateHistory() []*Session_SessionStateHistory { + if x != nil { + return x.StateHistory + } + return nil +} + +func (x *Session) GetSessionTemplate() string { + if x != nil { + return x.SessionTemplate + } + return "" +} + +type isSession_SessionConfig interface { + isSession_SessionConfig() +} + +type Session_JupyterSession struct { + // Optional. Jupyter session config. + JupyterSession *JupyterConfig `protobuf:"bytes,4,opt,name=jupyter_session,json=jupyterSession,proto3,oneof"` +} + +func (*Session_JupyterSession) isSession_SessionConfig() {} + +// Jupyter configuration for an interactive session. +type JupyterConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Kernel + Kernel JupyterConfig_Kernel `protobuf:"varint,1,opt,name=kernel,proto3,enum=google.cloud.dataproc.v1.JupyterConfig_Kernel" json:"kernel,omitempty"` + // Optional. Display name, shown in the Jupyter kernelspec card. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` +} + +func (x *JupyterConfig) Reset() { + *x = JupyterConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JupyterConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JupyterConfig) ProtoMessage() {} + +func (x *JupyterConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 JupyterConfig.ProtoReflect.Descriptor instead. +func (*JupyterConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{7} +} + +func (x *JupyterConfig) GetKernel() JupyterConfig_Kernel { + if x != nil { + return x.Kernel + } + return JupyterConfig_KERNEL_UNSPECIFIED +} + +func (x *JupyterConfig) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +// Historical state information. +type Session_SessionStateHistory struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The state of the session at this point in the session + // history. + State Session_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.dataproc.v1.Session_State" json:"state,omitempty"` + // Output only. Details about the state at this point in the session + // history. + StateMessage string `protobuf:"bytes,2,opt,name=state_message,json=stateMessage,proto3" json:"state_message,omitempty"` + // Output only. The time when the session entered the historical state. + StateStartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=state_start_time,json=stateStartTime,proto3" json:"state_start_time,omitempty"` +} + +func (x *Session_SessionStateHistory) Reset() { + *x = Session_SessionStateHistory{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_sessions_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Session_SessionStateHistory) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Session_SessionStateHistory) ProtoMessage() {} + +func (x *Session_SessionStateHistory) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_sessions_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 Session_SessionStateHistory.ProtoReflect.Descriptor instead. +func (*Session_SessionStateHistory) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *Session_SessionStateHistory) GetState() Session_State { + if x != nil { + return x.State + } + return Session_STATE_UNSPECIFIED +} + +func (x *Session_SessionStateHistory) GetStateMessage() string { + if x != nil { + return x.StateMessage + } + return "" +} + +func (x *Session_SessionStateHistory) GetStateStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StateStartTime + } + return nil +} + +var File_google_cloud_dataproc_v1_sessions_proto protoreflect.FileDescriptor + +var file_google_cloud_dataproc_v1_sessions_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 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, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 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, 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, 0xe1, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, + 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x22, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb9, 0x01, 0x0a, 0x13, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, + 0x0a, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x08, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 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, 0x7a, 0x0a, 0x17, 0x54, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x77, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, + 0xb1, 0x0b, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 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, 0x17, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 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, + 0x57, 0x0a, 0x0f, 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x4a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0e, 0x6a, 0x75, 0x70, 0x79, 0x74, 0x65, + 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4d, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x09, 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, 0x09, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x0b, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 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, 0x0e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x12, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x11, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x5f, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x5a, 0x0a, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2f, 0xe0, 0x41, 0x01, 0xfa, + 0x41, 0x29, 0x0a, 0x27, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0xce, 0x01, 0x0a, + 0x13, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, + 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x49, 0x0a, 0x10, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 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, 0x0e, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 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, 0x65, 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, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, + 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x54, 0x45, 0x52, 0x4d, 0x49, 0x4e, 0x41, 0x54, 0x45, + 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x3a, + 0x60, 0xea, 0x41, 0x5d, 0x0a, 0x1f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 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, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x7d, 0x42, 0x10, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0xbd, 0x01, 0x0a, 0x0d, 0x4a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4b, 0x0a, 0x06, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x4a, 0x75, 0x70, 0x79, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4b, + 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x6b, 0x65, 0x72, 0x6e, + 0x65, 0x6c, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x06, 0x4b, 0x65, + 0x72, 0x6e, 0x65, 0x6c, 0x12, 0x16, 0x0a, 0x12, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x50, 0x59, 0x54, 0x48, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x43, 0x41, 0x4c, + 0x41, 0x10, 0x02, 0x32, 0xf5, 0x08, 0x0a, 0x11, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x12, 0xf9, 0x01, 0x0a, 0x0d, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, + 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 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, 0x3c, + 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x2c, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x3a, 0x07, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 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, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x99, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x3b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2e, 0x12, 0x2c, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2e, 0x12, 0x2c, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0xee, 0x01, 0x0a, 0x10, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 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, 0x3c, 0x0a, 0x07, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 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, 0x3a, 0x01, 0x2a, 0x22, 0x36, 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, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, + 0x65, 0x12, 0xda, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 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, 0x7a, 0xca, 0x41, 0x3c, 0x0a, 0x07, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x31, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 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, 0x2e, + 0x2a, 0x2c, 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, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x1a, 0x4b, + 0xca, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 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, 0x6c, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x3b, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_google_cloud_dataproc_v1_sessions_proto_rawDescOnce sync.Once + file_google_cloud_dataproc_v1_sessions_proto_rawDescData = file_google_cloud_dataproc_v1_sessions_proto_rawDesc +) + +func file_google_cloud_dataproc_v1_sessions_proto_rawDescGZIP() []byte { + file_google_cloud_dataproc_v1_sessions_proto_rawDescOnce.Do(func() { + file_google_cloud_dataproc_v1_sessions_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_dataproc_v1_sessions_proto_rawDescData) + }) + return file_google_cloud_dataproc_v1_sessions_proto_rawDescData +} + +var file_google_cloud_dataproc_v1_sessions_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_dataproc_v1_sessions_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_google_cloud_dataproc_v1_sessions_proto_goTypes = []interface{}{ + (Session_State)(0), // 0: google.cloud.dataproc.v1.Session.State + (JupyterConfig_Kernel)(0), // 1: google.cloud.dataproc.v1.JupyterConfig.Kernel + (*CreateSessionRequest)(nil), // 2: google.cloud.dataproc.v1.CreateSessionRequest + (*GetSessionRequest)(nil), // 3: google.cloud.dataproc.v1.GetSessionRequest + (*ListSessionsRequest)(nil), // 4: google.cloud.dataproc.v1.ListSessionsRequest + (*ListSessionsResponse)(nil), // 5: google.cloud.dataproc.v1.ListSessionsResponse + (*TerminateSessionRequest)(nil), // 6: google.cloud.dataproc.v1.TerminateSessionRequest + (*DeleteSessionRequest)(nil), // 7: google.cloud.dataproc.v1.DeleteSessionRequest + (*Session)(nil), // 8: google.cloud.dataproc.v1.Session + (*JupyterConfig)(nil), // 9: google.cloud.dataproc.v1.JupyterConfig + (*Session_SessionStateHistory)(nil), // 10: google.cloud.dataproc.v1.Session.SessionStateHistory + nil, // 11: google.cloud.dataproc.v1.Session.LabelsEntry + (*timestamppb.Timestamp)(nil), // 12: google.protobuf.Timestamp + (*RuntimeInfo)(nil), // 13: google.cloud.dataproc.v1.RuntimeInfo + (*RuntimeConfig)(nil), // 14: google.cloud.dataproc.v1.RuntimeConfig + (*EnvironmentConfig)(nil), // 15: google.cloud.dataproc.v1.EnvironmentConfig + (*longrunningpb.Operation)(nil), // 16: google.longrunning.Operation +} +var file_google_cloud_dataproc_v1_sessions_proto_depIdxs = []int32{ + 8, // 0: google.cloud.dataproc.v1.CreateSessionRequest.session:type_name -> google.cloud.dataproc.v1.Session + 8, // 1: google.cloud.dataproc.v1.ListSessionsResponse.sessions:type_name -> google.cloud.dataproc.v1.Session + 12, // 2: google.cloud.dataproc.v1.Session.create_time:type_name -> google.protobuf.Timestamp + 9, // 3: google.cloud.dataproc.v1.Session.jupyter_session:type_name -> google.cloud.dataproc.v1.JupyterConfig + 13, // 4: google.cloud.dataproc.v1.Session.runtime_info:type_name -> google.cloud.dataproc.v1.RuntimeInfo + 0, // 5: google.cloud.dataproc.v1.Session.state:type_name -> google.cloud.dataproc.v1.Session.State + 12, // 6: google.cloud.dataproc.v1.Session.state_time:type_name -> google.protobuf.Timestamp + 11, // 7: google.cloud.dataproc.v1.Session.labels:type_name -> google.cloud.dataproc.v1.Session.LabelsEntry + 14, // 8: google.cloud.dataproc.v1.Session.runtime_config:type_name -> google.cloud.dataproc.v1.RuntimeConfig + 15, // 9: google.cloud.dataproc.v1.Session.environment_config:type_name -> google.cloud.dataproc.v1.EnvironmentConfig + 10, // 10: google.cloud.dataproc.v1.Session.state_history:type_name -> google.cloud.dataproc.v1.Session.SessionStateHistory + 1, // 11: google.cloud.dataproc.v1.JupyterConfig.kernel:type_name -> google.cloud.dataproc.v1.JupyterConfig.Kernel + 0, // 12: google.cloud.dataproc.v1.Session.SessionStateHistory.state:type_name -> google.cloud.dataproc.v1.Session.State + 12, // 13: google.cloud.dataproc.v1.Session.SessionStateHistory.state_start_time:type_name -> google.protobuf.Timestamp + 2, // 14: google.cloud.dataproc.v1.SessionController.CreateSession:input_type -> google.cloud.dataproc.v1.CreateSessionRequest + 3, // 15: google.cloud.dataproc.v1.SessionController.GetSession:input_type -> google.cloud.dataproc.v1.GetSessionRequest + 4, // 16: google.cloud.dataproc.v1.SessionController.ListSessions:input_type -> google.cloud.dataproc.v1.ListSessionsRequest + 6, // 17: google.cloud.dataproc.v1.SessionController.TerminateSession:input_type -> google.cloud.dataproc.v1.TerminateSessionRequest + 7, // 18: google.cloud.dataproc.v1.SessionController.DeleteSession:input_type -> google.cloud.dataproc.v1.DeleteSessionRequest + 16, // 19: google.cloud.dataproc.v1.SessionController.CreateSession:output_type -> google.longrunning.Operation + 8, // 20: google.cloud.dataproc.v1.SessionController.GetSession:output_type -> google.cloud.dataproc.v1.Session + 5, // 21: google.cloud.dataproc.v1.SessionController.ListSessions:output_type -> google.cloud.dataproc.v1.ListSessionsResponse + 16, // 22: google.cloud.dataproc.v1.SessionController.TerminateSession:output_type -> google.longrunning.Operation + 16, // 23: google.cloud.dataproc.v1.SessionController.DeleteSession:output_type -> google.longrunning.Operation + 19, // [19:24] is the sub-list for method output_type + 14, // [14:19] 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_dataproc_v1_sessions_proto_init() } +func file_google_cloud_dataproc_v1_sessions_proto_init() { + if File_google_cloud_dataproc_v1_sessions_proto != nil { + return + } + file_google_cloud_dataproc_v1_shared_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSessionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TerminateSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSessionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Session); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JupyterConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Session_SessionStateHistory); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_dataproc_v1_sessions_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*Session_JupyterSession)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_dataproc_v1_sessions_proto_rawDesc, + NumEnums: 2, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_dataproc_v1_sessions_proto_goTypes, + DependencyIndexes: file_google_cloud_dataproc_v1_sessions_proto_depIdxs, + EnumInfos: file_google_cloud_dataproc_v1_sessions_proto_enumTypes, + MessageInfos: file_google_cloud_dataproc_v1_sessions_proto_msgTypes, + }.Build() + File_google_cloud_dataproc_v1_sessions_proto = out.File + file_google_cloud_dataproc_v1_sessions_proto_rawDesc = nil + file_google_cloud_dataproc_v1_sessions_proto_goTypes = nil + file_google_cloud_dataproc_v1_sessions_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 + +// SessionControllerClient is the client API for SessionController service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type SessionControllerClient interface { + // Create an interactive session asynchronously. + CreateSession(ctx context.Context, in *CreateSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets the resource representation for an interactive session. + GetSession(ctx context.Context, in *GetSessionRequest, opts ...grpc.CallOption) (*Session, error) + // Lists interactive sessions. + ListSessions(ctx context.Context, in *ListSessionsRequest, opts ...grpc.CallOption) (*ListSessionsResponse, error) + // Terminates the interactive session. + TerminateSession(ctx context.Context, in *TerminateSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes the interactive session resource. If the session is not in terminal + // state, it is terminated, and then deleted. + DeleteSession(ctx context.Context, in *DeleteSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type sessionControllerClient struct { + cc grpc.ClientConnInterface +} + +func NewSessionControllerClient(cc grpc.ClientConnInterface) SessionControllerClient { + return &sessionControllerClient{cc} +} + +func (c *sessionControllerClient) CreateSession(ctx context.Context, in *CreateSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionController/CreateSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionControllerClient) GetSession(ctx context.Context, in *GetSessionRequest, opts ...grpc.CallOption) (*Session, error) { + out := new(Session) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionController/GetSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionControllerClient) ListSessions(ctx context.Context, in *ListSessionsRequest, opts ...grpc.CallOption) (*ListSessionsResponse, error) { + out := new(ListSessionsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionController/ListSessions", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionControllerClient) TerminateSession(ctx context.Context, in *TerminateSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionController/TerminateSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *sessionControllerClient) DeleteSession(ctx context.Context, in *DeleteSessionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.dataproc.v1.SessionController/DeleteSession", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// SessionControllerServer is the server API for SessionController service. +type SessionControllerServer interface { + // Create an interactive session asynchronously. + CreateSession(context.Context, *CreateSessionRequest) (*longrunningpb.Operation, error) + // Gets the resource representation for an interactive session. + GetSession(context.Context, *GetSessionRequest) (*Session, error) + // Lists interactive sessions. + ListSessions(context.Context, *ListSessionsRequest) (*ListSessionsResponse, error) + // Terminates the interactive session. + TerminateSession(context.Context, *TerminateSessionRequest) (*longrunningpb.Operation, error) + // Deletes the interactive session resource. If the session is not in terminal + // state, it is terminated, and then deleted. + DeleteSession(context.Context, *DeleteSessionRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedSessionControllerServer can be embedded to have forward compatible implementations. +type UnimplementedSessionControllerServer struct { +} + +func (*UnimplementedSessionControllerServer) CreateSession(context.Context, *CreateSessionRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSession not implemented") +} +func (*UnimplementedSessionControllerServer) GetSession(context.Context, *GetSessionRequest) (*Session, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSession not implemented") +} +func (*UnimplementedSessionControllerServer) ListSessions(context.Context, *ListSessionsRequest) (*ListSessionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSessions not implemented") +} +func (*UnimplementedSessionControllerServer) TerminateSession(context.Context, *TerminateSessionRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method TerminateSession not implemented") +} +func (*UnimplementedSessionControllerServer) DeleteSession(context.Context, *DeleteSessionRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSession not implemented") +} + +func RegisterSessionControllerServer(s *grpc.Server, srv SessionControllerServer) { + s.RegisterService(&_SessionController_serviceDesc, srv) +} + +func _SessionController_CreateSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionControllerServer).CreateSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionController/CreateSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionControllerServer).CreateSession(ctx, req.(*CreateSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionController_GetSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionControllerServer).GetSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionController/GetSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionControllerServer).GetSession(ctx, req.(*GetSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionController_ListSessions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSessionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionControllerServer).ListSessions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionController/ListSessions", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionControllerServer).ListSessions(ctx, req.(*ListSessionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionController_TerminateSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TerminateSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionControllerServer).TerminateSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionController/TerminateSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionControllerServer).TerminateSession(ctx, req.(*TerminateSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _SessionController_DeleteSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSessionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(SessionControllerServer).DeleteSession(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.dataproc.v1.SessionController/DeleteSession", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(SessionControllerServer).DeleteSession(ctx, req.(*DeleteSessionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _SessionController_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.dataproc.v1.SessionController", + HandlerType: (*SessionControllerServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateSession", + Handler: _SessionController_CreateSession_Handler, + }, + { + MethodName: "GetSession", + Handler: _SessionController_GetSession_Handler, + }, + { + MethodName: "ListSessions", + Handler: _SessionController_ListSessions_Handler, + }, + { + MethodName: "TerminateSession", + Handler: _SessionController_TerminateSession_Handler, + }, + { + MethodName: "DeleteSession", + Handler: _SessionController_DeleteSession_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/dataproc/v1/sessions.proto", +} diff --git a/dataproc/apiv1/dataprocpb/shared.pb.go b/dataproc/apiv1/dataprocpb/shared.pb.go index 8e38d116020..b8c78b7d157 100755 --- a/dataproc/apiv1/dataprocpb/shared.pb.go +++ b/dataproc/apiv1/dataprocpb/shared.pb.go @@ -1,4 +1,4 @@ -// Copyright 2022 Google LLC +// 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. @@ -45,10 +45,9 @@ const ( // Unspecified component. Specifying this will cause Cluster creation to fail. Component_COMPONENT_UNSPECIFIED Component = 0 // The Anaconda python distribution. The Anaconda component is not supported - // in the Dataproc - // 2.0 - // image. The 2.0 image is pre-installed with Miniconda. + // in the Dataproc [2.0 image] + // (/https://cloud.google.com/dataproc/docs/concepts/versioning/dataproc-release-2.0). + // The 2.0 image is pre-installed with Miniconda. Component_ANACONDA Component = 5 // Docker Component_DOCKER Component = 13 @@ -281,6 +280,8 @@ type RuntimeConfig struct { // Optional. A mapping of property names to values, which are used to // configure workload execution. Properties map[string]string `protobuf:"bytes,3,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Optional. Dependency repository configuration. + RepositoryConfig *RepositoryConfig `protobuf:"bytes,5,opt,name=repository_config,json=repositoryConfig,proto3" json:"repository_config,omitempty"` } func (x *RuntimeConfig) Reset() { @@ -336,6 +337,13 @@ func (x *RuntimeConfig) GetProperties() map[string]string { return nil } +func (x *RuntimeConfig) GetRepositoryConfig() *RepositoryConfig { + if x != nil { + return x.RepositoryConfig + } + return nil +} + // Environment configuration for a workload. type EnvironmentConfig struct { state protoimpl.MessageState @@ -413,16 +421,31 @@ type ExecutionConfig struct { NetworkTags []string `protobuf:"bytes,6,rep,name=network_tags,json=networkTags,proto3" json:"network_tags,omitempty"` // Optional. The Cloud KMS key to use for encryption. KmsKey string `protobuf:"bytes,7,opt,name=kms_key,json=kmsKey,proto3" json:"kms_key,omitempty"` - // Optional. The duration after which the workload will be terminated. - // When the workload passes this ttl, it will be unconditionally killed - // without waiting for ongoing work to finish. - // Minimum value is 10 minutes; maximum value is 14 days (see JSON - // representation of + // Optional. Applies to sessions only. The duration to keep the session alive + // while it's idling. Exceeding this threshold causes the session to + // terminate. This field cannot be set on a batch workload. Minimum value is + // 10 minutes; maximum value is 14 days (see JSON representation of // [Duration](https://developers.google.com/protocol-buffers/docs/proto3#json)). - // If both ttl and idle_ttl are specified, the conditions are treated as - // and OR: the workload will be terminated when it has been idle for idle_ttl - // or when the ttl has passed, whichever comes first. - // If ttl is not specified for a session, it defaults to 24h. + // Defaults to 1 hour if not set. + // If both `ttl` and `idle_ttl` are specified for an interactive session, + // the conditions are treated as `OR` conditions: the workload will be + // terminated when it has been idle for `idle_ttl` or when `ttl` has been + // exceeded, whichever occurs first. + IdleTtl *durationpb.Duration `protobuf:"bytes,8,opt,name=idle_ttl,json=idleTtl,proto3" json:"idle_ttl,omitempty"` + // Optional. The duration after which the workload will be terminated, + // specified as the JSON representation for + // [Duration](https://protobuf.dev/programming-guides/proto3/#json). + // When the workload exceeds this duration, it will be unconditionally + // terminated without waiting for ongoing work to finish. If `ttl` is not + // specified for a batch workload, the workload will be allowed to run until + // it exits naturally (or run forever without exiting). If `ttl` is not + // specified for an interactive session, it defaults to 24 hours. If `ttl` is + // not specified for a batch that uses 2.1+ runtime version, it defaults to 4 + // hours. Minimum value is 10 minutes; maximum value is 14 days. If both `ttl` + // and `idle_ttl` are specified (for an interactive session), the conditions + // are treated as `OR` conditions: the workload will be terminated when it has + // been idle for `idle_ttl` or when `ttl` has been exceeded, whichever occurs + // first. Ttl *durationpb.Duration `protobuf:"bytes,9,opt,name=ttl,proto3" json:"ttl,omitempty"` // Optional. A Cloud Storage bucket used to stage workload dependencies, // config files, and store workload output and other ephemeral data, such as @@ -509,6 +532,13 @@ func (x *ExecutionConfig) GetKmsKey() string { return "" } +func (x *ExecutionConfig) GetIdleTtl() *durationpb.Duration { + if x != nil { + return x.IdleTtl + } + return nil +} + func (x *ExecutionConfig) GetTtl() *durationpb.Duration { if x != nil { return x.Ttl @@ -671,9 +701,17 @@ type RuntimeInfo struct { OutputUri string `protobuf:"bytes,2,opt,name=output_uri,json=outputUri,proto3" json:"output_uri,omitempty"` // Output only. A URI pointing to the location of the diagnostics tarball. DiagnosticOutputUri string `protobuf:"bytes,3,opt,name=diagnostic_output_uri,json=diagnosticOutputUri,proto3" json:"diagnostic_output_uri,omitempty"` - // Output only. Approximate workload resource usage calculated after workload - // finishes (see [Dataproc Serverless pricing] + // Output only. Approximate workload resource usage, calculated when + // the workload completes (see [Dataproc Serverless pricing] // (https://cloud.google.com/dataproc-serverless/pricing)). + // + // **Note:** This metric calculation may change in the future, for + // example, to capture cumulative workload resource + // consumption during workload execution (see the + // [Dataproc Serverless release notes] + // (https://cloud.google.com/dataproc-serverless/docs/release-notes) + // for announcements, changes, fixes + // and other Dataproc developments). ApproximateUsage *UsageMetrics `protobuf:"bytes,6,opt,name=approximate_usage,json=approximateUsage,proto3" json:"approximate_usage,omitempty"` // Output only. Snapshot of current workload resource usage. CurrentUsage *UsageSnapshot `protobuf:"bytes,7,opt,name=current_usage,json=currentUsage,proto3" json:"current_usage,omitempty"` @@ -760,6 +798,12 @@ type UsageMetrics struct { // [Dataproc Serverless pricing] // (https://cloud.google.com/dataproc-serverless/pricing)). ShuffleStorageGbSeconds int64 `protobuf:"varint,2,opt,name=shuffle_storage_gb_seconds,json=shuffleStorageGbSeconds,proto3" json:"shuffle_storage_gb_seconds,omitempty"` + // Optional. Accelerator usage in (`milliAccelerator` x `seconds`) (see + // [Dataproc Serverless pricing] + // (https://cloud.google.com/dataproc-serverless/pricing)). + MilliAcceleratorSeconds int64 `protobuf:"varint,3,opt,name=milli_accelerator_seconds,json=milliAcceleratorSeconds,proto3" json:"milli_accelerator_seconds,omitempty"` + // Optional. Accelerator type being used, if any + AcceleratorType string `protobuf:"bytes,4,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"` } func (x *UsageMetrics) Reset() { @@ -808,7 +852,21 @@ func (x *UsageMetrics) GetShuffleStorageGbSeconds() int64 { return 0 } -// The usage snaphot represents the resources consumed by a workload at a +func (x *UsageMetrics) GetMilliAcceleratorSeconds() int64 { + if x != nil { + return x.MilliAcceleratorSeconds + } + return 0 +} + +func (x *UsageMetrics) GetAcceleratorType() string { + if x != nil { + return x.AcceleratorType + } + return "" +} + +// The usage snapshot represents the resources consumed by a workload at a // specified time. type UsageSnapshot struct { state protoimpl.MessageState @@ -822,6 +880,19 @@ type UsageSnapshot struct { // Optional. Shuffle Storage in gigabytes (GB). (see [Dataproc Serverless // pricing] (https://cloud.google.com/dataproc-serverless/pricing)) ShuffleStorageGb int64 `protobuf:"varint,2,opt,name=shuffle_storage_gb,json=shuffleStorageGb,proto3" json:"shuffle_storage_gb,omitempty"` + // Optional. Milli (one-thousandth) Dataproc Compute Units (DCUs) charged at + // premium tier (see [Dataproc Serverless pricing] + // (https://cloud.google.com/dataproc-serverless/pricing)). + MilliDcuPremium int64 `protobuf:"varint,4,opt,name=milli_dcu_premium,json=milliDcuPremium,proto3" json:"milli_dcu_premium,omitempty"` + // Optional. Shuffle Storage in gigabytes (GB) charged at premium tier. (see + // [Dataproc Serverless pricing] + // (https://cloud.google.com/dataproc-serverless/pricing)) + ShuffleStorageGbPremium int64 `protobuf:"varint,5,opt,name=shuffle_storage_gb_premium,json=shuffleStorageGbPremium,proto3" json:"shuffle_storage_gb_premium,omitempty"` + // Optional. Milli (one-thousandth) accelerator. (see [Dataproc + // Serverless pricing] (https://cloud.google.com/dataproc-serverless/pricing)) + MilliAccelerator int64 `protobuf:"varint,6,opt,name=milli_accelerator,json=milliAccelerator,proto3" json:"milli_accelerator,omitempty"` + // Optional. Accelerator type being used, if any + AcceleratorType string `protobuf:"bytes,7,opt,name=accelerator_type,json=acceleratorType,proto3" json:"accelerator_type,omitempty"` // Optional. The timestamp of the usage snapshot. SnapshotTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=snapshot_time,json=snapshotTime,proto3" json:"snapshot_time,omitempty"` } @@ -872,6 +943,34 @@ func (x *UsageSnapshot) GetShuffleStorageGb() int64 { return 0 } +func (x *UsageSnapshot) GetMilliDcuPremium() int64 { + if x != nil { + return x.MilliDcuPremium + } + return 0 +} + +func (x *UsageSnapshot) GetShuffleStorageGbPremium() int64 { + if x != nil { + return x.ShuffleStorageGbPremium + } + return 0 +} + +func (x *UsageSnapshot) GetMilliAccelerator() int64 { + if x != nil { + return x.MilliAccelerator + } + return 0 +} + +func (x *UsageSnapshot) GetAcceleratorType() string { + if x != nil { + return x.AcceleratorType + } + return "" +} + func (x *UsageSnapshot) GetSnapshotTime() *timestamppb.Timestamp { if x != nil { return x.SnapshotTime @@ -1265,6 +1364,104 @@ func (x *GkeNodePoolConfig) GetAutoscaling() *GkeNodePoolConfig_GkeNodePoolAutos return nil } +// Configuration for dependency repositories +type RepositoryConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Configuration for PyPi repository. + PypiRepositoryConfig *PyPiRepositoryConfig `protobuf:"bytes,1,opt,name=pypi_repository_config,json=pypiRepositoryConfig,proto3" json:"pypi_repository_config,omitempty"` +} + +func (x *RepositoryConfig) Reset() { + *x = RepositoryConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RepositoryConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RepositoryConfig) ProtoMessage() {} + +func (x *RepositoryConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_shared_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 RepositoryConfig.ProtoReflect.Descriptor instead. +func (*RepositoryConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_shared_proto_rawDescGZIP(), []int{13} +} + +func (x *RepositoryConfig) GetPypiRepositoryConfig() *PyPiRepositoryConfig { + if x != nil { + return x.PypiRepositoryConfig + } + return nil +} + +// Configuration for PyPi repository +type PyPiRepositoryConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. PyPi repository address + PypiRepository string `protobuf:"bytes,1,opt,name=pypi_repository,json=pypiRepository,proto3" json:"pypi_repository,omitempty"` +} + +func (x *PyPiRepositoryConfig) Reset() { + *x = PyPiRepositoryConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PyPiRepositoryConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PyPiRepositoryConfig) ProtoMessage() {} + +func (x *PyPiRepositoryConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_dataproc_v1_shared_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 PyPiRepositoryConfig.ProtoReflect.Descriptor instead. +func (*PyPiRepositoryConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_dataproc_v1_shared_proto_rawDescGZIP(), []int{14} +} + +func (x *PyPiRepositoryConfig) GetPypiRepository() string { + if x != nil { + return x.PypiRepository + } + return "" +} + // Parameters that describe cluster nodes. type GkeNodePoolConfig_GkeNodeConfig struct { state protoimpl.MessageState @@ -1321,7 +1518,7 @@ type GkeNodePoolConfig_GkeNodeConfig struct { func (x *GkeNodePoolConfig_GkeNodeConfig) Reset() { *x = GkeNodePoolConfig_GkeNodeConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[17] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1334,7 +1531,7 @@ func (x *GkeNodePoolConfig_GkeNodeConfig) String() string { func (*GkeNodePoolConfig_GkeNodeConfig) ProtoMessage() {} func (x *GkeNodePoolConfig_GkeNodeConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[17] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1419,7 +1616,7 @@ type GkeNodePoolConfig_GkeNodePoolAcceleratorConfig struct { func (x *GkeNodePoolConfig_GkeNodePoolAcceleratorConfig) Reset() { *x = GkeNodePoolConfig_GkeNodePoolAcceleratorConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[18] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1432,7 +1629,7 @@ func (x *GkeNodePoolConfig_GkeNodePoolAcceleratorConfig) String() string { func (*GkeNodePoolConfig_GkeNodePoolAcceleratorConfig) ProtoMessage() {} func (x *GkeNodePoolConfig_GkeNodePoolAcceleratorConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[18] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1488,7 +1685,7 @@ type GkeNodePoolConfig_GkeNodePoolAutoscalingConfig struct { func (x *GkeNodePoolConfig_GkeNodePoolAutoscalingConfig) Reset() { *x = GkeNodePoolConfig_GkeNodePoolAutoscalingConfig{} if protoimpl.UnsafeEnabled { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[19] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1501,7 +1698,7 @@ func (x *GkeNodePoolConfig_GkeNodePoolAutoscalingConfig) String() string { func (*GkeNodePoolConfig_GkeNodePoolAutoscalingConfig) ProtoMessage() {} func (x *GkeNodePoolConfig_GkeNodePoolAutoscalingConfig) ProtoReflect() protoreflect.Message { - mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[19] + mi := &file_google_cloud_dataproc_v1_shared_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1545,8 +1742,8 @@ var file_google_cloud_dataproc_v1_shared_proto_rawDesc = []byte{ 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, 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, - 0x01, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xd7, + 0x02, 0x0a, 0x0d, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x6d, 0x61, @@ -1557,280 +1754,322 @@ var file_google_cloud_dataproc_v1_shared_proto_rawDesc = []byte{ 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0xcf, 0x01, 0x0a, 0x11, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x59, 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, + 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x5c, 0x0a, 0x11, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0xcf, 0x01, 0x0a, 0x11, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, + 0x0a, 0x10, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x12, 0x70, 0x65, 0x72, + 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x70, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, + 0x72, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xff, 0x02, 0x0a, 0x0f, 0x45, + 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, + 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0b, + 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x55, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, + 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x55, + 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x6e, + 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, 0x6b, 0x6d, + 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x08, 0x69, 0x64, 0x6c, 0x65, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x08, 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, 0x01, 0x52, 0x07, 0x69, 0x64, 0x6c, 0x65, + 0x54, 0x74, 0x6c, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 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, 0x01, + 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x4a, 0x0a, 0x18, + 0x53, 0x70, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, + 0x63, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0xe2, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, + 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, + 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x01, 0xfa, 0x41, + 0x22, 0x0a, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x1b, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x68, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, - 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5f, 0x0a, 0x12, 0x70, - 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x11, 0x70, 0x65, 0x72, 0x69, 0x70, - 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xc4, 0x02, 0x0a, - 0x0f, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, - 0x0a, 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0a, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x55, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x0e, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, - 0x6b, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x0c, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0b, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x54, 0x61, 0x67, 0x73, 0x12, 0x1c, 0x0a, 0x07, - 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, - 0x41, 0x01, 0x52, 0x06, 0x6b, 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x30, 0x0a, 0x03, 0x74, 0x74, - 0x6c, 0x18, 0x09, 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, 0x01, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x12, 0x2a, 0x0a, 0x0e, - 0x73, 0x74, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x67, 0x69, - 0x6e, 0x67, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, - 0x6f, 0x72, 0x6b, 0x22, 0x4a, 0x0a, 0x18, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x2e, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, - 0xe2, 0x01, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x69, 0x70, 0x68, 0x65, 0x72, 0x61, 0x6c, 0x73, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x55, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, 0x6f, - 0x72, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x28, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x6d, 0x65, 0x74, 0x61, - 0x73, 0x74, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x1b, - 0x73, 0x70, 0x61, 0x72, 0x6b, 0x5f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, - 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, - 0x72, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x18, 0x73, 0x70, 0x61, 0x72, - 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0xae, 0x03, 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x57, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x70, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x18, 0x73, 0x70, 0x61, 0x72, 0x6b, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xae, 0x03, + 0x0a, 0x0b, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x57, 0x0a, + 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x12, 0x37, 0x0a, 0x15, 0x64, 0x69, + 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, + 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x55, 0x72, 0x69, 0x12, 0x58, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, + 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x51, 0x0a, + 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, + 0x1a, 0x3c, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0xf2, + 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x2f, 0x0a, 0x11, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x5f, 0x64, 0x63, 0x75, 0x5f, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x0f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x44, 0x63, 0x75, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, + 0x12, 0x40, 0x0a, 0x1a, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x73, 0x68, 0x75, 0x66, 0x66, + 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x53, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x12, 0x3f, 0x0a, 0x19, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x6d, 0x69, 0x6c, 0x6c, + 0x69, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x22, 0xff, 0x02, 0x0a, 0x0d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x6e, 0x61, + 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x5f, 0x64, + 0x63, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, + 0x69, 0x6c, 0x6c, 0x69, 0x44, 0x63, 0x75, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x68, 0x75, 0x66, 0x66, + 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x69, + 0x6c, 0x6c, 0x69, 0x5f, 0x64, 0x63, 0x75, 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x69, 0x6c, 0x6c, + 0x69, 0x44, 0x63, 0x75, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x12, 0x40, 0x0a, 0x1a, 0x73, + 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, + 0x62, 0x5f, 0x70, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x17, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x53, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, 0x50, 0x72, 0x65, 0x6d, 0x69, 0x75, 0x6d, 0x12, 0x30, 0x0a, + 0x11, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x6d, + 0x69, 0x6c, 0x6c, 0x69, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x2e, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, + 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x44, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 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, 0x01, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x10, 0x47, 0x6b, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x12, 0x67, 0x6b, + 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x22, 0x0a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x10, 0x67, 0x6b, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x12, 0x5a, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, + 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xb3, + 0x02, 0x0a, 0x17, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x14, 0x6b, 0x75, + 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, 0x6b, + 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x67, 0x6b, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, + 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x48, + 0x00, 0x52, 0x10, 0x67, 0x6b, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x1a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, + 0x73, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x45, - 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x22, 0x0a, - 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, - 0x69, 0x12, 0x37, 0x0a, 0x15, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, 0x63, 0x5f, - 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x64, 0x69, 0x61, 0x67, 0x6e, 0x6f, 0x73, 0x74, 0x69, - 0x63, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x55, 0x72, 0x69, 0x12, 0x58, 0x0a, 0x11, 0x61, 0x70, - 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, - 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x42, 0x03, 0xe0, - 0x41, 0x03, 0x52, 0x10, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x78, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x51, 0x0a, 0x0d, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, - 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, - 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x61, 0x67, 0x65, 0x53, 0x6e, 0x61, 0x70, - 0x73, 0x68, 0x6f, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x55, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x3c, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 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, 0x81, 0x01, 0x0a, 0x0c, 0x55, 0x73, 0x61, 0x67, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x5f, - 0x64, 0x63, 0x75, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x44, 0x63, 0x75, - 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x40, 0x0a, 0x1a, 0x73, 0x68, 0x75, 0x66, 0x66, - 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x67, 0x62, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, - 0x52, 0x17, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x47, 0x62, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xaa, 0x01, 0x0a, 0x0d, 0x55, 0x73, - 0x61, 0x67, 0x65, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x6d, - 0x69, 0x6c, 0x6c, 0x69, 0x5f, 0x64, 0x63, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, - 0xe0, 0x41, 0x01, 0x52, 0x08, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x44, 0x63, 0x75, 0x12, 0x31, 0x0a, - 0x12, 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, - 0x5f, 0x67, 0x62, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, - 0x73, 0x68, 0x75, 0x66, 0x66, 0x6c, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x47, 0x62, - 0x12, 0x44, 0x0a, 0x0d, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74, 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, 0x01, 0x52, 0x0c, 0x73, 0x6e, 0x61, 0x70, 0x73, 0x68, - 0x6f, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc6, 0x01, 0x0a, 0x10, 0x47, 0x6b, 0x65, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x12, 0x67, - 0x6b, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x22, 0x0a, - 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x10, 0x67, 0x6b, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x12, 0x5a, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, - 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, - 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, - 0xb3, 0x02, 0x0a, 0x17, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x14, 0x6b, - 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x13, - 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x12, 0x67, 0x6b, 0x65, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, - 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x43, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x02, - 0x48, 0x00, 0x52, 0x10, 0x67, 0x6b, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x75, 0x0a, 0x1a, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x65, 0x73, 0x5f, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, - 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, - 0x01, 0x52, 0x18, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, - 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf9, 0x02, 0x0a, 0x18, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, - 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, - 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, + 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, + 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x18, 0x6b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0xf9, 0x02, 0x0a, 0x18, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x43, 0x0a, - 0x15, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 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, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x67, 0x12, 0x75, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, + 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x62, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, + 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x75, 0x62, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x65, 0x73, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x1a, 0x43, 0x0a, 0x15, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 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, 0xbf, 0x02, 0x0a, 0x11, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, - 0x6c, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, - 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x05, 0x72, 0x6f, 0x6c, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x01, 0x1a, 0x3d, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 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, 0xbf, 0x02, 0x0a, 0x11, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, + 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x4b, 0x0a, 0x05, 0x72, 0x6f, 0x6c, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, + 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, + 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, + 0x04, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x22, 0x5f, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, 0x4c, + 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, + 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, 0x12, + 0x0a, 0x0e, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x4f, 0x52, + 0x10, 0x04, 0x22, 0x8b, 0x07, 0x0a, 0x11, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, + 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, - 0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x5a, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x70, - 0x6f, 0x6f, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, - 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, - 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, - 0x41, 0x04, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x5f, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x4f, - 0x4c, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x01, 0x12, 0x0e, 0x0a, - 0x0a, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x02, 0x12, 0x10, 0x0a, - 0x0c, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x52, 0x10, 0x03, 0x12, - 0x12, 0x0a, 0x0e, 0x53, 0x50, 0x41, 0x52, 0x4b, 0x5f, 0x45, 0x58, 0x45, 0x43, 0x55, 0x54, 0x4f, - 0x52, 0x10, 0x04, 0x22, 0x8b, 0x07, 0x0a, 0x11, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, - 0x6f, 0x6f, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x56, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x21, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, - 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x6f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, - 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, - 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x1a, 0xf6, 0x02, 0x0a, 0x0d, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2b, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x73, 0x64, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, - 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x73, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, - 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, - 0x62, 0x6c, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, - 0x6f, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, - 0x75, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x0a, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, - 0x73, 0x6b, 0x5f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4b, - 0x6d, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x70, 0x6f, 0x74, 0x18, 0x20, 0x20, - 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73, 0x70, 0x6f, 0x74, 0x1a, 0xa4, - 0x01, 0x0a, 0x1c, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x63, - 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, - 0x2b, 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, - 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, - 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x70, 0x75, 0x5f, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x70, 0x75, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x6a, 0x0a, 0x1c, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, - 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, - 0x61, 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x2a, 0xd4, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, - 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x4e, - 0x41, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x43, 0x4b, - 0x45, 0x52, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x55, 0x49, 0x44, 0x10, 0x09, 0x12, - 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x0e, 0x12, 0x09, 0x0a, 0x05, 0x48, 0x42, - 0x41, 0x53, 0x45, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x49, 0x56, 0x45, 0x5f, 0x57, 0x45, - 0x42, 0x48, 0x43, 0x41, 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x55, 0x44, 0x49, 0x10, - 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x55, 0x50, 0x59, 0x54, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0a, - 0x0a, 0x06, 0x50, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x54, 0x52, - 0x49, 0x4e, 0x4f, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x52, 0x10, - 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x4c, 0x52, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x5a, - 0x45, 0x50, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x5a, 0x4f, 0x4f, - 0x4b, 0x45, 0x45, 0x50, 0x45, 0x52, 0x10, 0x08, 0x2a, 0x4a, 0x0a, 0x0d, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x41, 0x49, - 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, - 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x45, 0x4c, 0x45, - 0x54, 0x45, 0x10, 0x02, 0x42, 0xac, 0x02, 0xea, 0x41, 0x5e, 0x0a, 0x20, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x3a, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0xea, 0x41, 0x5e, 0x0a, 0x20, 0x6d, 0x65, 0x74, - 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3a, 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, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 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, 0x64, 0x61, 0x74, 0x61, - 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x64, 0x61, - 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, - 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x21, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0d, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x12, 0x6f, 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, + 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, + 0x6c, 0x69, 0x6e, 0x67, 0x1a, 0xf6, 0x02, 0x0a, 0x0d, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, + 0x01, 0x52, 0x0b, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2b, + 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x73, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0d, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x53, 0x73, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x25, 0x0a, 0x0b, 0x70, + 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x65, 0x6d, 0x70, 0x74, 0x69, 0x62, + 0x6c, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x48, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2d, 0x0a, 0x10, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, 0x75, + 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x2e, 0x0a, 0x11, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x64, 0x69, 0x73, + 0x6b, 0x5f, 0x6b, 0x6d, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x62, 0x6f, 0x6f, 0x74, 0x44, 0x69, 0x73, 0x6b, 0x4b, 0x6d, + 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x70, 0x6f, 0x74, 0x18, 0x20, 0x20, 0x01, + 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x04, 0x73, 0x70, 0x6f, 0x74, 0x1a, 0xa4, 0x01, + 0x0a, 0x1c, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x41, 0x63, 0x63, + 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2b, + 0x0a, 0x11, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x61, + 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x70, 0x75, 0x5f, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x10, 0x67, 0x70, 0x75, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x69, 0x7a, 0x65, 0x1a, 0x6a, 0x0a, 0x1c, 0x47, 0x6b, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x50, + 0x6f, 0x6f, 0x6c, 0x41, 0x75, 0x74, 0x6f, 0x73, 0x63, 0x61, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x69, + 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, + 0x78, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x6d, 0x61, 0x78, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x7d, 0x0a, 0x10, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x69, 0x0a, 0x16, 0x70, 0x79, 0x70, 0x69, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x79, 0x50, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x14, 0x70, 0x79, 0x70, 0x69, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, + 0x44, 0x0a, 0x14, 0x50, 0x79, 0x50, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x0f, 0x70, 0x79, 0x70, 0x69, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0e, 0x70, 0x79, 0x70, 0x69, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2a, 0xd4, 0x01, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, + 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4d, 0x50, 0x4f, 0x4e, 0x45, 0x4e, 0x54, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, + 0x0a, 0x08, 0x41, 0x4e, 0x41, 0x43, 0x4f, 0x4e, 0x44, 0x41, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, + 0x44, 0x4f, 0x43, 0x4b, 0x45, 0x52, 0x10, 0x0d, 0x12, 0x09, 0x0a, 0x05, 0x44, 0x52, 0x55, 0x49, + 0x44, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x0e, 0x12, 0x09, + 0x0a, 0x05, 0x48, 0x42, 0x41, 0x53, 0x45, 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x49, 0x56, + 0x45, 0x5f, 0x57, 0x45, 0x42, 0x48, 0x43, 0x41, 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x48, + 0x55, 0x44, 0x49, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x4a, 0x55, 0x50, 0x59, 0x54, 0x45, 0x52, + 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x52, 0x45, 0x53, 0x54, 0x4f, 0x10, 0x06, 0x12, 0x09, + 0x0a, 0x05, 0x54, 0x52, 0x49, 0x4e, 0x4f, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x52, 0x10, 0x0c, 0x12, 0x08, 0x0a, 0x04, 0x53, 0x4f, 0x4c, 0x52, 0x10, 0x0a, 0x12, + 0x0c, 0x0a, 0x08, 0x5a, 0x45, 0x50, 0x50, 0x45, 0x4c, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x5a, 0x4f, 0x4f, 0x4b, 0x45, 0x45, 0x50, 0x45, 0x52, 0x10, 0x08, 0x2a, 0x4a, 0x0a, 0x0d, + 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x1a, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, + 0x09, 0x4e, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x02, 0x42, 0xac, 0x02, 0xea, 0x41, 0x5e, 0x0a, 0x20, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x3a, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0xea, 0x41, 0x5e, 0x0a, + 0x20, 0x6d, 0x65, 0x74, 0x61, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x3a, 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, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x53, 0x68, 0x61, + 0x72, 0x65, 0x64, 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, + 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x2f, 0x76, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x3b, 0x64, 0x61, 0x74, + 0x61, 0x70, 0x72, 0x6f, 0x63, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1846,7 +2085,7 @@ func file_google_cloud_dataproc_v1_shared_proto_rawDescGZIP() []byte { } var file_google_cloud_dataproc_v1_shared_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_google_cloud_dataproc_v1_shared_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_google_cloud_dataproc_v1_shared_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_google_cloud_dataproc_v1_shared_proto_goTypes = []interface{}{ (Component)(0), // 0: google.cloud.dataproc.v1.Component (FailureAction)(0), // 1: google.cloud.dataproc.v1.FailureAction @@ -1864,41 +2103,46 @@ var file_google_cloud_dataproc_v1_shared_proto_goTypes = []interface{}{ (*KubernetesSoftwareConfig)(nil), // 13: google.cloud.dataproc.v1.KubernetesSoftwareConfig (*GkeNodePoolTarget)(nil), // 14: google.cloud.dataproc.v1.GkeNodePoolTarget (*GkeNodePoolConfig)(nil), // 15: google.cloud.dataproc.v1.GkeNodePoolConfig - nil, // 16: google.cloud.dataproc.v1.RuntimeConfig.PropertiesEntry - nil, // 17: google.cloud.dataproc.v1.RuntimeInfo.EndpointsEntry - nil, // 18: google.cloud.dataproc.v1.KubernetesSoftwareConfig.ComponentVersionEntry - nil, // 19: google.cloud.dataproc.v1.KubernetesSoftwareConfig.PropertiesEntry - (*GkeNodePoolConfig_GkeNodeConfig)(nil), // 20: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig - (*GkeNodePoolConfig_GkeNodePoolAcceleratorConfig)(nil), // 21: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAcceleratorConfig - (*GkeNodePoolConfig_GkeNodePoolAutoscalingConfig)(nil), // 22: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAutoscalingConfig - (*durationpb.Duration)(nil), // 23: google.protobuf.Duration - (*timestamppb.Timestamp)(nil), // 24: google.protobuf.Timestamp + (*RepositoryConfig)(nil), // 16: google.cloud.dataproc.v1.RepositoryConfig + (*PyPiRepositoryConfig)(nil), // 17: google.cloud.dataproc.v1.PyPiRepositoryConfig + nil, // 18: google.cloud.dataproc.v1.RuntimeConfig.PropertiesEntry + nil, // 19: google.cloud.dataproc.v1.RuntimeInfo.EndpointsEntry + nil, // 20: google.cloud.dataproc.v1.KubernetesSoftwareConfig.ComponentVersionEntry + nil, // 21: google.cloud.dataproc.v1.KubernetesSoftwareConfig.PropertiesEntry + (*GkeNodePoolConfig_GkeNodeConfig)(nil), // 22: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig + (*GkeNodePoolConfig_GkeNodePoolAcceleratorConfig)(nil), // 23: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAcceleratorConfig + (*GkeNodePoolConfig_GkeNodePoolAutoscalingConfig)(nil), // 24: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAutoscalingConfig + (*durationpb.Duration)(nil), // 25: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 26: google.protobuf.Timestamp } var file_google_cloud_dataproc_v1_shared_proto_depIdxs = []int32{ - 16, // 0: google.cloud.dataproc.v1.RuntimeConfig.properties:type_name -> google.cloud.dataproc.v1.RuntimeConfig.PropertiesEntry - 5, // 1: google.cloud.dataproc.v1.EnvironmentConfig.execution_config:type_name -> google.cloud.dataproc.v1.ExecutionConfig - 7, // 2: google.cloud.dataproc.v1.EnvironmentConfig.peripherals_config:type_name -> google.cloud.dataproc.v1.PeripheralsConfig - 23, // 3: google.cloud.dataproc.v1.ExecutionConfig.ttl:type_name -> google.protobuf.Duration - 6, // 4: google.cloud.dataproc.v1.PeripheralsConfig.spark_history_server_config:type_name -> google.cloud.dataproc.v1.SparkHistoryServerConfig - 17, // 5: google.cloud.dataproc.v1.RuntimeInfo.endpoints:type_name -> google.cloud.dataproc.v1.RuntimeInfo.EndpointsEntry - 9, // 6: google.cloud.dataproc.v1.RuntimeInfo.approximate_usage:type_name -> google.cloud.dataproc.v1.UsageMetrics - 10, // 7: google.cloud.dataproc.v1.RuntimeInfo.current_usage:type_name -> google.cloud.dataproc.v1.UsageSnapshot - 24, // 8: google.cloud.dataproc.v1.UsageSnapshot.snapshot_time:type_name -> google.protobuf.Timestamp - 14, // 9: google.cloud.dataproc.v1.GkeClusterConfig.node_pool_target:type_name -> google.cloud.dataproc.v1.GkeNodePoolTarget - 11, // 10: google.cloud.dataproc.v1.KubernetesClusterConfig.gke_cluster_config:type_name -> google.cloud.dataproc.v1.GkeClusterConfig - 13, // 11: google.cloud.dataproc.v1.KubernetesClusterConfig.kubernetes_software_config:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig - 18, // 12: google.cloud.dataproc.v1.KubernetesSoftwareConfig.component_version:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig.ComponentVersionEntry - 19, // 13: google.cloud.dataproc.v1.KubernetesSoftwareConfig.properties:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig.PropertiesEntry - 2, // 14: google.cloud.dataproc.v1.GkeNodePoolTarget.roles:type_name -> google.cloud.dataproc.v1.GkeNodePoolTarget.Role - 15, // 15: google.cloud.dataproc.v1.GkeNodePoolTarget.node_pool_config:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig - 20, // 16: google.cloud.dataproc.v1.GkeNodePoolConfig.config:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig - 22, // 17: google.cloud.dataproc.v1.GkeNodePoolConfig.autoscaling:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAutoscalingConfig - 21, // 18: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.accelerators:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAcceleratorConfig - 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 + 18, // 0: google.cloud.dataproc.v1.RuntimeConfig.properties:type_name -> google.cloud.dataproc.v1.RuntimeConfig.PropertiesEntry + 16, // 1: google.cloud.dataproc.v1.RuntimeConfig.repository_config:type_name -> google.cloud.dataproc.v1.RepositoryConfig + 5, // 2: google.cloud.dataproc.v1.EnvironmentConfig.execution_config:type_name -> google.cloud.dataproc.v1.ExecutionConfig + 7, // 3: google.cloud.dataproc.v1.EnvironmentConfig.peripherals_config:type_name -> google.cloud.dataproc.v1.PeripheralsConfig + 25, // 4: google.cloud.dataproc.v1.ExecutionConfig.idle_ttl:type_name -> google.protobuf.Duration + 25, // 5: google.cloud.dataproc.v1.ExecutionConfig.ttl:type_name -> google.protobuf.Duration + 6, // 6: google.cloud.dataproc.v1.PeripheralsConfig.spark_history_server_config:type_name -> google.cloud.dataproc.v1.SparkHistoryServerConfig + 19, // 7: google.cloud.dataproc.v1.RuntimeInfo.endpoints:type_name -> google.cloud.dataproc.v1.RuntimeInfo.EndpointsEntry + 9, // 8: google.cloud.dataproc.v1.RuntimeInfo.approximate_usage:type_name -> google.cloud.dataproc.v1.UsageMetrics + 10, // 9: google.cloud.dataproc.v1.RuntimeInfo.current_usage:type_name -> google.cloud.dataproc.v1.UsageSnapshot + 26, // 10: google.cloud.dataproc.v1.UsageSnapshot.snapshot_time:type_name -> google.protobuf.Timestamp + 14, // 11: google.cloud.dataproc.v1.GkeClusterConfig.node_pool_target:type_name -> google.cloud.dataproc.v1.GkeNodePoolTarget + 11, // 12: google.cloud.dataproc.v1.KubernetesClusterConfig.gke_cluster_config:type_name -> google.cloud.dataproc.v1.GkeClusterConfig + 13, // 13: google.cloud.dataproc.v1.KubernetesClusterConfig.kubernetes_software_config:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig + 20, // 14: google.cloud.dataproc.v1.KubernetesSoftwareConfig.component_version:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig.ComponentVersionEntry + 21, // 15: google.cloud.dataproc.v1.KubernetesSoftwareConfig.properties:type_name -> google.cloud.dataproc.v1.KubernetesSoftwareConfig.PropertiesEntry + 2, // 16: google.cloud.dataproc.v1.GkeNodePoolTarget.roles:type_name -> google.cloud.dataproc.v1.GkeNodePoolTarget.Role + 15, // 17: google.cloud.dataproc.v1.GkeNodePoolTarget.node_pool_config:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig + 22, // 18: google.cloud.dataproc.v1.GkeNodePoolConfig.config:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig + 24, // 19: google.cloud.dataproc.v1.GkeNodePoolConfig.autoscaling:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAutoscalingConfig + 17, // 20: google.cloud.dataproc.v1.RepositoryConfig.pypi_repository_config:type_name -> google.cloud.dataproc.v1.PyPiRepositoryConfig + 23, // 21: google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodeConfig.accelerators:type_name -> google.cloud.dataproc.v1.GkeNodePoolConfig.GkeNodePoolAcceleratorConfig + 22, // [22:22] is the sub-list for method output_type + 22, // [22:22] is the sub-list for method input_type + 22, // [22:22] is the sub-list for extension type_name + 22, // [22:22] is the sub-list for extension extendee + 0, // [0:22] is the sub-list for field type_name } func init() { file_google_cloud_dataproc_v1_shared_proto_init() } @@ -2063,7 +2307,31 @@ func file_google_cloud_dataproc_v1_shared_proto_init() { return nil } } - file_google_cloud_dataproc_v1_shared_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataproc_v1_shared_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RepositoryConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_shared_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PyPiRepositoryConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_dataproc_v1_shared_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GkeNodePoolConfig_GkeNodeConfig); i { case 0: return &v.state @@ -2075,7 +2343,7 @@ func file_google_cloud_dataproc_v1_shared_proto_init() { return nil } } - file_google_cloud_dataproc_v1_shared_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataproc_v1_shared_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GkeNodePoolConfig_GkeNodePoolAcceleratorConfig); i { case 0: return &v.state @@ -2087,7 +2355,7 @@ func file_google_cloud_dataproc_v1_shared_proto_init() { return nil } } - file_google_cloud_dataproc_v1_shared_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_google_cloud_dataproc_v1_shared_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GkeNodePoolConfig_GkeNodePoolAutoscalingConfig); i { case 0: return &v.state @@ -2113,7 +2381,7 @@ func file_google_cloud_dataproc_v1_shared_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_google_cloud_dataproc_v1_shared_proto_rawDesc, NumEnums: 3, - NumMessages: 20, + NumMessages: 22, NumExtensions: 0, NumServices: 0, }, diff --git a/dataproc/apiv1/gapic_metadata.json b/dataproc/apiv1/gapic_metadata.json index d4aa0ab77da..4fb0d0d509a 100644 --- a/dataproc/apiv1/gapic_metadata.json +++ b/dataproc/apiv1/gapic_metadata.json @@ -695,6 +695,274 @@ } } }, + "SessionController": { + "clients": { + "grpc": { + "libraryClient": "SessionControllerClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateSession": { + "methods": [ + "CreateSession" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSession": { + "methods": [ + "DeleteSession" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSession": { + "methods": [ + "GetSession" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSessions": { + "methods": [ + "ListSessions" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TerminateSession": { + "methods": [ + "TerminateSession" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + } + } + }, + "rest": { + "libraryClient": "SessionControllerClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateSession": { + "methods": [ + "CreateSession" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSession": { + "methods": [ + "DeleteSession" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSession": { + "methods": [ + "GetSession" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSessions": { + "methods": [ + "ListSessions" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TerminateSession": { + "methods": [ + "TerminateSession" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + } + } + } + } + }, + "SessionTemplateController": { + "clients": { + "grpc": { + "libraryClient": "SessionTemplateControllerClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateSessionTemplate": { + "methods": [ + "CreateSessionTemplate" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSessionTemplate": { + "methods": [ + "DeleteSessionTemplate" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSessionTemplate": { + "methods": [ + "GetSessionTemplate" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSessionTemplates": { + "methods": [ + "ListSessionTemplates" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateSessionTemplate": { + "methods": [ + "UpdateSessionTemplate" + ] + } + } + }, + "rest": { + "libraryClient": "SessionTemplateControllerClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateSessionTemplate": { + "methods": [ + "CreateSessionTemplate" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSessionTemplate": { + "methods": [ + "DeleteSessionTemplate" + ] + }, + "GetIamPolicy": { + "methods": [ + "GetIamPolicy" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSessionTemplate": { + "methods": [ + "GetSessionTemplate" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSessionTemplates": { + "methods": [ + "ListSessionTemplates" + ] + }, + "SetIamPolicy": { + "methods": [ + "SetIamPolicy" + ] + }, + "TestIamPermissions": { + "methods": [ + "TestIamPermissions" + ] + }, + "UpdateSessionTemplate": { + "methods": [ + "UpdateSessionTemplate" + ] + } + } + } + } + }, "WorkflowTemplateService": { "clients": { "grpc": { diff --git a/dataproc/apiv1/session_controller_client.go b/dataproc/apiv1/session_controller_client.go new file mode 100755 index 00000000000..76e2f7025b9 --- /dev/null +++ b/dataproc/apiv1/session_controller_client.go @@ -0,0 +1,1574 @@ +// Copyright 2024 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 dataproc + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + 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/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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newSessionControllerClientHook clientHook + +// SessionControllerCallOptions contains the retry settings for each method of SessionControllerClient. +type SessionControllerCallOptions struct { + CreateSession []gax.CallOption + GetSession []gax.CallOption + ListSessions []gax.CallOption + TerminateSession []gax.CallOption + DeleteSession []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultSessionControllerGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("dataproc.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("dataproc.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("dataproc.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://dataproc.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultSessionControllerCallOptions() *SessionControllerCallOptions { + return &SessionControllerCallOptions{ + CreateSession: []gax.CallOption{}, + GetSession: []gax.CallOption{}, + ListSessions: []gax.CallOption{}, + TerminateSession: []gax.CallOption{}, + DeleteSession: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultSessionControllerRESTCallOptions() *SessionControllerCallOptions { + return &SessionControllerCallOptions{ + CreateSession: []gax.CallOption{}, + GetSession: []gax.CallOption{}, + ListSessions: []gax.CallOption{}, + TerminateSession: []gax.CallOption{}, + DeleteSession: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalSessionControllerClient is an interface that defines the methods available from Cloud Dataproc API. +type internalSessionControllerClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateSession(context.Context, *dataprocpb.CreateSessionRequest, ...gax.CallOption) (*CreateSessionOperation, error) + CreateSessionOperation(name string) *CreateSessionOperation + GetSession(context.Context, *dataprocpb.GetSessionRequest, ...gax.CallOption) (*dataprocpb.Session, error) + ListSessions(context.Context, *dataprocpb.ListSessionsRequest, ...gax.CallOption) *SessionIterator + TerminateSession(context.Context, *dataprocpb.TerminateSessionRequest, ...gax.CallOption) (*TerminateSessionOperation, error) + TerminateSessionOperation(name string) *TerminateSessionOperation + DeleteSession(context.Context, *dataprocpb.DeleteSessionRequest, ...gax.CallOption) (*DeleteSessionOperation, error) + DeleteSessionOperation(name string) *DeleteSessionOperation + 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 +} + +// SessionControllerClient is a client for interacting with Cloud Dataproc API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The SessionController provides methods to manage interactive sessions. +type SessionControllerClient struct { + // The internal transport-dependent client. + internalClient internalSessionControllerClient + + // The call options for this service. + CallOptions *SessionControllerCallOptions + + // 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateSession create an interactive session asynchronously. +func (c *SessionControllerClient) CreateSession(ctx context.Context, req *dataprocpb.CreateSessionRequest, opts ...gax.CallOption) (*CreateSessionOperation, error) { + return c.internalClient.CreateSession(ctx, req, opts...) +} + +// CreateSessionOperation returns a new CreateSessionOperation from a given name. +// The name must be that of a previously created CreateSessionOperation, possibly from a different process. +func (c *SessionControllerClient) CreateSessionOperation(name string) *CreateSessionOperation { + return c.internalClient.CreateSessionOperation(name) +} + +// GetSession gets the resource representation for an interactive session. +func (c *SessionControllerClient) GetSession(ctx context.Context, req *dataprocpb.GetSessionRequest, opts ...gax.CallOption) (*dataprocpb.Session, error) { + return c.internalClient.GetSession(ctx, req, opts...) +} + +// ListSessions lists interactive sessions. +func (c *SessionControllerClient) ListSessions(ctx context.Context, req *dataprocpb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + return c.internalClient.ListSessions(ctx, req, opts...) +} + +// TerminateSession terminates the interactive session. +func (c *SessionControllerClient) TerminateSession(ctx context.Context, req *dataprocpb.TerminateSessionRequest, opts ...gax.CallOption) (*TerminateSessionOperation, error) { + return c.internalClient.TerminateSession(ctx, req, opts...) +} + +// TerminateSessionOperation returns a new TerminateSessionOperation from a given name. +// The name must be that of a previously created TerminateSessionOperation, possibly from a different process. +func (c *SessionControllerClient) TerminateSessionOperation(name string) *TerminateSessionOperation { + return c.internalClient.TerminateSessionOperation(name) +} + +// DeleteSession deletes the interactive session resource. If the session is not in terminal +// state, it is terminated, and then deleted. +func (c *SessionControllerClient) DeleteSession(ctx context.Context, req *dataprocpb.DeleteSessionRequest, opts ...gax.CallOption) (*DeleteSessionOperation, error) { + return c.internalClient.DeleteSession(ctx, req, opts...) +} + +// DeleteSessionOperation returns a new DeleteSessionOperation from a given name. +// The name must be that of a previously created DeleteSessionOperation, possibly from a different process. +func (c *SessionControllerClient) DeleteSessionOperation(name string) *DeleteSessionOperation { + return c.internalClient.DeleteSessionOperation(name) +} + +// 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) 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 *SessionControllerClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// sessionControllerGRPCClient is a client for interacting with Cloud Dataproc API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type sessionControllerGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing SessionControllerClient + CallOptions **SessionControllerCallOptions + + // The gRPC API client. + sessionControllerClient dataprocpb.SessionControllerClient + + // 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 + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewSessionControllerClient creates a new session controller client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The SessionController provides methods to manage interactive sessions. +func NewSessionControllerClient(ctx context.Context, opts ...option.ClientOption) (*SessionControllerClient, error) { + clientOpts := defaultSessionControllerGRPCClientOptions() + if newSessionControllerClientHook != nil { + hookOpts, err := newSessionControllerClientHook(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 := SessionControllerClient{CallOptions: defaultSessionControllerCallOptions()} + + c := &sessionControllerGRPCClient{ + connPool: connPool, + sessionControllerClient: dataprocpb.NewSessionControllerClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type sessionControllerRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // 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 + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing SessionControllerClient + CallOptions **SessionControllerCallOptions +} + +// NewSessionControllerRESTClient creates a new session controller rest client. +// +// The SessionController provides methods to manage interactive sessions. +func NewSessionControllerRESTClient(ctx context.Context, opts ...option.ClientOption) (*SessionControllerClient, error) { + clientOpts := append(defaultSessionControllerRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultSessionControllerRESTCallOptions() + c := &sessionControllerRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &SessionControllerClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultSessionControllerRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://dataproc.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://dataproc.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://dataproc.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://dataproc.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 *sessionControllerRESTClient) 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 *sessionControllerRESTClient) 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 *sessionControllerRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *sessionControllerGRPCClient) CreateSession(ctx context.Context, req *dataprocpb.CreateSessionRequest, opts ...gax.CallOption) (*CreateSessionOperation, 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).CreateSession[0:len((*c.CallOptions).CreateSession):len((*c.CallOptions).CreateSession)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionControllerClient.CreateSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *sessionControllerGRPCClient) GetSession(ctx context.Context, req *dataprocpb.GetSessionRequest, opts ...gax.CallOption) (*dataprocpb.Session, 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).GetSession[0:len((*c.CallOptions).GetSession):len((*c.CallOptions).GetSession)], opts...) + var resp *dataprocpb.Session + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionControllerClient.GetSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *sessionControllerGRPCClient) ListSessions(ctx context.Context, req *dataprocpb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + 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).ListSessions[0:len((*c.CallOptions).ListSessions):len((*c.CallOptions).ListSessions)], opts...) + it := &SessionIterator{} + req = proto.Clone(req).(*dataprocpb.ListSessionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataprocpb.Session, string, error) { + resp := &dataprocpb.ListSessionsResponse{} + 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.sessionControllerClient.ListSessions(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSessions(), 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 *sessionControllerGRPCClient) TerminateSession(ctx context.Context, req *dataprocpb.TerminateSessionRequest, opts ...gax.CallOption) (*TerminateSessionOperation, 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).TerminateSession[0:len((*c.CallOptions).TerminateSession):len((*c.CallOptions).TerminateSession)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionControllerClient.TerminateSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &TerminateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *sessionControllerGRPCClient) DeleteSession(ctx context.Context, req *dataprocpb.DeleteSessionRequest, opts ...gax.CallOption) (*DeleteSessionOperation, 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).DeleteSession[0:len((*c.CallOptions).DeleteSession):len((*c.CallOptions).DeleteSession)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionControllerClient.DeleteSession(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 *sessionControllerGRPCClient) 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 +} + +// CreateSession create an interactive session asynchronously. +func (c *sessionControllerRESTClient) CreateSession(ctx context.Context, req *dataprocpb.CreateSessionRequest, opts ...gax.CallOption) (*CreateSessionOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSession() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/sessions", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("sessionId", fmt.Sprintf("%v", req.GetSessionId())) + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetSession gets the resource representation for an interactive session. +func (c *sessionControllerRESTClient) GetSession(ctx context.Context, req *dataprocpb.GetSessionRequest, opts ...gax.CallOption) (*dataprocpb.Session, 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).GetSession[0:len((*c.CallOptions).GetSession):len((*c.CallOptions).GetSession)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &dataprocpb.Session{} + 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 +} + +// ListSessions lists interactive sessions. +func (c *sessionControllerRESTClient) ListSessions(ctx context.Context, req *dataprocpb.ListSessionsRequest, opts ...gax.CallOption) *SessionIterator { + it := &SessionIterator{} + req = proto.Clone(req).(*dataprocpb.ListSessionsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataprocpb.Session, string, error) { + resp := &dataprocpb.ListSessionsResponse{} + 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/sessions", req.GetParent()) + + 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.GetSessions(), 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 +} + +// TerminateSession terminates the interactive session. +func (c *sessionControllerRESTClient) TerminateSession(ctx context.Context, req *dataprocpb.TerminateSessionRequest, opts ...gax.CallOption) (*TerminateSessionOperation, 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:terminate", 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 &TerminateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteSession deletes the interactive session resource. If the session is not in terminal +// state, it is terminated, and then deleted. +func (c *sessionControllerRESTClient) DeleteSession(ctx context.Context, req *dataprocpb.DeleteSessionRequest, opts ...gax.CallOption) (*DeleteSessionOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// 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 *sessionControllerRESTClient) 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("/v1/%v:getIamPolicy", req.GetResource()) + + 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", "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 *sessionControllerRESTClient) 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("/v1/%v:setIamPolicy", req.GetResource()) + + 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", "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 *sessionControllerRESTClient) 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("/v1/%v:testIamPermissions", req.GetResource()) + + 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", "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 *sessionControllerRESTClient) 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("/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(), 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 *sessionControllerRESTClient) 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 *sessionControllerRESTClient) 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 *sessionControllerRESTClient) 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", 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 +} + +// CreateSessionOperation returns a new CreateSessionOperation from a given name. +// The name must be that of a previously created CreateSessionOperation, possibly from a different process. +func (c *sessionControllerGRPCClient) CreateSessionOperation(name string) *CreateSessionOperation { + return &CreateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateSessionOperation returns a new CreateSessionOperation from a given name. +// The name must be that of a previously created CreateSessionOperation, possibly from a different process. +func (c *sessionControllerRESTClient) CreateSessionOperation(name string) *CreateSessionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteSessionOperation returns a new DeleteSessionOperation from a given name. +// The name must be that of a previously created DeleteSessionOperation, possibly from a different process. +func (c *sessionControllerGRPCClient) DeleteSessionOperation(name string) *DeleteSessionOperation { + return &DeleteSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteSessionOperation returns a new DeleteSessionOperation from a given name. +// The name must be that of a previously created DeleteSessionOperation, possibly from a different process. +func (c *sessionControllerRESTClient) DeleteSessionOperation(name string) *DeleteSessionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// TerminateSessionOperation returns a new TerminateSessionOperation from a given name. +// The name must be that of a previously created TerminateSessionOperation, possibly from a different process. +func (c *sessionControllerGRPCClient) TerminateSessionOperation(name string) *TerminateSessionOperation { + return &TerminateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// TerminateSessionOperation returns a new TerminateSessionOperation from a given name. +// The name must be that of a previously created TerminateSessionOperation, possibly from a different process. +func (c *sessionControllerRESTClient) TerminateSessionOperation(name string) *TerminateSessionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &TerminateSessionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/dataproc/apiv1/session_controller_client_example_test.go b/dataproc/apiv1/session_controller_client_example_test.go new file mode 100644 index 00000000000..573e9b408e0 --- /dev/null +++ b/dataproc/apiv1/session_controller_client_example_test.go @@ -0,0 +1,384 @@ +// Copyright 2024 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 dataproc_test + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func ExampleNewSessionControllerClient() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewSessionControllerRESTClient() { + 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 := dataproc.NewSessionControllerRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleSessionControllerClient_CreateSession() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.CreateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#CreateSessionRequest. + } + op, err := c.CreateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionControllerClient_DeleteSession() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.DeleteSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#DeleteSessionRequest. + } + op, err := c.DeleteSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionControllerClient_GetSession() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.GetSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#GetSessionRequest. + } + resp, err := c.GetSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionControllerClient_ListSessions() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.ListSessionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#ListSessionsRequest. + } + it := c.ListSessions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSessionControllerClient_TerminateSession() { + 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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.TerminateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#TerminateSessionRequest. + } + op, err := c.TerminateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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 ExampleSessionControllerClient_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 := dataproc.NewSessionControllerClient(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/dataproc/apiv1/session_template_controller_client.go b/dataproc/apiv1/session_template_controller_client.go new file mode 100755 index 00000000000..ea85d505d20 --- /dev/null +++ b/dataproc/apiv1/session_template_controller_client.go @@ -0,0 +1,1413 @@ +// Copyright 2024 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 dataproc + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + 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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newSessionTemplateControllerClientHook clientHook + +// SessionTemplateControllerCallOptions contains the retry settings for each method of SessionTemplateControllerClient. +type SessionTemplateControllerCallOptions struct { + CreateSessionTemplate []gax.CallOption + UpdateSessionTemplate []gax.CallOption + GetSessionTemplate []gax.CallOption + ListSessionTemplates []gax.CallOption + DeleteSessionTemplate []gax.CallOption + GetIamPolicy []gax.CallOption + SetIamPolicy []gax.CallOption + TestIamPermissions []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultSessionTemplateControllerGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("dataproc.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("dataproc.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("dataproc.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://dataproc.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultSessionTemplateControllerCallOptions() *SessionTemplateControllerCallOptions { + return &SessionTemplateControllerCallOptions{ + CreateSessionTemplate: []gax.CallOption{}, + UpdateSessionTemplate: []gax.CallOption{}, + GetSessionTemplate: []gax.CallOption{}, + ListSessionTemplates: []gax.CallOption{}, + DeleteSessionTemplate: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultSessionTemplateControllerRESTCallOptions() *SessionTemplateControllerCallOptions { + return &SessionTemplateControllerCallOptions{ + CreateSessionTemplate: []gax.CallOption{}, + UpdateSessionTemplate: []gax.CallOption{}, + GetSessionTemplate: []gax.CallOption{}, + ListSessionTemplates: []gax.CallOption{}, + DeleteSessionTemplate: []gax.CallOption{}, + GetIamPolicy: []gax.CallOption{}, + SetIamPolicy: []gax.CallOption{}, + TestIamPermissions: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalSessionTemplateControllerClient is an interface that defines the methods available from Cloud Dataproc API. +type internalSessionTemplateControllerClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateSessionTemplate(context.Context, *dataprocpb.CreateSessionTemplateRequest, ...gax.CallOption) (*dataprocpb.SessionTemplate, error) + UpdateSessionTemplate(context.Context, *dataprocpb.UpdateSessionTemplateRequest, ...gax.CallOption) (*dataprocpb.SessionTemplate, error) + GetSessionTemplate(context.Context, *dataprocpb.GetSessionTemplateRequest, ...gax.CallOption) (*dataprocpb.SessionTemplate, error) + ListSessionTemplates(context.Context, *dataprocpb.ListSessionTemplatesRequest, ...gax.CallOption) *SessionTemplateIterator + DeleteSessionTemplate(context.Context, *dataprocpb.DeleteSessionTemplateRequest, ...gax.CallOption) error + 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 +} + +// SessionTemplateControllerClient is a client for interacting with Cloud Dataproc API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// The SessionTemplateController provides methods to manage session templates. +type SessionTemplateControllerClient struct { + // The internal transport-dependent client. + internalClient internalSessionTemplateControllerClient + + // The call options for this service. + CallOptions *SessionTemplateControllerCallOptions +} + +// 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateSessionTemplate create a session template synchronously. +func (c *SessionTemplateControllerClient) CreateSessionTemplate(ctx context.Context, req *dataprocpb.CreateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + return c.internalClient.CreateSessionTemplate(ctx, req, opts...) +} + +// UpdateSessionTemplate updates the session template synchronously. +func (c *SessionTemplateControllerClient) UpdateSessionTemplate(ctx context.Context, req *dataprocpb.UpdateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + return c.internalClient.UpdateSessionTemplate(ctx, req, opts...) +} + +// GetSessionTemplate gets the resource representation for a session template. +func (c *SessionTemplateControllerClient) GetSessionTemplate(ctx context.Context, req *dataprocpb.GetSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + return c.internalClient.GetSessionTemplate(ctx, req, opts...) +} + +// ListSessionTemplates lists session templates. +func (c *SessionTemplateControllerClient) ListSessionTemplates(ctx context.Context, req *dataprocpb.ListSessionTemplatesRequest, opts ...gax.CallOption) *SessionTemplateIterator { + return c.internalClient.ListSessionTemplates(ctx, req, opts...) +} + +// DeleteSessionTemplate deletes a session template. +func (c *SessionTemplateControllerClient) DeleteSessionTemplate(ctx context.Context, req *dataprocpb.DeleteSessionTemplateRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteSessionTemplate(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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) 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 *SessionTemplateControllerClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// sessionTemplateControllerGRPCClient is a client for interacting with Cloud Dataproc API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type sessionTemplateControllerGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing SessionTemplateControllerClient + CallOptions **SessionTemplateControllerCallOptions + + // The gRPC API client. + sessionTemplateControllerClient dataprocpb.SessionTemplateControllerClient + + operationsClient longrunningpb.OperationsClient + + iamPolicyClient iampb.IAMPolicyClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewSessionTemplateControllerClient creates a new session template controller client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// The SessionTemplateController provides methods to manage session templates. +func NewSessionTemplateControllerClient(ctx context.Context, opts ...option.ClientOption) (*SessionTemplateControllerClient, error) { + clientOpts := defaultSessionTemplateControllerGRPCClientOptions() + if newSessionTemplateControllerClientHook != nil { + hookOpts, err := newSessionTemplateControllerClientHook(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 := SessionTemplateControllerClient{CallOptions: defaultSessionTemplateControllerCallOptions()} + + c := &sessionTemplateControllerGRPCClient{ + connPool: connPool, + sessionTemplateControllerClient: dataprocpb.NewSessionTemplateControllerClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(connPool), + iamPolicyClient: iampb.NewIAMPolicyClient(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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type sessionTemplateControllerRESTClient 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 SessionTemplateControllerClient + CallOptions **SessionTemplateControllerCallOptions +} + +// NewSessionTemplateControllerRESTClient creates a new session template controller rest client. +// +// The SessionTemplateController provides methods to manage session templates. +func NewSessionTemplateControllerRESTClient(ctx context.Context, opts ...option.ClientOption) (*SessionTemplateControllerClient, error) { + clientOpts := append(defaultSessionTemplateControllerRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultSessionTemplateControllerRESTCallOptions() + c := &sessionTemplateControllerRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &SessionTemplateControllerClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultSessionTemplateControllerRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://dataproc.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://dataproc.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://dataproc.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://dataproc.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 *sessionTemplateControllerRESTClient) 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 *sessionTemplateControllerRESTClient) 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 *sessionTemplateControllerRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *sessionTemplateControllerGRPCClient) CreateSessionTemplate(ctx context.Context, req *dataprocpb.CreateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, 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).CreateSessionTemplate[0:len((*c.CallOptions).CreateSessionTemplate):len((*c.CallOptions).CreateSessionTemplate)], opts...) + var resp *dataprocpb.SessionTemplate + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionTemplateControllerClient.CreateSessionTemplate(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *sessionTemplateControllerGRPCClient) UpdateSessionTemplate(ctx context.Context, req *dataprocpb.UpdateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "session_template.name", url.QueryEscape(req.GetSessionTemplate().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSessionTemplate[0:len((*c.CallOptions).UpdateSessionTemplate):len((*c.CallOptions).UpdateSessionTemplate)], opts...) + var resp *dataprocpb.SessionTemplate + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionTemplateControllerClient.UpdateSessionTemplate(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *sessionTemplateControllerGRPCClient) GetSessionTemplate(ctx context.Context, req *dataprocpb.GetSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, 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).GetSessionTemplate[0:len((*c.CallOptions).GetSessionTemplate):len((*c.CallOptions).GetSessionTemplate)], opts...) + var resp *dataprocpb.SessionTemplate + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.sessionTemplateControllerClient.GetSessionTemplate(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *sessionTemplateControllerGRPCClient) ListSessionTemplates(ctx context.Context, req *dataprocpb.ListSessionTemplatesRequest, opts ...gax.CallOption) *SessionTemplateIterator { + 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).ListSessionTemplates[0:len((*c.CallOptions).ListSessionTemplates):len((*c.CallOptions).ListSessionTemplates)], opts...) + it := &SessionTemplateIterator{} + req = proto.Clone(req).(*dataprocpb.ListSessionTemplatesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataprocpb.SessionTemplate, string, error) { + resp := &dataprocpb.ListSessionTemplatesResponse{} + 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.sessionTemplateControllerClient.ListSessionTemplates(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSessionTemplates(), 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 *sessionTemplateControllerGRPCClient) DeleteSessionTemplate(ctx context.Context, req *dataprocpb.DeleteSessionTemplateRequest, 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).DeleteSessionTemplate[0:len((*c.CallOptions).DeleteSessionTemplate):len((*c.CallOptions).DeleteSessionTemplate)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.sessionTemplateControllerClient.DeleteSessionTemplate(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 *sessionTemplateControllerGRPCClient) 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 +} + +// CreateSessionTemplate create a session template synchronously. +func (c *sessionTemplateControllerRESTClient) CreateSessionTemplate(ctx context.Context, req *dataprocpb.CreateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSessionTemplate() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/sessionTemplates", req.GetParent()) + + 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", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).CreateSessionTemplate[0:len((*c.CallOptions).CreateSessionTemplate):len((*c.CallOptions).CreateSessionTemplate)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &dataprocpb.SessionTemplate{} + 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 +} + +// UpdateSessionTemplate updates the session template synchronously. +func (c *sessionTemplateControllerRESTClient) UpdateSessionTemplate(ctx context.Context, req *dataprocpb.UpdateSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSessionTemplate() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetSessionTemplate().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", "session_template.name", url.QueryEscape(req.GetSessionTemplate().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateSessionTemplate[0:len((*c.CallOptions).UpdateSessionTemplate):len((*c.CallOptions).UpdateSessionTemplate)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &dataprocpb.SessionTemplate{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// GetSessionTemplate gets the resource representation for a session template. +func (c *sessionTemplateControllerRESTClient) GetSessionTemplate(ctx context.Context, req *dataprocpb.GetSessionTemplateRequest, opts ...gax.CallOption) (*dataprocpb.SessionTemplate, 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).GetSessionTemplate[0:len((*c.CallOptions).GetSessionTemplate):len((*c.CallOptions).GetSessionTemplate)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &dataprocpb.SessionTemplate{} + 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 +} + +// ListSessionTemplates lists session templates. +func (c *sessionTemplateControllerRESTClient) ListSessionTemplates(ctx context.Context, req *dataprocpb.ListSessionTemplatesRequest, opts ...gax.CallOption) *SessionTemplateIterator { + it := &SessionTemplateIterator{} + req = proto.Clone(req).(*dataprocpb.ListSessionTemplatesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*dataprocpb.SessionTemplate, string, error) { + resp := &dataprocpb.ListSessionTemplatesResponse{} + 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/sessionTemplates", req.GetParent()) + + 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.GetSessionTemplates(), 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 +} + +// DeleteSessionTemplate deletes a session template. +func (c *sessionTemplateControllerRESTClient) DeleteSessionTemplate(ctx context.Context, req *dataprocpb.DeleteSessionTemplateRequest, 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...) +} + +// 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 *sessionTemplateControllerRESTClient) 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("/v1/%v:getIamPolicy", req.GetResource()) + + 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", "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 *sessionTemplateControllerRESTClient) 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("/v1/%v:setIamPolicy", req.GetResource()) + + 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", "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 *sessionTemplateControllerRESTClient) 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("/v1/%v:testIamPermissions", req.GetResource()) + + 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", "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 *sessionTemplateControllerRESTClient) 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("/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(), 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 *sessionTemplateControllerRESTClient) 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 *sessionTemplateControllerRESTClient) 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 *sessionTemplateControllerRESTClient) 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", 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 +} diff --git a/dataproc/apiv1/session_template_controller_client_example_test.go b/dataproc/apiv1/session_template_controller_client_example_test.go new file mode 100644 index 00000000000..4a00c921f5f --- /dev/null +++ b/dataproc/apiv1/session_template_controller_client_example_test.go @@ -0,0 +1,367 @@ +// Copyright 2024 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 dataproc_test + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + iampb "cloud.google.com/go/iam/apiv1/iampb" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + "google.golang.org/api/iterator" +) + +func ExampleNewSessionTemplateControllerClient() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewSessionTemplateControllerRESTClient() { + 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 := dataproc.NewSessionTemplateControllerRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleSessionTemplateControllerClient_CreateSessionTemplate() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.CreateSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#CreateSessionTemplateRequest. + } + resp, err := c.CreateSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionTemplateControllerClient_DeleteSessionTemplate() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.DeleteSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#DeleteSessionTemplateRequest. + } + err = c.DeleteSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleSessionTemplateControllerClient_GetSessionTemplate() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.GetSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#GetSessionTemplateRequest. + } + resp, err := c.GetSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionTemplateControllerClient_ListSessionTemplates() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.ListSessionTemplatesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#ListSessionTemplatesRequest. + } + it := c.ListSessionTemplates(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleSessionTemplateControllerClient_UpdateSessionTemplate() { + 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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.UpdateSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#UpdateSessionTemplateRequest. + } + resp, err := c.UpdateSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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 ExampleSessionTemplateControllerClient_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 := dataproc.NewSessionTemplateControllerClient(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/go.work b/go.work index d7c132eec58..ca204c563f3 100644 --- a/go.work +++ b/go.work @@ -157,6 +157,7 @@ use ( ./video ./videointelligence ./vision + ./visionai ./vmmigration ./vmwareengine ./vpcaccess diff --git a/go.work.sum b/go.work.sum index e77c41d5136..69cfc70c741 100644 --- a/go.work.sum +++ b/go.work.sum @@ -15,6 +15,7 @@ github.com/chzyer/logex v1.2.0/go.mod h1:9+9sk7u7pGNWYMkh0hdiL++6OeibzJccyQU4p4M github.com/chzyer/readline v1.5.0/go.mod h1:x22KAscuvRqlLoK9CsoYsmxoXZMMFVyOl86cAH8qUic= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= github.com/chzyer/test v0.0.0-20210722231415-061457976a23/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -29,6 +30,7 @@ github.com/goccy/go-yaml v1.9.8/go.mod h1:JubOolP3gh0HpiBc4BLRD4YmjEjHAmIIB2aaXK github.com/goccy/go-yaml v1.11.0/go.mod h1:H+mJrWtjPTJAHvRbV09MCK9xYwODM+wRTVFFTWckfng= github.com/google/pprof v0.0.0-20221118152302-e6195bd50e26/go.mod h1:dDKJzRmX4S37WGHujM7tX//fmj1uioxKzKxz3lo4HJo= github.com/google/s2a-go v0.1.3/go.mod h1:Ej+mSEMGRnqRzjc7VtF+jdBwYG5fuJfiZ8ELkjEwM0A= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.9.1/go.mod h1:4FG3gMrVZlyMp5itSYKMU9z/lBE7+SbnUOvzH2HqbEY= github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= @@ -57,6 +59,7 @@ golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= +golang.org/x/oauth2 v0.14.0/go.mod h1:lAtNWgaWfL4cm7j2OV8TxGi9Qb7ECORx8DktCY74OwM= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/internal/.repo-metadata-full.json b/internal/.repo-metadata-full.json index a44826c522f..f0845eec8c7 100644 --- a/internal/.repo-metadata-full.json +++ b/internal/.repo-metadata-full.json @@ -2549,6 +2549,16 @@ "release_level": "preview", "library_type": "GAPIC_AUTO" }, + "cloud.google.com/go/visionai/apiv1": { + "api_shortname": "visionai", + "distribution_name": "cloud.google.com/go/visionai/apiv1", + "description": "Vision AI API", + "language": "go", + "client_library_type": "generated", + "client_documentation": "https://cloud.google.com/go/docs/reference/cloud.google.com/go/visionai/latest/apiv1", + "release_level": "stable", + "library_type": "GAPIC_AUTO" + }, "cloud.google.com/go/vmmigration/apiv1": { "api_shortname": "vmmigration", "distribution_name": "cloud.google.com/go/vmmigration/apiv1", diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CancelOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CancelOperation/main.go new file mode 100644 index 00000000000..5107d285cdd --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_CancelOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_CancelOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CreateSession/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CreateSession/main.go new file mode 100644 index 00000000000..9d51b1d2e45 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/CreateSession/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_CreateSession_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.CreateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#CreateSessionRequest. + } + op, err := c.CreateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionController_CreateSession_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteOperation/main.go new file mode 100644 index 00000000000..d0d86411e0e --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_DeleteOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_DeleteOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteSession/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteSession/main.go new file mode 100644 index 00000000000..b8e7ed9bf7b --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/DeleteSession/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_DeleteSession_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.DeleteSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#DeleteSessionRequest. + } + op, err := c.DeleteSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionController_DeleteSession_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetIamPolicy/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetIamPolicy/main.go new file mode 100644 index 00000000000..3744e38b863 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_GetIamPolicy_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_GetIamPolicy_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetOperation/main.go new file mode 100644 index 00000000000..8740fefb45b --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_GetOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_GetOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetSession/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetSession/main.go new file mode 100644 index 00000000000..4a1d3596c33 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/GetSession/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_GetSession_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.GetSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#GetSessionRequest. + } + resp, err := c.GetSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionController_GetSession_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListOperations/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListOperations/main.go new file mode 100644 index 00000000000..cd046ad5fdc --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_ListOperations_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_ListOperations_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListSessions/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListSessions/main.go new file mode 100644 index 00000000000..525a2f8da3a --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/ListSessions/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_ListSessions_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + "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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.ListSessionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#ListSessionsRequest. + } + it := c.ListSessions(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataproc_v1_generated_SessionController_ListSessions_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/SetIamPolicy/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/SetIamPolicy/main.go new file mode 100644 index 00000000000..2438e331f32 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_SetIamPolicy_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_SetIamPolicy_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TerminateSession/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TerminateSession/main.go new file mode 100644 index 00000000000..ce2f9a340a9 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TerminateSession/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_TerminateSession_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.TerminateSessionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#TerminateSessionRequest. + } + op, err := c.TerminateSession(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionController_TerminateSession_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TestIamPermissions/main.go b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TestIamPermissions/main.go new file mode 100644 index 00000000000..840c1ea6052 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionControllerClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionController_TestIamPermissions_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionControllerClient(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 dataproc_v1_generated_SessionController_TestIamPermissions_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CancelOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CancelOperation/main.go new file mode 100644 index 00000000000..e2eae76f3e1 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_CancelOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_CancelOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CreateSessionTemplate/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CreateSessionTemplate/main.go new file mode 100644 index 00000000000..3ca42ff5d37 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/CreateSessionTemplate/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_CreateSessionTemplate_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.CreateSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#CreateSessionTemplateRequest. + } + resp, err := c.CreateSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionTemplateController_CreateSessionTemplate_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteOperation/main.go new file mode 100644 index 00000000000..ad4af8f806c --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_DeleteOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_DeleteOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteSessionTemplate/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteSessionTemplate/main.go new file mode 100644 index 00000000000..cc54d782a6f --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/DeleteSessionTemplate/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_DeleteSessionTemplate_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.DeleteSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#DeleteSessionTemplateRequest. + } + err = c.DeleteSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END dataproc_v1_generated_SessionTemplateController_DeleteSessionTemplate_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetIamPolicy/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetIamPolicy/main.go new file mode 100644 index 00000000000..e76f1c4a884 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_GetIamPolicy_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_GetIamPolicy_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetOperation/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetOperation/main.go new file mode 100644 index 00000000000..8949bdeb451 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_GetOperation_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_GetOperation_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetSessionTemplate/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetSessionTemplate/main.go new file mode 100644 index 00000000000..31221b612d9 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/GetSessionTemplate/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_GetSessionTemplate_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.GetSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#GetSessionTemplateRequest. + } + resp, err := c.GetSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionTemplateController_GetSessionTemplate_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListOperations/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListOperations/main.go new file mode 100644 index 00000000000..c0328425e1a --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_ListOperations_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_ListOperations_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListSessionTemplates/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListSessionTemplates/main.go new file mode 100644 index 00000000000..d0224f75c21 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/ListSessionTemplates/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_ListSessionTemplates_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" + "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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.ListSessionTemplatesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#ListSessionTemplatesRequest. + } + it := c.ListSessionTemplates(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END dataproc_v1_generated_SessionTemplateController_ListSessionTemplates_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/SetIamPolicy/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/SetIamPolicy/main.go new file mode 100644 index 00000000000..98d3d1d9613 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/SetIamPolicy/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_SetIamPolicy_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_SetIamPolicy_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/TestIamPermissions/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/TestIamPermissions/main.go new file mode 100644 index 00000000000..799b4b85a10 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/TestIamPermissions/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_TestIamPermissions_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/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 := dataproc.NewSessionTemplateControllerClient(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 dataproc_v1_generated_SessionTemplateController_TestIamPermissions_sync] diff --git a/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/UpdateSessionTemplate/main.go b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/UpdateSessionTemplate/main.go new file mode 100644 index 00000000000..12249ef2064 --- /dev/null +++ b/internal/generated/snippets/dataproc/apiv1/SessionTemplateControllerClient/UpdateSessionTemplate/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 dataproc_v1_generated_SessionTemplateController_UpdateSessionTemplate_sync] + +package main + +import ( + "context" + + dataproc "cloud.google.com/go/dataproc/v2/apiv1" + dataprocpb "cloud.google.com/go/dataproc/v2/apiv1/dataprocpb" +) + +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 := dataproc.NewSessionTemplateControllerClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &dataprocpb.UpdateSessionTemplateRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/dataproc/v2/apiv1/dataprocpb#UpdateSessionTemplateRequest. + } + resp, err := c.UpdateSessionTemplate(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END dataproc_v1_generated_SessionTemplateController_UpdateSessionTemplate_sync] 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 86203de82ea..553d0c02eb0 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 @@ -2850,6 +2850,1105 @@ } ] }, + { + "regionTag": "dataproc_v1_generated_SessionController_CancelOperation_sync", + "title": "dataproc CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "SessionControllerClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_CreateSession_sync", + "title": "dataproc CreateSession Sample", + "description": "CreateSession create an interactive session asynchronously.", + "file": "SessionControllerClient/CreateSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSession", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.CreateSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.CreateSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateSessionOperation", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "method": { + "shortName": "CreateSession", + "fullName": "google.cloud.dataproc.v1.SessionController.CreateSession", + "service": { + "shortName": "SessionController", + "fullName": "google.cloud.dataproc.v1.SessionController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionController_DeleteOperation_sync", + "title": "dataproc DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "SessionControllerClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_DeleteSession_sync", + "title": "dataproc DeleteSession Sample", + "description": "DeleteSession deletes the interactive session resource. If the session is not in terminal\nstate, it is terminated, and then deleted.", + "file": "SessionControllerClient/DeleteSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSession", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.DeleteSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.DeleteSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteSessionOperation", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "method": { + "shortName": "DeleteSession", + "fullName": "google.cloud.dataproc.v1.SessionController.DeleteSession", + "service": { + "shortName": "SessionController", + "fullName": "google.cloud.dataproc.v1.SessionController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionController_GetIamPolicy_sync", + "title": "dataproc 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": "SessionControllerClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_GetOperation_sync", + "title": "dataproc GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "SessionControllerClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_GetSession_sync", + "title": "dataproc GetSession Sample", + "description": "GetSession gets the resource representation for an interactive session.", + "file": "SessionControllerClient/GetSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSession", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.GetSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.GetSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataprocpb.Session", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "method": { + "shortName": "GetSession", + "fullName": "google.cloud.dataproc.v1.SessionController.GetSession", + "service": { + "shortName": "SessionController", + "fullName": "google.cloud.dataproc.v1.SessionController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionController_ListOperations_sync", + "title": "dataproc ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "SessionControllerClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_ListSessions_sync", + "title": "dataproc ListSessions Sample", + "description": "ListSessions lists interactive sessions.", + "file": "SessionControllerClient/ListSessions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSessions", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.ListSessions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.ListSessionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SessionIterator", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "method": { + "shortName": "ListSessions", + "fullName": "google.cloud.dataproc.v1.SessionController.ListSessions", + "service": { + "shortName": "SessionController", + "fullName": "google.cloud.dataproc.v1.SessionController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionController_SetIamPolicy_sync", + "title": "dataproc 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": "SessionControllerClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionController_TerminateSession_sync", + "title": "dataproc TerminateSession Sample", + "description": "TerminateSession terminates the interactive session.", + "file": "SessionControllerClient/TerminateSession/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TerminateSession", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.TerminateSession", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.TerminateSessionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "TerminateSessionOperation", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "method": { + "shortName": "TerminateSession", + "fullName": "google.cloud.dataproc.v1.SessionController.TerminateSession", + "service": { + "shortName": "SessionController", + "fullName": "google.cloud.dataproc.v1.SessionController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionController_TestIamPermissions_sync", + "title": "dataproc 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": "SessionControllerClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "SessionControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_CancelOperation_sync", + "title": "dataproc CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "SessionTemplateControllerClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_CreateSessionTemplate_sync", + "title": "dataproc CreateSessionTemplate Sample", + "description": "CreateSessionTemplate create a session template synchronously.", + "file": "SessionTemplateControllerClient/CreateSessionTemplate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.CreateSessionTemplate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.CreateSessionTemplateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataprocpb.SessionTemplate", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "method": { + "shortName": "CreateSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController.CreateSessionTemplate", + "service": { + "shortName": "SessionTemplateController", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionTemplateController_DeleteOperation_sync", + "title": "dataproc DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "SessionTemplateControllerClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_DeleteSessionTemplate_sync", + "title": "dataproc DeleteSessionTemplate Sample", + "description": "DeleteSessionTemplate deletes a session template.", + "file": "SessionTemplateControllerClient/DeleteSessionTemplate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.DeleteSessionTemplate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.DeleteSessionTemplateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "method": { + "shortName": "DeleteSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController.DeleteSessionTemplate", + "service": { + "shortName": "SessionTemplateController", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionTemplateController_GetIamPolicy_sync", + "title": "dataproc 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": "SessionTemplateControllerClient/GetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIamPolicy", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.GetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.GetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_GetOperation_sync", + "title": "dataproc GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "SessionTemplateControllerClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_GetSessionTemplate_sync", + "title": "dataproc GetSessionTemplate Sample", + "description": "GetSessionTemplate gets the resource representation for a session template.", + "file": "SessionTemplateControllerClient/GetSessionTemplate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.GetSessionTemplate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.GetSessionTemplateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataprocpb.SessionTemplate", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "method": { + "shortName": "GetSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController.GetSessionTemplate", + "service": { + "shortName": "SessionTemplateController", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionTemplateController_ListOperations_sync", + "title": "dataproc ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "SessionTemplateControllerClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_ListSessionTemplates_sync", + "title": "dataproc ListSessionTemplates Sample", + "description": "ListSessionTemplates lists session templates.", + "file": "SessionTemplateControllerClient/ListSessionTemplates/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSessionTemplates", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.ListSessionTemplates", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.ListSessionTemplatesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SessionTemplateIterator", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "method": { + "shortName": "ListSessionTemplates", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController.ListSessionTemplates", + "service": { + "shortName": "SessionTemplateController", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "dataproc_v1_generated_SessionTemplateController_SetIamPolicy_sync", + "title": "dataproc 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": "SessionTemplateControllerClient/SetIamPolicy/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SetIamPolicy", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.SetIamPolicy", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.SetIamPolicyRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.Policy", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_TestIamPermissions_sync", + "title": "dataproc 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": "SessionTemplateControllerClient/TestIamPermissions/main.go", + "language": "GO", + "clientMethod": { + "shortName": "TestIamPermissions", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.TestIamPermissions", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "iampb.TestIamPermissionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*iampb.TestIamPermissionsResponse", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "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": "dataproc_v1_generated_SessionTemplateController_UpdateSessionTemplate_sync", + "title": "dataproc UpdateSessionTemplate Sample", + "description": "UpdateSessionTemplate updates the session template synchronously.", + "file": "SessionTemplateControllerClient/UpdateSessionTemplate/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient.UpdateSessionTemplate", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "dataprocpb.UpdateSessionTemplateRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*dataprocpb.SessionTemplate", + "client": { + "shortName": "SessionTemplateControllerClient", + "fullName": "google.cloud.dataproc.v1.SessionTemplateControllerClient" + }, + "method": { + "shortName": "UpdateSessionTemplate", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController.UpdateSessionTemplate", + "service": { + "shortName": "SessionTemplateController", + "fullName": "google.cloud.dataproc.v1.SessionTemplateController" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, { "regionTag": "dataproc_v1_generated_WorkflowTemplateService_CancelOperation_sync", "title": "dataproc CancelOperation Sample", diff --git a/internal/generated/snippets/go.mod b/internal/generated/snippets/go.mod index 27224dec797..3333069b7e2 100644 --- a/internal/generated/snippets/go.mod +++ b/internal/generated/snippets/go.mod @@ -481,3 +481,5 @@ replace cloud.google.com/go/cloudquotas => ../../../cloudquotas replace cloud.google.com/go/servicehealth => ../../../servicehealth replace cloud.google.com/go/securityposture => ../../../securityposture + +replace cloud.google.com/go/visionai => ../../../visionai diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/AddApplicationStreamInput/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/AddApplicationStreamInput/main.go new file mode 100644 index 00000000000..bf44cf4c0db --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/AddApplicationStreamInput/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_AddApplicationStreamInput_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AddApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AddApplicationStreamInputRequest. + } + op, err := c.AddApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_AddApplicationStreamInput_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CancelOperation/main.go new file mode 100644 index 00000000000..b749e828286 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewAppPlatformClient(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 visionai_v1_generated_AppPlatform_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplication/main.go new file mode 100644 index 00000000000..05113cf0a4c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_CreateApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateApplicationRequest. + } + op, err := c.CreateApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_CreateApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplicationInstances/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplicationInstances/main.go new file mode 100644 index 00000000000..c9e392f4507 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateApplicationInstances/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_CreateApplicationInstances_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateApplicationInstancesRequest. + } + op, err := c.CreateApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_CreateApplicationInstances_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateDraft/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateDraft/main.go new file mode 100644 index 00000000000..d37d6c4a9cd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateDraft/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_CreateDraft_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateDraftRequest. + } + op, err := c.CreateDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_CreateDraft_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateProcessor/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateProcessor/main.go new file mode 100644 index 00000000000..ac9acf20fca --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/CreateProcessor/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_CreateProcessor_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateProcessorRequest. + } + op, err := c.CreateProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_CreateProcessor_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplication/main.go new file mode 100644 index 00000000000..64ddecd88d6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplication/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeleteApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteApplicationRequest. + } + op, err := c.DeleteApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_AppPlatform_DeleteApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplicationInstances/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplicationInstances/main.go new file mode 100644 index 00000000000..b30ab9d3f06 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteApplicationInstances/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeleteApplicationInstances_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteApplicationInstancesRequest. + } + op, err := c.DeleteApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_DeleteApplicationInstances_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteDraft/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteDraft/main.go new file mode 100644 index 00000000000..b42cde224a6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteDraft/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeleteDraft_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteDraftRequest. + } + op, err := c.DeleteDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_AppPlatform_DeleteDraft_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteOperation/main.go new file mode 100644 index 00000000000..80774044a0d --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewAppPlatformClient(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 visionai_v1_generated_AppPlatform_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteProcessor/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteProcessor/main.go new file mode 100644 index 00000000000..d378663e5bf --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeleteProcessor/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeleteProcessor_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteProcessorRequest. + } + op, err := c.DeleteProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_AppPlatform_DeleteProcessor_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeployApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeployApplication/main.go new file mode 100644 index 00000000000..88012e21329 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/DeployApplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_DeployApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeployApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeployApplicationRequest. + } + op, err := c.DeployApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_DeployApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetApplication/main.go new file mode 100644 index 00000000000..5c789d8e5f7 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetApplication/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_GetApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetApplicationRequest. + } + resp, err := c.GetApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_GetApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetDraft/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetDraft/main.go new file mode 100644 index 00000000000..b465fdc1e60 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetDraft/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_GetDraft_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetDraftRequest. + } + resp, err := c.GetDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_GetDraft_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetInstance/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetInstance/main.go new file mode 100644 index 00000000000..199bb473b43 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetInstance/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_GetInstance_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetInstanceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetInstanceRequest. + } + resp, err := c.GetInstance(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_GetInstance_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetOperation/main.go new file mode 100644 index 00000000000..3565e70feb8 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewAppPlatformClient(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 visionai_v1_generated_AppPlatform_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetProcessor/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetProcessor/main.go new file mode 100644 index 00000000000..3defb69d287 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/GetProcessor/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_GetProcessor_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetProcessorRequest. + } + resp, err := c.GetProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_GetProcessor_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListApplications/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListApplications/main.go new file mode 100644 index 00000000000..c73c234331e --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListApplications/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListApplications_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListApplicationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListApplicationsRequest. + } + it := c.ListApplications(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_AppPlatform_ListApplications_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListDrafts/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListDrafts/main.go new file mode 100644 index 00000000000..1883cc8eb8f --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListDrafts/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListDrafts_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListDraftsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListDraftsRequest. + } + it := c.ListDrafts(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_AppPlatform_ListDrafts_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListInstances/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListInstances/main.go new file mode 100644 index 00000000000..8899e195345 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListInstances/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListInstances_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListInstancesRequest. + } + it := c.ListInstances(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_AppPlatform_ListInstances_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListOperations/main.go new file mode 100644 index 00000000000..00dc1a9f876 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewAppPlatformClient(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 visionai_v1_generated_AppPlatform_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListPrebuiltProcessors/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListPrebuiltProcessors/main.go new file mode 100644 index 00000000000..1cfdad8a6f2 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListPrebuiltProcessors/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListPrebuiltProcessors_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListPrebuiltProcessorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListPrebuiltProcessorsRequest. + } + resp, err := c.ListPrebuiltProcessors(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_ListPrebuiltProcessors_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListProcessors/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListProcessors/main.go new file mode 100644 index 00000000000..384be3dc65a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/ListProcessors/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_ListProcessors_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListProcessorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListProcessorsRequest. + } + it := c.ListProcessors(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_AppPlatform_ListProcessors_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/RemoveApplicationStreamInput/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/RemoveApplicationStreamInput/main.go new file mode 100644 index 00000000000..c6486478fd6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/RemoveApplicationStreamInput/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_RemoveApplicationStreamInput_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveApplicationStreamInputRequest. + } + op, err := c.RemoveApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_RemoveApplicationStreamInput_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UndeployApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UndeployApplication/main.go new file mode 100644 index 00000000000..a7d3ae124ed --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UndeployApplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UndeployApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UndeployApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UndeployApplicationRequest. + } + op, err := c.UndeployApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UndeployApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplication/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplication/main.go new file mode 100644 index 00000000000..9eb1b25288e --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplication/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UpdateApplication_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationRequest. + } + op, err := c.UpdateApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UpdateApplication_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationInstances/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationInstances/main.go new file mode 100644 index 00000000000..8daeb571a18 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationInstances/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UpdateApplicationInstances_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationInstancesRequest. + } + op, err := c.UpdateApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UpdateApplicationInstances_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationStreamInput/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationStreamInput/main.go new file mode 100644 index 00000000000..f0085c730aa --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateApplicationStreamInput/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UpdateApplicationStreamInput_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationStreamInputRequest. + } + op, err := c.UpdateApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UpdateApplicationStreamInput_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateDraft/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateDraft/main.go new file mode 100644 index 00000000000..eca9870681d --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateDraft/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UpdateDraft_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateDraftRequest. + } + op, err := c.UpdateDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UpdateDraft_sync] diff --git a/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateProcessor/main.go b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateProcessor/main.go new file mode 100644 index 00000000000..e56e99cda88 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/AppPlatformClient/UpdateProcessor/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_AppPlatform_UpdateProcessor_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateProcessorRequest. + } + op, err := c.UpdateProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_AppPlatform_UpdateProcessor_sync] diff --git a/internal/generated/snippets/visionai/apiv1/HealthCheckClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/CancelOperation/main.go new file mode 100644 index 00000000000..f8838107a3f --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_HealthCheckService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewHealthCheckClient(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 visionai_v1_generated_HealthCheckService_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/HealthCheckClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/DeleteOperation/main.go new file mode 100644 index 00000000000..e24bffd4011 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_HealthCheckService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewHealthCheckClient(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 visionai_v1_generated_HealthCheckService_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/HealthCheckClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/GetOperation/main.go new file mode 100644 index 00000000000..3b453fc02a0 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_HealthCheckService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewHealthCheckClient(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 visionai_v1_generated_HealthCheckService_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/HealthCheckClient/HealthCheck/main.go b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/HealthCheck/main.go new file mode 100644 index 00000000000..f01deb02055 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/HealthCheck/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_HealthCheckService_HealthCheck_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewHealthCheckClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.HealthCheckRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#HealthCheckRequest. + } + resp, err := c.HealthCheck(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_HealthCheckService_HealthCheck_sync] diff --git a/internal/generated/snippets/visionai/apiv1/HealthCheckClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/ListOperations/main.go new file mode 100644 index 00000000000..87cda220a31 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/HealthCheckClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_HealthCheckService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewHealthCheckClient(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 visionai_v1_generated_HealthCheckService_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/BatchRunProcess/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/BatchRunProcess/main.go new file mode 100644 index 00000000000..b16c2039152 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/BatchRunProcess/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_BatchRunProcess_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.BatchRunProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#BatchRunProcessRequest. + } + op, err := c.BatchRunProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_BatchRunProcess_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CancelOperation/main.go new file mode 100644 index 00000000000..068f0141b27 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewLiveVideoAnalyticsClient(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 visionai_v1_generated_LiveVideoAnalytics_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateAnalysis/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateAnalysis/main.go new file mode 100644 index 00000000000..7f68f630511 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateAnalysis/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_CreateAnalysis_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAnalysisRequest. + } + op, err := c.CreateAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_CreateAnalysis_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateOperator/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateOperator/main.go new file mode 100644 index 00000000000..5c592245111 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateOperator/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_CreateOperator_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateOperatorRequest. + } + op, err := c.CreateOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_CreateOperator_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateProcess/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateProcess/main.go new file mode 100644 index 00000000000..f287ab9b577 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/CreateProcess/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_CreateProcess_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateProcessRequest. + } + op, err := c.CreateProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_CreateProcess_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteAnalysis/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteAnalysis/main.go new file mode 100644 index 00000000000..81653e33178 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteAnalysis/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_DeleteAnalysis_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAnalysisRequest. + } + op, err := c.DeleteAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_DeleteAnalysis_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperation/main.go new file mode 100644 index 00000000000..2f6957ad56b --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewLiveVideoAnalyticsClient(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 visionai_v1_generated_LiveVideoAnalytics_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperator/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperator/main.go new file mode 100644 index 00000000000..d0ce7f20702 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteOperator/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_DeleteOperator_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteOperatorRequest. + } + op, err := c.DeleteOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_DeleteOperator_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteProcess/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteProcess/main.go new file mode 100644 index 00000000000..78a824eb5b9 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/DeleteProcess/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_DeleteProcess_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteProcessRequest. + } + op, err := c.DeleteProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_DeleteProcess_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetAnalysis/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetAnalysis/main.go new file mode 100644 index 00000000000..679c7561d23 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetAnalysis/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_GetAnalysis_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAnalysisRequest. + } + resp, err := c.GetAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_GetAnalysis_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperation/main.go new file mode 100644 index 00000000000..c01106e2161 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewLiveVideoAnalyticsClient(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 visionai_v1_generated_LiveVideoAnalytics_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperator/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperator/main.go new file mode 100644 index 00000000000..13c2c3b0d92 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetOperator/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_GetOperator_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetOperatorRequest. + } + resp, err := c.GetOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_GetOperator_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetProcess/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetProcess/main.go new file mode 100644 index 00000000000..ef325bca7f8 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/GetProcess/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_GetProcess_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetProcessRequest. + } + resp, err := c.GetProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_GetProcess_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListAnalyses/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListAnalyses/main.go new file mode 100644 index 00000000000..0b93560d3f4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListAnalyses/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ListAnalyses_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAnalysesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAnalysesRequest. + } + it := c.ListAnalyses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_ListAnalyses_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperations/main.go new file mode 100644 index 00000000000..46ff030d529 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewLiveVideoAnalyticsClient(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 visionai_v1_generated_LiveVideoAnalytics_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperators/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperators/main.go new file mode 100644 index 00000000000..2b05615a6c1 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListOperators/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ListOperators_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListOperatorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListOperatorsRequest. + } + it := c.ListOperators(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_ListOperators_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListProcesses/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListProcesses/main.go new file mode 100644 index 00000000000..78cc562908c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListProcesses/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ListProcesses_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListProcessesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListProcessesRequest. + } + it := c.ListProcesses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_ListProcesses_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListPublicOperators/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListPublicOperators/main.go new file mode 100644 index 00000000000..76e481d4ada --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ListPublicOperators/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ListPublicOperators_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListPublicOperatorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListPublicOperatorsRequest. + } + it := c.ListPublicOperators(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_LiveVideoAnalytics_ListPublicOperators_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ResolveOperatorInfo/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ResolveOperatorInfo/main.go new file mode 100644 index 00000000000..e1cbf7e3c74 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/ResolveOperatorInfo/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_ResolveOperatorInfo_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ResolveOperatorInfoRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ResolveOperatorInfoRequest. + } + resp, err := c.ResolveOperatorInfo(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_ResolveOperatorInfo_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateAnalysis/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateAnalysis/main.go new file mode 100644 index 00000000000..3c89d05ad8f --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateAnalysis/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_UpdateAnalysis_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAnalysisRequest. + } + op, err := c.UpdateAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_UpdateAnalysis_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateOperator/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateOperator/main.go new file mode 100644 index 00000000000..11d940ca66f --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateOperator/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_UpdateOperator_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateOperatorRequest. + } + op, err := c.UpdateOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_UpdateOperator_sync] diff --git a/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateProcess/main.go b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateProcess/main.go new file mode 100644 index 00000000000..86417165b14 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/LiveVideoAnalyticsClient/UpdateProcess/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_LiveVideoAnalytics_UpdateProcess_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateProcessRequest. + } + op, err := c.UpdateProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_LiveVideoAnalytics_UpdateProcess_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/AcquireLease/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/AcquireLease/main.go new file mode 100644 index 00000000000..d59a525d660 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/AcquireLease/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_AcquireLease_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AcquireLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AcquireLeaseRequest. + } + resp, err := c.AcquireLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamingService_AcquireLease_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/CancelOperation/main.go new file mode 100644 index 00000000000..22fbaa1a25d --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamingClient(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 visionai_v1_generated_StreamingService_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/DeleteOperation/main.go new file mode 100644 index 00000000000..46a0815ca4a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamingClient(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 visionai_v1_generated_StreamingService_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/GetOperation/main.go new file mode 100644 index 00000000000..29c8f8cdbfe --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamingClient(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 visionai_v1_generated_StreamingService_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/ListOperations/main.go new file mode 100644 index 00000000000..3c16319d964 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewStreamingClient(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 visionai_v1_generated_StreamingService_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceiveEvents/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceiveEvents/main.go new file mode 100644 index 00000000000..0a9851b5353 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceiveEvents/main.go @@ -0,0 +1,69 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_ReceiveEvents_sync] + +package main + +import ( + "context" + "io" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.ReceiveEvents(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.ReceiveEventsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamingService_ReceiveEvents_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceivePackets/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceivePackets/main.go new file mode 100644 index 00000000000..7040ae5063a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReceivePackets/main.go @@ -0,0 +1,69 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_ReceivePackets_sync] + +package main + +import ( + "context" + "io" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.ReceivePackets(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.ReceivePacketsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamingService_ReceivePackets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/ReleaseLease/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReleaseLease/main.go new file mode 100644 index 00000000000..2c805564638 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/ReleaseLease/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_ReleaseLease_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ReleaseLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ReleaseLeaseRequest. + } + resp, err := c.ReleaseLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamingService_ReleaseLease_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/RenewLease/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/RenewLease/main.go new file mode 100644 index 00000000000..aad3445c753 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/RenewLease/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_RenewLease_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RenewLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RenewLeaseRequest. + } + resp, err := c.RenewLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamingService_RenewLease_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamingClient/SendPackets/main.go b/internal/generated/snippets/visionai/apiv1/StreamingClient/SendPackets/main.go new file mode 100644 index 00000000000..cd745d3891c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamingClient/SendPackets/main.go @@ -0,0 +1,69 @@ +// Copyright 2024 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 visionai_v1_generated_StreamingService_SendPackets_sync] + +package main + +import ( + "context" + "io" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.SendPackets(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.SendPacketsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamingService_SendPackets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/CancelOperation/main.go new file mode 100644 index 00000000000..f66583511b7 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamsClient(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 visionai_v1_generated_StreamsService_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateCluster/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateCluster/main.go new file mode 100644 index 00000000000..69cc0894519 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateCluster/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_CreateCluster_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateClusterRequest. + } + op, err := c.CreateCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_CreateCluster_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateEvent/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateEvent/main.go new file mode 100644 index 00000000000..8a36f6e7c0c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateEvent/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_CreateEvent_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateEventRequest. + } + op, err := c.CreateEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_CreateEvent_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateSeries/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateSeries/main.go new file mode 100644 index 00000000000..934d34d062a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateSeries/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_CreateSeries_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSeriesRequest. + } + op, err := c.CreateSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_CreateSeries_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateStream/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateStream/main.go new file mode 100644 index 00000000000..89b6d6dc321 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/CreateStream/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_CreateStream_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateStreamRequest. + } + op, err := c.CreateStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_CreateStream_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteCluster/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteCluster/main.go new file mode 100644 index 00000000000..3b099a1c07c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteCluster/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_DeleteCluster_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteClusterRequest. + } + op, err := c.DeleteCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_StreamsService_DeleteCluster_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteEvent/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteEvent/main.go new file mode 100644 index 00000000000..1e40c741b18 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteEvent/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_DeleteEvent_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteEventRequest. + } + op, err := c.DeleteEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_StreamsService_DeleteEvent_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteOperation/main.go new file mode 100644 index 00000000000..9c1423d6f4e --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamsClient(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 visionai_v1_generated_StreamsService_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteSeries/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteSeries/main.go new file mode 100644 index 00000000000..773327e2cfd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteSeries/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_DeleteSeries_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSeriesRequest. + } + op, err := c.DeleteSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_StreamsService_DeleteSeries_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteStream/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteStream/main.go new file mode 100644 index 00000000000..4194e753b21 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/DeleteStream/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_DeleteStream_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteStreamRequest. + } + op, err := c.DeleteStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_StreamsService_DeleteStream_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GenerateStreamHlsToken/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GenerateStreamHlsToken/main.go new file mode 100644 index 00000000000..5d7c9af8b64 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GenerateStreamHlsToken/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GenerateStreamHlsToken_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateStreamHlsTokenRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateStreamHlsTokenRequest. + } + resp, err := c.GenerateStreamHlsToken(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GenerateStreamHlsToken_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetCluster/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetCluster/main.go new file mode 100644 index 00000000000..116ea5b08c6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetCluster/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetCluster_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetClusterRequest. + } + resp, err := c.GetCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GetCluster_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetEvent/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetEvent/main.go new file mode 100644 index 00000000000..cb4167843ff --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetEvent/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetEvent_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetEventRequest. + } + resp, err := c.GetEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GetEvent_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetOperation/main.go new file mode 100644 index 00000000000..f89be3dbc10 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewStreamsClient(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 visionai_v1_generated_StreamsService_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetSeries/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetSeries/main.go new file mode 100644 index 00000000000..7ed00c85a92 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetSeries/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetSeries_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSeriesRequest. + } + resp, err := c.GetSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GetSeries_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStream/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStream/main.go new file mode 100644 index 00000000000..c7e20562bd5 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStream/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetStream_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetStreamRequest. + } + resp, err := c.GetStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GetStream_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStreamThumbnail/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStreamThumbnail/main.go new file mode 100644 index 00000000000..75018ae0732 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/GetStreamThumbnail/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_GetStreamThumbnail_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetStreamThumbnailRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetStreamThumbnailRequest. + } + op, err := c.GetStreamThumbnail(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_GetStreamThumbnail_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/ListClusters/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListClusters/main.go new file mode 100644 index 00000000000..161eb8933f0 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListClusters/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_ListClusters_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListClustersRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListClustersRequest. + } + it := c.ListClusters(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamsService_ListClusters_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/ListEvents/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListEvents/main.go new file mode 100644 index 00000000000..a6ae3f79b55 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListEvents/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_ListEvents_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListEventsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListEventsRequest. + } + it := c.ListEvents(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamsService_ListEvents_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListOperations/main.go new file mode 100644 index 00000000000..3d6ffa2debb --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewStreamsClient(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 visionai_v1_generated_StreamsService_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/ListSeries/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListSeries/main.go new file mode 100644 index 00000000000..0085050848c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListSeries/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_ListSeries_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSeriesRequest. + } + it := c.ListSeries(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamsService_ListSeries_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/ListStreams/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListStreams/main.go new file mode 100644 index 00000000000..d193d815370 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/ListStreams/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_ListStreams_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListStreamsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListStreamsRequest. + } + it := c.ListStreams(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_StreamsService_ListStreams_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/MaterializeChannel/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/MaterializeChannel/main.go new file mode 100644 index 00000000000..076d67c7ae4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/MaterializeChannel/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_MaterializeChannel_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.MaterializeChannelRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#MaterializeChannelRequest. + } + op, err := c.MaterializeChannel(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_MaterializeChannel_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateCluster/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateCluster/main.go new file mode 100644 index 00000000000..94f380d27bb --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateCluster/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_UpdateCluster_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateClusterRequest. + } + op, err := c.UpdateCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_UpdateCluster_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateEvent/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateEvent/main.go new file mode 100644 index 00000000000..a3f955bf50a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateEvent/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_UpdateEvent_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateEventRequest. + } + op, err := c.UpdateEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_UpdateEvent_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateSeries/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateSeries/main.go new file mode 100644 index 00000000000..7c441b1a241 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateSeries/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_UpdateSeries_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSeriesRequest. + } + op, err := c.UpdateSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_UpdateSeries_sync] diff --git a/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateStream/main.go b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateStream/main.go new file mode 100644 index 00000000000..67a59564e55 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/StreamsClient/UpdateStream/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_StreamsService_UpdateStream_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateStreamRequest. + } + op, err := c.UpdateStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_StreamsService_UpdateStream_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/AddCollectionItem/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AddCollectionItem/main.go new file mode 100644 index 00000000000..16cc1e49908 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AddCollectionItem/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_AddCollectionItem_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AddCollectionItemRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AddCollectionItemRequest. + } + resp, err := c.AddCollectionItem(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_AddCollectionItem_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeAsset/main.go new file mode 100644 index 00000000000..a5f1d09701a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeAsset/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_AnalyzeAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AnalyzeAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AnalyzeAssetRequest. + } + op, err := c.AnalyzeAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_AnalyzeAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeCorpus/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeCorpus/main.go new file mode 100644 index 00000000000..c675f8589b2 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/AnalyzeCorpus/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_AnalyzeCorpus_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AnalyzeCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AnalyzeCorpusRequest. + } + op, err := c.AnalyzeCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_AnalyzeCorpus_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CancelOperation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CancelOperation/main.go new file mode 100644 index 00000000000..db053304c4e --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CancelOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CancelOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewWarehouseClient(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 visionai_v1_generated_Warehouse_CancelOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ClipAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ClipAsset/main.go new file mode 100644 index 00000000000..b4df0761257 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ClipAsset/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ClipAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ClipAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ClipAssetRequest. + } + resp, err := c.ClipAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_ClipAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAnnotation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAnnotation/main.go new file mode 100644 index 00000000000..fac4a1db171 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAnnotation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateAnnotation_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAnnotationRequest. + } + resp, err := c.CreateAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateAnnotation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAsset/main.go new file mode 100644 index 00000000000..c0c3851a1e4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateAsset/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAssetRequest. + } + resp, err := c.CreateAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCollection/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCollection/main.go new file mode 100644 index 00000000000..282af580975 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCollection/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateCollection_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateCollectionRequest. + } + op, err := c.CreateCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateCollection_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCorpus/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCorpus/main.go new file mode 100644 index 00000000000..8dd07b075d1 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateCorpus/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateCorpus_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateCorpusRequest. + } + op, err := c.CreateCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateCorpus_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateDataSchema/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateDataSchema/main.go new file mode 100644 index 00000000000..1bd4427bb61 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateDataSchema/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateDataSchema_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateDataSchemaRequest. + } + resp, err := c.CreateDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateDataSchema_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndex/main.go new file mode 100644 index 00000000000..fb6138eb0a3 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndex/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateIndexRequest. + } + op, err := c.CreateIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndexEndpoint/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndexEndpoint/main.go new file mode 100644 index 00000000000..31e7f355741 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateIndexEndpoint/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateIndexEndpoint_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateIndexEndpointRequest. + } + op, err := c.CreateIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateIndexEndpoint_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchConfig/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchConfig/main.go new file mode 100644 index 00000000000..ef4c7e57210 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateSearchConfig_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSearchConfigRequest. + } + resp, err := c.CreateSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateSearchConfig_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchHypernym/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchHypernym/main.go new file mode 100644 index 00000000000..32c50316752 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/CreateSearchHypernym/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_CreateSearchHypernym_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSearchHypernymRequest. + } + resp, err := c.CreateSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_CreateSearchHypernym_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAnnotation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAnnotation/main.go new file mode 100644 index 00000000000..d1d0fe95109 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAnnotation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteAnnotation_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAnnotationRequest. + } + err = c.DeleteAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteAnnotation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAsset/main.go new file mode 100644 index 00000000000..b9b8e5fda0c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteAsset/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAssetRequest. + } + op, err := c.DeleteAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCollection/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCollection/main.go new file mode 100644 index 00000000000..59e613a13d5 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCollection/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteCollection_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteCollectionRequest. + } + op, err := c.DeleteCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteCollection_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCorpus/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCorpus/main.go new file mode 100644 index 00000000000..617e07604df --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteCorpus/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteCorpus_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteCorpusRequest. + } + err = c.DeleteCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteCorpus_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteDataSchema/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteDataSchema/main.go new file mode 100644 index 00000000000..fe211367260 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteDataSchema/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteDataSchema_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteDataSchemaRequest. + } + err = c.DeleteDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteDataSchema_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndex/main.go new file mode 100644 index 00000000000..a6b05b7ef93 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndex/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteIndexRequest. + } + op, err := c.DeleteIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndexEndpoint/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndexEndpoint/main.go new file mode 100644 index 00000000000..ab5608c3bee --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteIndexEndpoint/main.go @@ -0,0 +1,56 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteIndexEndpoint_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteIndexEndpointRequest. + } + op, err := c.DeleteIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteIndexEndpoint_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteOperation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteOperation/main.go new file mode 100644 index 00000000000..3d6bfe96d79 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteOperation/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewWarehouseClient(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 visionai_v1_generated_Warehouse_DeleteOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchConfig/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchConfig/main.go new file mode 100644 index 00000000000..2dcccf6c7a6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchConfig/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteSearchConfig_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSearchConfigRequest. + } + err = c.DeleteSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteSearchConfig_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchHypernym/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchHypernym/main.go new file mode 100644 index 00000000000..eb547b358d4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeleteSearchHypernym/main.go @@ -0,0 +1,51 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeleteSearchHypernym_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSearchHypernymRequest. + } + err = c.DeleteSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +// [END visionai_v1_generated_Warehouse_DeleteSearchHypernym_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeployIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeployIndex/main.go new file mode 100644 index 00000000000..d0d24dec309 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/DeployIndex/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_DeployIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeployIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeployIndexRequest. + } + op, err := c.DeployIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_DeployIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateHlsUri/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateHlsUri/main.go new file mode 100644 index 00000000000..09e77fe07a1 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateHlsUri/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GenerateHlsUri_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateHlsUriRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateHlsUriRequest. + } + resp, err := c.GenerateHlsUri(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GenerateHlsUri_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateRetrievalUrl/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateRetrievalUrl/main.go new file mode 100644 index 00000000000..333d7e89c22 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GenerateRetrievalUrl/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GenerateRetrievalUrl_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateRetrievalUrlRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateRetrievalUrlRequest. + } + resp, err := c.GenerateRetrievalUrl(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GenerateRetrievalUrl_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAnnotation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAnnotation/main.go new file mode 100644 index 00000000000..317396b58cd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAnnotation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetAnnotation_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAnnotationRequest. + } + resp, err := c.GetAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetAnnotation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAsset/main.go new file mode 100644 index 00000000000..a587d411c84 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetAsset/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAssetRequest. + } + resp, err := c.GetAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCollection/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCollection/main.go new file mode 100644 index 00000000000..d3e954d22a1 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCollection/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetCollection_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetCollectionRequest. + } + resp, err := c.GetCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetCollection_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCorpus/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCorpus/main.go new file mode 100644 index 00000000000..df784d424ca --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetCorpus/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetCorpus_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetCorpusRequest. + } + resp, err := c.GetCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetCorpus_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetDataSchema/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetDataSchema/main.go new file mode 100644 index 00000000000..5423c60c6d3 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetDataSchema/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetDataSchema_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetDataSchemaRequest. + } + resp, err := c.GetDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetDataSchema_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndex/main.go new file mode 100644 index 00000000000..07fd901febc --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndex/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetIndexRequest. + } + resp, err := c.GetIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndexEndpoint/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndexEndpoint/main.go new file mode 100644 index 00000000000..c447cd2d7fa --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetIndexEndpoint/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetIndexEndpoint_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetIndexEndpointRequest. + } + resp, err := c.GetIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetIndexEndpoint_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetOperation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetOperation/main.go new file mode 100644 index 00000000000..bbc7cbc3629 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetOperation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetOperation_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" +) + +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 := visionai.NewWarehouseClient(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 visionai_v1_generated_Warehouse_GetOperation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchConfig/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchConfig/main.go new file mode 100644 index 00000000000..01d763b28af --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetSearchConfig_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSearchConfigRequest. + } + resp, err := c.GetSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetSearchConfig_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchHypernym/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchHypernym/main.go new file mode 100644 index 00000000000..624e19b9e4b --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/GetSearchHypernym/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_GetSearchHypernym_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSearchHypernymRequest. + } + resp, err := c.GetSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_GetSearchHypernym_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ImportAssets/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ImportAssets/main.go new file mode 100644 index 00000000000..e89921f4772 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ImportAssets/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ImportAssets_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ImportAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ImportAssetsRequest. + } + op, err := c.ImportAssets(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_ImportAssets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/IndexAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/IndexAsset/main.go new file mode 100644 index 00000000000..313da04c4f4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/IndexAsset/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_IndexAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.IndexAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#IndexAssetRequest. + } + op, err := c.IndexAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_IndexAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/IngestAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/IngestAsset/main.go new file mode 100644 index 00000000000..b7d37968d8a --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/IngestAsset/main.go @@ -0,0 +1,69 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_IngestAsset_sync] + +package main + +import ( + "context" + "io" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.IngestAsset(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.IngestAssetRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_IngestAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAnnotations/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAnnotations/main.go new file mode 100644 index 00000000000..c3841721e58 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAnnotations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListAnnotations_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAnnotationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAnnotationsRequest. + } + it := c.ListAnnotations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListAnnotations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAssets/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAssets/main.go new file mode 100644 index 00000000000..b189dd4679b --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListAssets/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListAssets_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAssetsRequest. + } + it := c.ListAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListAssets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCollections/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCollections/main.go new file mode 100644 index 00000000000..2e9db07d09d --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCollections/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListCollections_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListCollectionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListCollectionsRequest. + } + it := c.ListCollections(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListCollections_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCorpora/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCorpora/main.go new file mode 100644 index 00000000000..faf3552fc88 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListCorpora/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListCorpora_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListCorporaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListCorporaRequest. + } + it := c.ListCorpora(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListCorpora_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListDataSchemas/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListDataSchemas/main.go new file mode 100644 index 00000000000..32d2ed8acc4 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListDataSchemas/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListDataSchemas_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListDataSchemasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListDataSchemasRequest. + } + it := c.ListDataSchemas(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListDataSchemas_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexEndpoints/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexEndpoints/main.go new file mode 100644 index 00000000000..08e3ac2a1ae --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexEndpoints/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListIndexEndpoints_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListIndexEndpointsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListIndexEndpointsRequest. + } + it := c.ListIndexEndpoints(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListIndexEndpoints_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexes/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexes/main.go new file mode 100644 index 00000000000..dbb7f331fe1 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListIndexes/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListIndexes_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListIndexesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListIndexesRequest. + } + it := c.ListIndexes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListIndexes_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListOperations/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListOperations/main.go new file mode 100644 index 00000000000..99788f7274e --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListOperations/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListOperations_sync] + +package main + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + "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 := visionai.NewWarehouseClient(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 visionai_v1_generated_Warehouse_ListOperations_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchConfigs/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchConfigs/main.go new file mode 100644 index 00000000000..9fcf231daa8 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchConfigs/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListSearchConfigs_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSearchConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSearchConfigsRequest. + } + it := c.ListSearchConfigs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListSearchConfigs_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchHypernyms/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchHypernyms/main.go new file mode 100644 index 00000000000..5ef32167948 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ListSearchHypernyms/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ListSearchHypernyms_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSearchHypernymsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSearchHypernymsRequest. + } + it := c.ListSearchHypernyms(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ListSearchHypernyms_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveCollectionItem/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveCollectionItem/main.go new file mode 100644 index 00000000000..52c17b68be6 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveCollectionItem/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_RemoveCollectionItem_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveCollectionItemRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveCollectionItemRequest. + } + resp, err := c.RemoveCollectionItem(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_RemoveCollectionItem_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveIndexAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveIndexAsset/main.go new file mode 100644 index 00000000000..3e0448f4742 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/RemoveIndexAsset/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_RemoveIndexAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveIndexAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveIndexAssetRequest. + } + op, err := c.RemoveIndexAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_RemoveIndexAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchAssets/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchAssets/main.go new file mode 100644 index 00000000000..333274f0949 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchAssets/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_SearchAssets_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.SearchAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#SearchAssetsRequest. + } + it := c.SearchAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_SearchAssets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchIndexEndpoint/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchIndexEndpoint/main.go new file mode 100644 index 00000000000..f9f85446333 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/SearchIndexEndpoint/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_SearchIndexEndpoint_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.SearchIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#SearchIndexEndpointRequest. + } + it := c.SearchIndexEndpoint(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_SearchIndexEndpoint_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UndeployIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UndeployIndex/main.go new file mode 100644 index 00000000000..82b5bae02f3 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UndeployIndex/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UndeployIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UndeployIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UndeployIndexRequest. + } + op, err := c.UndeployIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UndeployIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAnnotation/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAnnotation/main.go new file mode 100644 index 00000000000..a32b07ed425 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAnnotation/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateAnnotation_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAnnotationRequest. + } + resp, err := c.UpdateAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateAnnotation_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAsset/main.go new file mode 100644 index 00000000000..80d5c233ae9 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateAsset/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAssetRequest. + } + resp, err := c.UpdateAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCollection/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCollection/main.go new file mode 100644 index 00000000000..90e37ff3ecd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCollection/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateCollection_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateCollectionRequest. + } + resp, err := c.UpdateCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateCollection_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCorpus/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCorpus/main.go new file mode 100644 index 00000000000..850f64d7bb7 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateCorpus/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateCorpus_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateCorpusRequest. + } + resp, err := c.UpdateCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateCorpus_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateDataSchema/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateDataSchema/main.go new file mode 100644 index 00000000000..a3cfcca3fe5 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateDataSchema/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateDataSchema_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateDataSchemaRequest. + } + resp, err := c.UpdateDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateDataSchema_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndex/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndex/main.go new file mode 100644 index 00000000000..01ef58b3bcd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndex/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateIndex_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateIndexRequest. + } + op, err := c.UpdateIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateIndex_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndexEndpoint/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndexEndpoint/main.go new file mode 100644 index 00000000000..5104d593478 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateIndexEndpoint/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateIndexEndpoint_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateIndexEndpointRequest. + } + op, err := c.UpdateIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateIndexEndpoint_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchConfig/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchConfig/main.go new file mode 100644 index 00000000000..e6a4bc0d692 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchConfig/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateSearchConfig_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSearchConfigRequest. + } + resp, err := c.UpdateSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateSearchConfig_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchHypernym/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchHypernym/main.go new file mode 100644 index 00000000000..48558a1cfdd --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UpdateSearchHypernym/main.go @@ -0,0 +1,53 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UpdateSearchHypernym_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSearchHypernymRequest. + } + resp, err := c.UpdateSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UpdateSearchHypernym_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/UploadAsset/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UploadAsset/main.go new file mode 100644 index 00000000000..edc70fe9568 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/UploadAsset/main.go @@ -0,0 +1,58 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_UploadAsset_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" +) + +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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UploadAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UploadAssetRequest. + } + op, err := c.UploadAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +// [END visionai_v1_generated_Warehouse_UploadAsset_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewCollectionItems/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewCollectionItems/main.go new file mode 100644 index 00000000000..aab326d453c --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewCollectionItems/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ViewCollectionItems_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ViewCollectionItemsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ViewCollectionItemsRequest. + } + it := c.ViewCollectionItems(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ViewCollectionItems_sync] diff --git a/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewIndexedAssets/main.go b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewIndexedAssets/main.go new file mode 100644 index 00000000000..d4f84da2653 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/WarehouseClient/ViewIndexedAssets/main.go @@ -0,0 +1,60 @@ +// Copyright 2024 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 visionai_v1_generated_Warehouse_ViewIndexedAssets_sync] + +package main + +import ( + "context" + + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ViewIndexedAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ViewIndexedAssetsRequest. + } + it := c.ViewIndexedAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +// [END visionai_v1_generated_Warehouse_ViewIndexedAssets_sync] diff --git a/internal/generated/snippets/visionai/apiv1/snippet_metadata.google.cloud.visionai.v1.json b/internal/generated/snippets/visionai/apiv1/snippet_metadata.google.cloud.visionai.v1.json new file mode 100644 index 00000000000..dc2f71f6452 --- /dev/null +++ b/internal/generated/snippets/visionai/apiv1/snippet_metadata.google.cloud.visionai.v1.json @@ -0,0 +1,7388 @@ +{ + "clientLibrary": { + "name": "cloud.google.com/go/visionai/apiv1", + "version": "0.0.0", + "language": "GO", + "apis": [ + { + "id": "google.cloud.visionai.v1", + "version": "v1" + } + ] + }, + "snippets": [ + { + "regionTag": "visionai_v1_generated_AppPlatform_AddApplicationStreamInput_sync", + "title": "visionai AddApplicationStreamInput Sample", + "description": "AddApplicationStreamInput adds target stream input to the Application.\nIf the Application is deployed, the corresponding new Application instance\nwill be created. If the stream has already been in the Application, the RPC\nwill fail.", + "file": "AppPlatformClient/AddApplicationStreamInput/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AddApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.AddApplicationStreamInput", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.AddApplicationStreamInputRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AddApplicationStreamInputOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "AddApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatform.AddApplicationStreamInput", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "AppPlatformClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "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": "visionai_v1_generated_AppPlatform_CreateApplication_sync", + "title": "visionai CreateApplication Sample", + "description": "CreateApplication creates a new Application in a given project and location.", + "file": "AppPlatformClient/CreateApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.CreateApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateApplicationOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "CreateApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.CreateApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_CreateApplicationInstances_sync", + "title": "visionai CreateApplicationInstances Sample", + "description": "CreateApplicationInstances adds target stream input to the Application.\nIf the Application is deployed, the corresponding new Application instance\nwill be created. If the stream has already been in the Application, the RPC\nwill fail.", + "file": "AppPlatformClient/CreateApplicationInstances/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.CreateApplicationInstances", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateApplicationInstancesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateApplicationInstancesOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "CreateApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatform.CreateApplicationInstances", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_CreateDraft_sync", + "title": "visionai CreateDraft Sample", + "description": "CreateDraft creates a new Draft in a given project and location.", + "file": "AppPlatformClient/CreateDraft/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDraft", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.CreateDraft", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateDraftRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateDraftOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "CreateDraft", + "fullName": "google.cloud.visionai.v1.AppPlatform.CreateDraft", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_CreateProcessor_sync", + "title": "visionai CreateProcessor Sample", + "description": "CreateProcessor creates a new Processor in a given project and location.", + "file": "AppPlatformClient/CreateProcessor/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.CreateProcessor", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateProcessorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateProcessorOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "CreateProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatform.CreateProcessor", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_DeleteApplication_sync", + "title": "visionai DeleteApplication Sample", + "description": "DeleteApplication deletes a single Application.", + "file": "AppPlatformClient/DeleteApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeleteApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteApplicationOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "DeleteApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.DeleteApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_DeleteApplicationInstances_sync", + "title": "visionai DeleteApplicationInstances Sample", + "description": "DeleteApplicationInstances remove target stream input to the Application, if the Application is\ndeployed, the corresponding instance based will be deleted. If the stream\nis not in the Application, the RPC will fail.", + "file": "AppPlatformClient/DeleteApplicationInstances/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeleteApplicationInstances", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteApplicationInstancesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteApplicationInstancesOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "DeleteApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatform.DeleteApplicationInstances", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_DeleteDraft_sync", + "title": "visionai DeleteDraft Sample", + "description": "DeleteDraft deletes a single Draft.", + "file": "AppPlatformClient/DeleteDraft/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDraft", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeleteDraft", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteDraftRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteDraftOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "DeleteDraft", + "fullName": "google.cloud.visionai.v1.AppPlatform.DeleteDraft", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "AppPlatformClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "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": "visionai_v1_generated_AppPlatform_DeleteProcessor_sync", + "title": "visionai DeleteProcessor Sample", + "description": "DeleteProcessor deletes a single Processor.", + "file": "AppPlatformClient/DeleteProcessor/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeleteProcessor", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteProcessorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteProcessorOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "DeleteProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatform.DeleteProcessor", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_DeployApplication_sync", + "title": "visionai DeployApplication Sample", + "description": "DeployApplication deploys a single Application.", + "file": "AppPlatformClient/DeployApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeployApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.DeployApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeployApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeployApplicationOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "DeployApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.DeployApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_GetApplication_sync", + "title": "visionai GetApplication Sample", + "description": "GetApplication gets details of a single Application.", + "file": "AppPlatformClient/GetApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.GetApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Application", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "GetApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.GetApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_GetDraft_sync", + "title": "visionai GetDraft Sample", + "description": "GetDraft gets details of a single Draft.", + "file": "AppPlatformClient/GetDraft/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDraft", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.GetDraft", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetDraftRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Draft", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "GetDraft", + "fullName": "google.cloud.visionai.v1.AppPlatform.GetDraft", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_GetInstance_sync", + "title": "visionai GetInstance Sample", + "description": "GetInstance gets details of a single Instance.", + "file": "AppPlatformClient/GetInstance/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetInstance", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.GetInstance", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetInstanceRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Instance", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "GetInstance", + "fullName": "google.cloud.visionai.v1.AppPlatform.GetInstance", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "AppPlatformClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "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": "visionai_v1_generated_AppPlatform_GetProcessor_sync", + "title": "visionai GetProcessor Sample", + "description": "GetProcessor gets details of a single Processor.", + "file": "AppPlatformClient/GetProcessor/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.GetProcessor", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetProcessorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Processor", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "GetProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatform.GetProcessor", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_ListApplications_sync", + "title": "visionai ListApplications Sample", + "description": "ListApplications lists Applications in a given project and location.", + "file": "AppPlatformClient/ListApplications/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListApplications", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListApplications", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListApplicationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ApplicationIterator", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "ListApplications", + "fullName": "google.cloud.visionai.v1.AppPlatform.ListApplications", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_ListDrafts_sync", + "title": "visionai ListDrafts Sample", + "description": "ListDrafts lists Drafts in a given project and location.", + "file": "AppPlatformClient/ListDrafts/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDrafts", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListDrafts", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListDraftsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DraftIterator", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "ListDrafts", + "fullName": "google.cloud.visionai.v1.AppPlatform.ListDrafts", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_ListInstances_sync", + "title": "visionai ListInstances Sample", + "description": "ListInstances lists Instances in a given project and location.", + "file": "AppPlatformClient/ListInstances/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListInstances", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListInstances", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListInstancesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "InstanceIterator", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "ListInstances", + "fullName": "google.cloud.visionai.v1.AppPlatform.ListInstances", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "AppPlatformClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "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": "visionai_v1_generated_AppPlatform_ListPrebuiltProcessors_sync", + "title": "visionai ListPrebuiltProcessors Sample", + "description": "ListPrebuiltProcessors listPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt\nProcessors.", + "file": "AppPlatformClient/ListPrebuiltProcessors/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListPrebuiltProcessors", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListPrebuiltProcessors", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListPrebuiltProcessorsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.ListPrebuiltProcessorsResponse", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "ListPrebuiltProcessors", + "fullName": "google.cloud.visionai.v1.AppPlatform.ListPrebuiltProcessors", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_ListProcessors_sync", + "title": "visionai ListProcessors Sample", + "description": "ListProcessors lists Processors in a given project and location.", + "file": "AppPlatformClient/ListProcessors/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListProcessors", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.ListProcessors", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListProcessorsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ProcessorIterator", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "ListProcessors", + "fullName": "google.cloud.visionai.v1.AppPlatform.ListProcessors", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_RemoveApplicationStreamInput_sync", + "title": "visionai RemoveApplicationStreamInput Sample", + "description": "RemoveApplicationStreamInput remove target stream input to the Application, if the Application is\ndeployed, the corresponding instance based will be deleted. If the stream\nis not in the Application, the RPC will fail.", + "file": "AppPlatformClient/RemoveApplicationStreamInput/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RemoveApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.RemoveApplicationStreamInput", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.RemoveApplicationStreamInputRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RemoveApplicationStreamInputOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "RemoveApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatform.RemoveApplicationStreamInput", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UndeployApplication_sync", + "title": "visionai UndeployApplication Sample", + "description": "UndeployApplication undeploys a single Application.", + "file": "AppPlatformClient/UndeployApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UndeployApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UndeployApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UndeployApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UndeployApplicationOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UndeployApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.UndeployApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UpdateApplication_sync", + "title": "visionai UpdateApplication Sample", + "description": "UpdateApplication updates the parameters of a single Application.", + "file": "AppPlatformClient/UpdateApplication/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateApplication", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UpdateApplication", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateApplicationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateApplicationOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UpdateApplication", + "fullName": "google.cloud.visionai.v1.AppPlatform.UpdateApplication", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UpdateApplicationInstances_sync", + "title": "visionai UpdateApplicationInstances Sample", + "description": "UpdateApplicationInstances adds target stream input to the Application.\nIf the Application is deployed, the corresponding new Application instance\nwill be created. If the stream has already been in the Application, the RPC\nwill fail.", + "file": "AppPlatformClient/UpdateApplicationInstances/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UpdateApplicationInstances", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateApplicationInstancesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateApplicationInstancesOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UpdateApplicationInstances", + "fullName": "google.cloud.visionai.v1.AppPlatform.UpdateApplicationInstances", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UpdateApplicationStreamInput_sync", + "title": "visionai UpdateApplicationStreamInput Sample", + "description": "UpdateApplicationStreamInput update target stream input to the Application, if the Application is\ndeployed, the corresponding instance based will be deployed. For\nCreateOrUpdate behavior, set allow_missing to true.", + "file": "AppPlatformClient/UpdateApplicationStreamInput/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UpdateApplicationStreamInput", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateApplicationStreamInputRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateApplicationStreamInputOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UpdateApplicationStreamInput", + "fullName": "google.cloud.visionai.v1.AppPlatform.UpdateApplicationStreamInput", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UpdateDraft_sync", + "title": "visionai UpdateDraft Sample", + "description": "UpdateDraft updates the parameters of a single Draft.", + "file": "AppPlatformClient/UpdateDraft/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDraft", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UpdateDraft", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateDraftRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateDraftOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UpdateDraft", + "fullName": "google.cloud.visionai.v1.AppPlatform.UpdateDraft", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_AppPlatform_UpdateProcessor_sync", + "title": "visionai UpdateProcessor Sample", + "description": "UpdateProcessor updates the parameters of a single Processor.", + "file": "AppPlatformClient/UpdateProcessor/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatformClient.UpdateProcessor", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateProcessorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateProcessorOperation", + "client": { + "shortName": "AppPlatformClient", + "fullName": "google.cloud.visionai.v1.AppPlatformClient" + }, + "method": { + "shortName": "UpdateProcessor", + "fullName": "google.cloud.visionai.v1.AppPlatform.UpdateProcessor", + "service": { + "shortName": "AppPlatform", + "fullName": "google.cloud.visionai.v1.AppPlatform" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_HealthCheckService_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "HealthCheckClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.HealthCheckClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "HealthCheckClient", + "fullName": "google.cloud.visionai.v1.HealthCheckClient" + }, + "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": "visionai_v1_generated_HealthCheckService_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "HealthCheckClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.HealthCheckClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "HealthCheckClient", + "fullName": "google.cloud.visionai.v1.HealthCheckClient" + }, + "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": "visionai_v1_generated_HealthCheckService_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "HealthCheckClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.HealthCheckClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "HealthCheckClient", + "fullName": "google.cloud.visionai.v1.HealthCheckClient" + }, + "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": "visionai_v1_generated_HealthCheckService_HealthCheck_sync", + "title": "visionai HealthCheck Sample", + "description": "HealthCheck healthCheck method checks the health status of the cluster.", + "file": "HealthCheckClient/HealthCheck/main.go", + "language": "GO", + "clientMethod": { + "shortName": "HealthCheck", + "fullName": "google.cloud.visionai.v1.HealthCheckClient.HealthCheck", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.HealthCheckRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.HealthCheckResponse", + "client": { + "shortName": "HealthCheckClient", + "fullName": "google.cloud.visionai.v1.HealthCheckClient" + }, + "method": { + "shortName": "HealthCheck", + "fullName": "google.cloud.visionai.v1.HealthCheckService.HealthCheck", + "service": { + "shortName": "HealthCheckService", + "fullName": "google.cloud.visionai.v1.HealthCheckService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_HealthCheckService_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "HealthCheckClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.HealthCheckClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "HealthCheckClient", + "fullName": "google.cloud.visionai.v1.HealthCheckClient" + }, + "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": "visionai_v1_generated_LiveVideoAnalytics_BatchRunProcess_sync", + "title": "visionai BatchRunProcess Sample", + "description": "BatchRunProcess run all of the processes to \"completion\". Max time for each process is\nthe LRO time limit.", + "file": "LiveVideoAnalyticsClient/BatchRunProcess/main.go", + "language": "GO", + "clientMethod": { + "shortName": "BatchRunProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.BatchRunProcess", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.BatchRunProcessRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "BatchRunProcessOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "BatchRunProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.BatchRunProcess", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "LiveVideoAnalyticsClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "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": "visionai_v1_generated_LiveVideoAnalytics_CreateAnalysis_sync", + "title": "visionai CreateAnalysis Sample", + "description": "CreateAnalysis creates a new Analysis in a given project and location.", + "file": "LiveVideoAnalyticsClient/CreateAnalysis/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.CreateAnalysis", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateAnalysisRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateAnalysisOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "CreateAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.CreateAnalysis", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_CreateOperator_sync", + "title": "visionai CreateOperator Sample", + "description": "CreateOperator creates a new Operator in a given project and location.", + "file": "LiveVideoAnalyticsClient/CreateOperator/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.CreateOperator", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateOperatorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateOperatorOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "CreateOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.CreateOperator", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_CreateProcess_sync", + "title": "visionai CreateProcess Sample", + "description": "CreateProcess creates a new Process in a given project and location.", + "file": "LiveVideoAnalyticsClient/CreateProcess/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.CreateProcess", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateProcessRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateProcessOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "CreateProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.CreateProcess", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_DeleteAnalysis_sync", + "title": "visionai DeleteAnalysis Sample", + "description": "DeleteAnalysis deletes a single Analysis.", + "file": "LiveVideoAnalyticsClient/DeleteAnalysis/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.DeleteAnalysis", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteAnalysisRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteAnalysisOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "DeleteAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.DeleteAnalysis", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "LiveVideoAnalyticsClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "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": "visionai_v1_generated_LiveVideoAnalytics_DeleteOperator_sync", + "title": "visionai DeleteOperator Sample", + "description": "DeleteOperator deletes a single Operator.", + "file": "LiveVideoAnalyticsClient/DeleteOperator/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.DeleteOperator", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteOperatorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteOperatorOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "DeleteOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.DeleteOperator", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_DeleteProcess_sync", + "title": "visionai DeleteProcess Sample", + "description": "DeleteProcess deletes a single Process.", + "file": "LiveVideoAnalyticsClient/DeleteProcess/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.DeleteProcess", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteProcessRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteProcessOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "DeleteProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.DeleteProcess", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_GetAnalysis_sync", + "title": "visionai GetAnalysis Sample", + "description": "GetAnalysis gets details of a single Analysis.", + "file": "LiveVideoAnalyticsClient/GetAnalysis/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.GetAnalysis", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetAnalysisRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Analysis", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "GetAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.GetAnalysis", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "LiveVideoAnalyticsClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "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": "visionai_v1_generated_LiveVideoAnalytics_GetOperator_sync", + "title": "visionai GetOperator Sample", + "description": "GetOperator gets details of a single Operator.", + "file": "LiveVideoAnalyticsClient/GetOperator/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.GetOperator", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetOperatorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Operator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "GetOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.GetOperator", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_GetProcess_sync", + "title": "visionai GetProcess Sample", + "description": "GetProcess gets details of a single Process.", + "file": "LiveVideoAnalyticsClient/GetProcess/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.GetProcess", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetProcessRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Process", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "GetProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.GetProcess", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_ListAnalyses_sync", + "title": "visionai ListAnalyses Sample", + "description": "ListAnalyses lists Analyses in a given project and location.", + "file": "LiveVideoAnalyticsClient/ListAnalyses/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListAnalyses", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ListAnalyses", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListAnalysesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AnalysisIterator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "ListAnalyses", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.ListAnalyses", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "LiveVideoAnalyticsClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "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": "visionai_v1_generated_LiveVideoAnalytics_ListOperators_sync", + "title": "visionai ListOperators Sample", + "description": "ListOperators lists Operators in a given project and location.", + "file": "LiveVideoAnalyticsClient/ListOperators/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperators", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ListOperators", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListOperatorsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperatorIterator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "ListOperators", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.ListOperators", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_ListProcesses_sync", + "title": "visionai ListProcesses Sample", + "description": "ListProcesses lists Processes in a given project and location.", + "file": "LiveVideoAnalyticsClient/ListProcesses/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListProcesses", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ListProcesses", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListProcessesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ProcessIterator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "ListProcesses", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.ListProcesses", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_ListPublicOperators_sync", + "title": "visionai ListPublicOperators Sample", + "description": "ListPublicOperators listPublicOperators returns all the operators in public registry.", + "file": "LiveVideoAnalyticsClient/ListPublicOperators/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListPublicOperators", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ListPublicOperators", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListPublicOperatorsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperatorIterator", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "ListPublicOperators", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.ListPublicOperators", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_ResolveOperatorInfo_sync", + "title": "visionai ResolveOperatorInfo Sample", + "description": "ResolveOperatorInfo resolveOperatorInfo returns the operator information based on the request.", + "file": "LiveVideoAnalyticsClient/ResolveOperatorInfo/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ResolveOperatorInfo", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.ResolveOperatorInfo", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ResolveOperatorInfoRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.ResolveOperatorInfoResponse", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "ResolveOperatorInfo", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.ResolveOperatorInfo", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_UpdateAnalysis_sync", + "title": "visionai UpdateAnalysis Sample", + "description": "UpdateAnalysis updates the parameters of a single Analysis.", + "file": "LiveVideoAnalyticsClient/UpdateAnalysis/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.UpdateAnalysis", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateAnalysisRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateAnalysisOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "UpdateAnalysis", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.UpdateAnalysis", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_UpdateOperator_sync", + "title": "visionai UpdateOperator Sample", + "description": "UpdateOperator updates the parameters of a single Operator.", + "file": "LiveVideoAnalyticsClient/UpdateOperator/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.UpdateOperator", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateOperatorRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateOperatorOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "UpdateOperator", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.UpdateOperator", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_LiveVideoAnalytics_UpdateProcess_sync", + "title": "visionai UpdateProcess Sample", + "description": "UpdateProcess updates the parameters of a single Process.", + "file": "LiveVideoAnalyticsClient/UpdateProcess/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient.UpdateProcess", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateProcessRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateProcessOperation", + "client": { + "shortName": "LiveVideoAnalyticsClient", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalyticsClient" + }, + "method": { + "shortName": "UpdateProcess", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics.UpdateProcess", + "service": { + "shortName": "LiveVideoAnalytics", + "fullName": "google.cloud.visionai.v1.LiveVideoAnalytics" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_AcquireLease_sync", + "title": "visionai AcquireLease Sample", + "description": "AcquireLease acquireLease acquires a lease.", + "file": "StreamingClient/AcquireLease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AcquireLease", + "fullName": "google.cloud.visionai.v1.StreamingClient.AcquireLease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.AcquireLeaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Lease", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "AcquireLease", + "fullName": "google.cloud.visionai.v1.StreamingService.AcquireLease", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "StreamingClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.StreamingClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "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": "visionai_v1_generated_StreamingService_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "StreamingClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.StreamingClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "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": "visionai_v1_generated_StreamingService_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "StreamingClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.StreamingClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "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": "visionai_v1_generated_StreamingService_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "StreamingClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.StreamingClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "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": "visionai_v1_generated_StreamingService_ReceiveEvents_sync", + "title": "visionai ReceiveEvents Sample", + "description": "ReceiveEvents receive events given the stream name.\n\n\nThis method is not supported for the REST transport.", + "file": "StreamingClient/ReceiveEvents/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ReceiveEvents", + "fullName": "google.cloud.visionai.v1.StreamingClient.ReceiveEvents", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "visionaipb.StreamingService_ReceiveEventsClient", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "ReceiveEvents", + "fullName": "google.cloud.visionai.v1.StreamingService.ReceiveEvents", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 69, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_ReceivePackets_sync", + "title": "visionai ReceivePackets Sample", + "description": "ReceivePackets receive packets from the series.\n\n\nThis method is not supported for the REST transport.", + "file": "StreamingClient/ReceivePackets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ReceivePackets", + "fullName": "google.cloud.visionai.v1.StreamingClient.ReceivePackets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "visionaipb.StreamingService_ReceivePacketsClient", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "ReceivePackets", + "fullName": "google.cloud.visionai.v1.StreamingService.ReceivePackets", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 69, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_ReleaseLease_sync", + "title": "visionai ReleaseLease Sample", + "description": "ReleaseLease rleaseLease releases a lease.", + "file": "StreamingClient/ReleaseLease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ReleaseLease", + "fullName": "google.cloud.visionai.v1.StreamingClient.ReleaseLease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ReleaseLeaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.ReleaseLeaseResponse", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "ReleaseLease", + "fullName": "google.cloud.visionai.v1.StreamingService.ReleaseLease", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_RenewLease_sync", + "title": "visionai RenewLease Sample", + "description": "RenewLease renewLease renews a lease.", + "file": "StreamingClient/RenewLease/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RenewLease", + "fullName": "google.cloud.visionai.v1.StreamingClient.RenewLease", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.RenewLeaseRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Lease", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "RenewLease", + "fullName": "google.cloud.visionai.v1.StreamingService.RenewLease", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamingService_SendPackets_sync", + "title": "visionai SendPackets Sample", + "description": "SendPackets send packets to the series.\n\n\nThis method is not supported for the REST transport.", + "file": "StreamingClient/SendPackets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SendPackets", + "fullName": "google.cloud.visionai.v1.StreamingClient.SendPackets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "visionaipb.StreamingService_SendPacketsClient", + "client": { + "shortName": "StreamingClient", + "fullName": "google.cloud.visionai.v1.StreamingClient" + }, + "method": { + "shortName": "SendPackets", + "fullName": "google.cloud.visionai.v1.StreamingService.SendPackets", + "service": { + "shortName": "StreamingService", + "fullName": "google.cloud.visionai.v1.StreamingService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 69, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "StreamsClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.StreamsClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "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": "visionai_v1_generated_StreamsService_CreateCluster_sync", + "title": "visionai CreateCluster Sample", + "description": "CreateCluster creates a new Cluster in a given project and location.", + "file": "StreamsClient/CreateCluster/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateCluster", + "fullName": "google.cloud.visionai.v1.StreamsClient.CreateCluster", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateClusterRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateClusterOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "CreateCluster", + "fullName": "google.cloud.visionai.v1.StreamsService.CreateCluster", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_CreateEvent_sync", + "title": "visionai CreateEvent Sample", + "description": "CreateEvent creates a new Event in a given project and location.", + "file": "StreamsClient/CreateEvent/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateEvent", + "fullName": "google.cloud.visionai.v1.StreamsClient.CreateEvent", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateEventRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateEventOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "CreateEvent", + "fullName": "google.cloud.visionai.v1.StreamsService.CreateEvent", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_CreateSeries_sync", + "title": "visionai CreateSeries Sample", + "description": "CreateSeries creates a new Series in a given project and location.", + "file": "StreamsClient/CreateSeries/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSeries", + "fullName": "google.cloud.visionai.v1.StreamsClient.CreateSeries", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateSeriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateSeriesOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "CreateSeries", + "fullName": "google.cloud.visionai.v1.StreamsService.CreateSeries", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_CreateStream_sync", + "title": "visionai CreateStream Sample", + "description": "CreateStream creates a new Stream in a given project and location.", + "file": "StreamsClient/CreateStream/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateStream", + "fullName": "google.cloud.visionai.v1.StreamsClient.CreateStream", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateStreamRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateStreamOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "CreateStream", + "fullName": "google.cloud.visionai.v1.StreamsService.CreateStream", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_DeleteCluster_sync", + "title": "visionai DeleteCluster Sample", + "description": "DeleteCluster deletes a single Cluster.", + "file": "StreamsClient/DeleteCluster/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteCluster", + "fullName": "google.cloud.visionai.v1.StreamsClient.DeleteCluster", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteClusterRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteClusterOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "DeleteCluster", + "fullName": "google.cloud.visionai.v1.StreamsService.DeleteCluster", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_DeleteEvent_sync", + "title": "visionai DeleteEvent Sample", + "description": "DeleteEvent deletes a single Event.", + "file": "StreamsClient/DeleteEvent/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteEvent", + "fullName": "google.cloud.visionai.v1.StreamsClient.DeleteEvent", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteEventRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteEventOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "DeleteEvent", + "fullName": "google.cloud.visionai.v1.StreamsService.DeleteEvent", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "StreamsClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.StreamsClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "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": "visionai_v1_generated_StreamsService_DeleteSeries_sync", + "title": "visionai DeleteSeries Sample", + "description": "DeleteSeries deletes a single Series.", + "file": "StreamsClient/DeleteSeries/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSeries", + "fullName": "google.cloud.visionai.v1.StreamsClient.DeleteSeries", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteSeriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteSeriesOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "DeleteSeries", + "fullName": "google.cloud.visionai.v1.StreamsService.DeleteSeries", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_DeleteStream_sync", + "title": "visionai DeleteStream Sample", + "description": "DeleteStream deletes a single Stream.", + "file": "StreamsClient/DeleteStream/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteStream", + "fullName": "google.cloud.visionai.v1.StreamsClient.DeleteStream", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteStreamRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteStreamOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "DeleteStream", + "fullName": "google.cloud.visionai.v1.StreamsService.DeleteStream", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GenerateStreamHlsToken_sync", + "title": "visionai GenerateStreamHlsToken Sample", + "description": "GenerateStreamHlsToken generate the JWT auth token required to get the stream HLS contents.", + "file": "StreamsClient/GenerateStreamHlsToken/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GenerateStreamHlsToken", + "fullName": "google.cloud.visionai.v1.StreamsClient.GenerateStreamHlsToken", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GenerateStreamHlsTokenRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.GenerateStreamHlsTokenResponse", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GenerateStreamHlsToken", + "fullName": "google.cloud.visionai.v1.StreamsService.GenerateStreamHlsToken", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GetCluster_sync", + "title": "visionai GetCluster Sample", + "description": "GetCluster gets details of a single Cluster.", + "file": "StreamsClient/GetCluster/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetCluster", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetCluster", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetClusterRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Cluster", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GetCluster", + "fullName": "google.cloud.visionai.v1.StreamsService.GetCluster", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GetEvent_sync", + "title": "visionai GetEvent Sample", + "description": "GetEvent gets details of a single Event.", + "file": "StreamsClient/GetEvent/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetEvent", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetEvent", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetEventRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Event", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GetEvent", + "fullName": "google.cloud.visionai.v1.StreamsService.GetEvent", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "StreamsClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "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": "visionai_v1_generated_StreamsService_GetSeries_sync", + "title": "visionai GetSeries Sample", + "description": "GetSeries gets details of a single Series.", + "file": "StreamsClient/GetSeries/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSeries", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetSeries", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetSeriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Series", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GetSeries", + "fullName": "google.cloud.visionai.v1.StreamsService.GetSeries", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GetStream_sync", + "title": "visionai GetStream Sample", + "description": "GetStream gets details of a single Stream.", + "file": "StreamsClient/GetStream/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetStream", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetStream", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetStreamRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Stream", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GetStream", + "fullName": "google.cloud.visionai.v1.StreamsService.GetStream", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_GetStreamThumbnail_sync", + "title": "visionai GetStreamThumbnail Sample", + "description": "GetStreamThumbnail gets the thumbnail (image snapshot) of a single Stream.", + "file": "StreamsClient/GetStreamThumbnail/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetStreamThumbnail", + "fullName": "google.cloud.visionai.v1.StreamsClient.GetStreamThumbnail", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetStreamThumbnailRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "GetStreamThumbnailOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "GetStreamThumbnail", + "fullName": "google.cloud.visionai.v1.StreamsService.GetStreamThumbnail", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_ListClusters_sync", + "title": "visionai ListClusters Sample", + "description": "ListClusters lists Clusters in a given project and location.", + "file": "StreamsClient/ListClusters/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListClusters", + "fullName": "google.cloud.visionai.v1.StreamsClient.ListClusters", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListClustersRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ClusterIterator", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "ListClusters", + "fullName": "google.cloud.visionai.v1.StreamsService.ListClusters", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_ListEvents_sync", + "title": "visionai ListEvents Sample", + "description": "ListEvents lists Events in a given project and location.", + "file": "StreamsClient/ListEvents/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListEvents", + "fullName": "google.cloud.visionai.v1.StreamsClient.ListEvents", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListEventsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "EventIterator", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "ListEvents", + "fullName": "google.cloud.visionai.v1.StreamsService.ListEvents", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "StreamsClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.StreamsClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "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": "visionai_v1_generated_StreamsService_ListSeries_sync", + "title": "visionai ListSeries Sample", + "description": "ListSeries lists Series in a given project and location.", + "file": "StreamsClient/ListSeries/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSeries", + "fullName": "google.cloud.visionai.v1.StreamsClient.ListSeries", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListSeriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SeriesIterator", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "ListSeries", + "fullName": "google.cloud.visionai.v1.StreamsService.ListSeries", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_ListStreams_sync", + "title": "visionai ListStreams Sample", + "description": "ListStreams lists Streams in a given project and location.", + "file": "StreamsClient/ListStreams/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListStreams", + "fullName": "google.cloud.visionai.v1.StreamsClient.ListStreams", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListStreamsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "StreamIterator", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "ListStreams", + "fullName": "google.cloud.visionai.v1.StreamsService.ListStreams", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_MaterializeChannel_sync", + "title": "visionai MaterializeChannel Sample", + "description": "MaterializeChannel materialize a channel.", + "file": "StreamsClient/MaterializeChannel/main.go", + "language": "GO", + "clientMethod": { + "shortName": "MaterializeChannel", + "fullName": "google.cloud.visionai.v1.StreamsClient.MaterializeChannel", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.MaterializeChannelRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "MaterializeChannelOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "MaterializeChannel", + "fullName": "google.cloud.visionai.v1.StreamsService.MaterializeChannel", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_UpdateCluster_sync", + "title": "visionai UpdateCluster Sample", + "description": "UpdateCluster updates the parameters of a single Cluster.", + "file": "StreamsClient/UpdateCluster/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateCluster", + "fullName": "google.cloud.visionai.v1.StreamsClient.UpdateCluster", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateClusterRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateClusterOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "UpdateCluster", + "fullName": "google.cloud.visionai.v1.StreamsService.UpdateCluster", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_UpdateEvent_sync", + "title": "visionai UpdateEvent Sample", + "description": "UpdateEvent updates the parameters of a single Event.", + "file": "StreamsClient/UpdateEvent/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateEvent", + "fullName": "google.cloud.visionai.v1.StreamsClient.UpdateEvent", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateEventRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateEventOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "UpdateEvent", + "fullName": "google.cloud.visionai.v1.StreamsService.UpdateEvent", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_UpdateSeries_sync", + "title": "visionai UpdateSeries Sample", + "description": "UpdateSeries updates the parameters of a single Event.", + "file": "StreamsClient/UpdateSeries/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSeries", + "fullName": "google.cloud.visionai.v1.StreamsClient.UpdateSeries", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateSeriesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateSeriesOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "UpdateSeries", + "fullName": "google.cloud.visionai.v1.StreamsService.UpdateSeries", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_StreamsService_UpdateStream_sync", + "title": "visionai UpdateStream Sample", + "description": "UpdateStream updates the parameters of a single Stream.", + "file": "StreamsClient/UpdateStream/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateStream", + "fullName": "google.cloud.visionai.v1.StreamsClient.UpdateStream", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateStreamRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateStreamOperation", + "client": { + "shortName": "StreamsClient", + "fullName": "google.cloud.visionai.v1.StreamsClient" + }, + "method": { + "shortName": "UpdateStream", + "fullName": "google.cloud.visionai.v1.StreamsService.UpdateStream", + "service": { + "shortName": "StreamsService", + "fullName": "google.cloud.visionai.v1.StreamsService" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_AddCollectionItem_sync", + "title": "visionai AddCollectionItem Sample", + "description": "AddCollectionItem adds an item into a Collection.", + "file": "WarehouseClient/AddCollectionItem/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AddCollectionItem", + "fullName": "google.cloud.visionai.v1.WarehouseClient.AddCollectionItem", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.AddCollectionItemRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.AddCollectionItemResponse", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "AddCollectionItem", + "fullName": "google.cloud.visionai.v1.Warehouse.AddCollectionItem", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_AnalyzeAsset_sync", + "title": "visionai AnalyzeAsset Sample", + "description": "AnalyzeAsset analyze asset to power search capability.", + "file": "WarehouseClient/AnalyzeAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AnalyzeAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.AnalyzeAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.AnalyzeAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AnalyzeAssetOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "AnalyzeAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.AnalyzeAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_AnalyzeCorpus_sync", + "title": "visionai AnalyzeCorpus Sample", + "description": "AnalyzeCorpus analyzes a corpus.", + "file": "WarehouseClient/AnalyzeCorpus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "AnalyzeCorpus", + "fullName": "google.cloud.visionai.v1.WarehouseClient.AnalyzeCorpus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.AnalyzeCorpusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AnalyzeCorpusOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "AnalyzeCorpus", + "fullName": "google.cloud.visionai.v1.Warehouse.AnalyzeCorpus", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CancelOperation_sync", + "title": "visionai CancelOperation Sample", + "description": "CancelOperation is a utility method from google.longrunning.Operations.", + "file": "WarehouseClient/CancelOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CancelOperation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CancelOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.CancelOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "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": "visionai_v1_generated_Warehouse_ClipAsset_sync", + "title": "visionai ClipAsset Sample", + "description": "ClipAsset generates clips for downloading. The api takes in a time range, and\ngenerates a clip of the first content available after start_time and\nbefore end_time, which may overflow beyond these bounds.\nReturned clips are truncated if the total size of the clips are larger\nthan 100MB.", + "file": "WarehouseClient/ClipAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ClipAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ClipAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ClipAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.ClipAssetResponse", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ClipAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.ClipAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateAnnotation_sync", + "title": "visionai CreateAnnotation Sample", + "description": "CreateAnnotation creates annotation inside asset.", + "file": "WarehouseClient/CreateAnnotation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateAnnotation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateAnnotation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateAnnotationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Annotation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateAnnotation", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateAnnotation", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateAsset_sync", + "title": "visionai CreateAsset Sample", + "description": "CreateAsset creates an asset inside corpus.", + "file": "WarehouseClient/CreateAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Asset", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateCollection_sync", + "title": "visionai CreateCollection Sample", + "description": "CreateCollection creates a collection.", + "file": "WarehouseClient/CreateCollection/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateCollection", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateCollection", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateCollectionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateCollectionOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateCollection", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateCollection", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateCorpus_sync", + "title": "visionai CreateCorpus Sample", + "description": "CreateCorpus creates a corpus inside a project.", + "file": "WarehouseClient/CreateCorpus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateCorpus", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateCorpus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateCorpusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateCorpusOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateCorpus", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateCorpus", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateDataSchema_sync", + "title": "visionai CreateDataSchema Sample", + "description": "CreateDataSchema creates data schema inside corpus.", + "file": "WarehouseClient/CreateDataSchema/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateDataSchema", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateDataSchema", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateDataSchemaRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.DataSchema", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateDataSchema", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateDataSchema", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateIndex_sync", + "title": "visionai CreateIndex Sample", + "description": "CreateIndex creates an Index under the corpus.", + "file": "WarehouseClient/CreateIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateIndexOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateIndexEndpoint_sync", + "title": "visionai CreateIndexEndpoint Sample", + "description": "CreateIndexEndpoint creates an IndexEndpoint.", + "file": "WarehouseClient/CreateIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CreateIndexEndpointOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateIndexEndpoint", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateIndexEndpoint", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateSearchConfig_sync", + "title": "visionai CreateSearchConfig Sample", + "description": "CreateSearchConfig creates a search configuration inside a corpus.\n\nPlease follow the rules below to create a valid CreateSearchConfigRequest.\n--- General Rules ---\n1. Request.search_config_id must not be associated with an existing\nSearchConfig.\n2. Request must contain at least one non-empty search_criteria_property or\nfacet_property.\n3. mapped_fields must not be empty, and must map to existing UGA keys.\n4. All mapped_fields must be of the same type.\n5. All mapped_fields must share the same granularity.\n6. All mapped_fields must share the same semantic SearchConfig match\noptions.\nFor property-specific rules, please reference the comments for\nFacetProperty and SearchCriteriaProperty.", + "file": "WarehouseClient/CreateSearchConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSearchConfig", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateSearchConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateSearchConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchConfig", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateSearchConfig", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateSearchConfig", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_CreateSearchHypernym_sync", + "title": "visionai CreateSearchHypernym Sample", + "description": "CreateSearchHypernym creates a SearchHypernym inside a corpus.", + "file": "WarehouseClient/CreateSearchHypernym/main.go", + "language": "GO", + "clientMethod": { + "shortName": "CreateSearchHypernym", + "fullName": "google.cloud.visionai.v1.WarehouseClient.CreateSearchHypernym", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.CreateSearchHypernymRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchHypernym", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "CreateSearchHypernym", + "fullName": "google.cloud.visionai.v1.Warehouse.CreateSearchHypernym", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteAnnotation_sync", + "title": "visionai DeleteAnnotation Sample", + "description": "DeleteAnnotation deletes annotation inside asset.", + "file": "WarehouseClient/DeleteAnnotation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteAnnotation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteAnnotation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteAnnotationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteAnnotation", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteAnnotation", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteAsset_sync", + "title": "visionai DeleteAsset Sample", + "description": "DeleteAsset deletes asset inside corpus.", + "file": "WarehouseClient/DeleteAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteAssetOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteCollection_sync", + "title": "visionai DeleteCollection Sample", + "description": "DeleteCollection deletes a collection.", + "file": "WarehouseClient/DeleteCollection/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteCollection", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteCollection", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteCollectionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteCollectionOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteCollection", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteCollection", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteCorpus_sync", + "title": "visionai DeleteCorpus Sample", + "description": "DeleteCorpus deletes a corpus only if its empty.\nReturns empty response.", + "file": "WarehouseClient/DeleteCorpus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteCorpus", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteCorpus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteCorpusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteCorpus", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteCorpus", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteDataSchema_sync", + "title": "visionai DeleteDataSchema Sample", + "description": "DeleteDataSchema deletes data schema inside corpus.", + "file": "WarehouseClient/DeleteDataSchema/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteDataSchema", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteDataSchema", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteDataSchemaRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteDataSchema", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteDataSchema", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteIndex_sync", + "title": "visionai DeleteIndex Sample", + "description": "DeleteIndex delete a single Index. In order to delete an index, the caller must\nmake sure that it is not deployed to any index endpoint.", + "file": "WarehouseClient/DeleteIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteIndexOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteIndexEndpoint_sync", + "title": "visionai DeleteIndexEndpoint Sample", + "description": "DeleteIndexEndpoint deletes an IndexEndpoint.", + "file": "WarehouseClient/DeleteIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeleteIndexEndpointOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteIndexEndpoint", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteIndexEndpoint", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 56, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteOperation_sync", + "title": "visionai DeleteOperation Sample", + "description": "DeleteOperation is a utility method from google.longrunning.Operations.", + "file": "WarehouseClient/DeleteOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteOperation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.DeleteOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "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": "visionai_v1_generated_Warehouse_DeleteSearchConfig_sync", + "title": "visionai DeleteSearchConfig Sample", + "description": "DeleteSearchConfig deletes a search configuration inside a corpus.\n\nFor a DeleteSearchConfigRequest to be valid,\nRequest.search_configuration.name must already exist.", + "file": "WarehouseClient/DeleteSearchConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSearchConfig", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteSearchConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteSearchConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteSearchConfig", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteSearchConfig", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeleteSearchHypernym_sync", + "title": "visionai DeleteSearchHypernym Sample", + "description": "DeleteSearchHypernym deletes a SearchHypernym inside a corpus.", + "file": "WarehouseClient/DeleteSearchHypernym/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeleteSearchHypernym", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeleteSearchHypernym", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeleteSearchHypernymRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeleteSearchHypernym", + "fullName": "google.cloud.visionai.v1.Warehouse.DeleteSearchHypernym", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 51, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_DeployIndex_sync", + "title": "visionai DeployIndex Sample", + "description": "DeployIndex deploys an Index to IndexEndpoint.", + "file": "WarehouseClient/DeployIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "DeployIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.DeployIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.DeployIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DeployIndexOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "DeployIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.DeployIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GenerateHlsUri_sync", + "title": "visionai GenerateHlsUri Sample", + "description": "GenerateHlsUri generates a uri for an HLS manifest. The api takes in a collection of time\nranges, and generates a URI for an HLS manifest that covers all the\nrequested time ranges.", + "file": "WarehouseClient/GenerateHlsUri/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GenerateHlsUri", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GenerateHlsUri", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GenerateHlsUriRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.GenerateHlsUriResponse", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GenerateHlsUri", + "fullName": "google.cloud.visionai.v1.Warehouse.GenerateHlsUri", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GenerateRetrievalUrl_sync", + "title": "visionai GenerateRetrievalUrl Sample", + "description": "GenerateRetrievalUrl generates a signed url for downloading the asset.\nFor video warehouse, please see comment of UploadAsset about how to allow\nretrieval of cloud storage files in a different project.", + "file": "WarehouseClient/GenerateRetrievalUrl/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GenerateRetrievalUrl", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GenerateRetrievalUrl", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GenerateRetrievalUrlRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.GenerateRetrievalUrlResponse", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GenerateRetrievalUrl", + "fullName": "google.cloud.visionai.v1.Warehouse.GenerateRetrievalUrl", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetAnnotation_sync", + "title": "visionai GetAnnotation Sample", + "description": "GetAnnotation reads annotation inside asset.", + "file": "WarehouseClient/GetAnnotation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetAnnotation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetAnnotation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetAnnotationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Annotation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetAnnotation", + "fullName": "google.cloud.visionai.v1.Warehouse.GetAnnotation", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetAsset_sync", + "title": "visionai GetAsset Sample", + "description": "GetAsset reads an asset inside corpus.", + "file": "WarehouseClient/GetAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Asset", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.GetAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetCollection_sync", + "title": "visionai GetCollection Sample", + "description": "GetCollection gets a collection.", + "file": "WarehouseClient/GetCollection/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetCollection", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetCollection", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetCollectionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Collection", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetCollection", + "fullName": "google.cloud.visionai.v1.Warehouse.GetCollection", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetCorpus_sync", + "title": "visionai GetCorpus Sample", + "description": "GetCorpus gets corpus details inside a project.", + "file": "WarehouseClient/GetCorpus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetCorpus", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetCorpus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetCorpusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Corpus", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetCorpus", + "fullName": "google.cloud.visionai.v1.Warehouse.GetCorpus", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetDataSchema_sync", + "title": "visionai GetDataSchema Sample", + "description": "GetDataSchema gets data schema inside corpus.", + "file": "WarehouseClient/GetDataSchema/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetDataSchema", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetDataSchema", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetDataSchemaRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.DataSchema", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetDataSchema", + "fullName": "google.cloud.visionai.v1.Warehouse.GetDataSchema", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetIndex_sync", + "title": "visionai GetIndex Sample", + "description": "GetIndex gets the details of a single Index under a Corpus.", + "file": "WarehouseClient/GetIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Index", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.GetIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetIndexEndpoint_sync", + "title": "visionai GetIndexEndpoint Sample", + "description": "GetIndexEndpoint gets an IndexEndpoint.", + "file": "WarehouseClient/GetIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.IndexEndpoint", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetIndexEndpoint", + "fullName": "google.cloud.visionai.v1.Warehouse.GetIndexEndpoint", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetOperation_sync", + "title": "visionai GetOperation Sample", + "description": "GetOperation is a utility method from google.longrunning.Operations.", + "file": "WarehouseClient/GetOperation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetOperation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetOperation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.GetOperationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*longrunningpb.Operation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "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": "visionai_v1_generated_Warehouse_GetSearchConfig_sync", + "title": "visionai GetSearchConfig Sample", + "description": "GetSearchConfig gets a search configuration inside a corpus.", + "file": "WarehouseClient/GetSearchConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSearchConfig", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetSearchConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetSearchConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchConfig", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetSearchConfig", + "fullName": "google.cloud.visionai.v1.Warehouse.GetSearchConfig", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_GetSearchHypernym_sync", + "title": "visionai GetSearchHypernym Sample", + "description": "GetSearchHypernym gets a SearchHypernym inside a corpus.", + "file": "WarehouseClient/GetSearchHypernym/main.go", + "language": "GO", + "clientMethod": { + "shortName": "GetSearchHypernym", + "fullName": "google.cloud.visionai.v1.WarehouseClient.GetSearchHypernym", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.GetSearchHypernymRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchHypernym", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "GetSearchHypernym", + "fullName": "google.cloud.visionai.v1.Warehouse.GetSearchHypernym", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ImportAssets_sync", + "title": "visionai ImportAssets Sample", + "description": "ImportAssets imports assets (images plus annotations) from a meta file on cloud storage.\nEach row in the meta file is corresponding to an image (specified by a\ncloud storage uri) and its annotations.", + "file": "WarehouseClient/ImportAssets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ImportAssets", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ImportAssets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ImportAssetsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "ImportAssetsOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ImportAssets", + "fullName": "google.cloud.visionai.v1.Warehouse.ImportAssets", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_IndexAsset_sync", + "title": "visionai IndexAsset Sample", + "description": "IndexAsset index one asset for search.\nSupported corpus type: Corpus.Type.VIDEO_ON_DEMAND", + "file": "WarehouseClient/IndexAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "IndexAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.IndexAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.IndexAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexAssetOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "IndexAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.IndexAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_IngestAsset_sync", + "title": "visionai IngestAsset Sample", + "description": "IngestAsset ingests data for the asset. It is not allowed to ingest a data chunk which\nis already expired according to TTL.\nThis method is only available via the gRPC API (not HTTP since\nbi-directional streaming is not supported via HTTP).\n\n\nThis method is not supported for the REST transport.", + "file": "WarehouseClient/IngestAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "IngestAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.IngestAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "visionaipb.Warehouse_IngestAssetClient", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "IngestAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.IngestAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 69, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListAnnotations_sync", + "title": "visionai ListAnnotations Sample", + "description": "ListAnnotations lists a list of annotations inside asset.", + "file": "WarehouseClient/ListAnnotations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListAnnotations", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListAnnotations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListAnnotationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AnnotationIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListAnnotations", + "fullName": "google.cloud.visionai.v1.Warehouse.ListAnnotations", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListAssets_sync", + "title": "visionai ListAssets Sample", + "description": "ListAssets lists an list of assets inside corpus.", + "file": "WarehouseClient/ListAssets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListAssets", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListAssets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListAssetsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "AssetIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListAssets", + "fullName": "google.cloud.visionai.v1.Warehouse.ListAssets", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListCollections_sync", + "title": "visionai ListCollections Sample", + "description": "ListCollections lists collections inside a corpus.", + "file": "WarehouseClient/ListCollections/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListCollections", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListCollections", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListCollectionsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CollectionIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListCollections", + "fullName": "google.cloud.visionai.v1.Warehouse.ListCollections", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListCorpora_sync", + "title": "visionai ListCorpora Sample", + "description": "ListCorpora lists all corpora in a project.", + "file": "WarehouseClient/ListCorpora/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListCorpora", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListCorpora", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListCorporaRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CorpusIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListCorpora", + "fullName": "google.cloud.visionai.v1.Warehouse.ListCorpora", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListDataSchemas_sync", + "title": "visionai ListDataSchemas Sample", + "description": "ListDataSchemas lists a list of data schemas inside corpus.", + "file": "WarehouseClient/ListDataSchemas/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListDataSchemas", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListDataSchemas", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListDataSchemasRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "DataSchemaIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListDataSchemas", + "fullName": "google.cloud.visionai.v1.Warehouse.ListDataSchemas", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListIndexEndpoints_sync", + "title": "visionai ListIndexEndpoints Sample", + "description": "ListIndexEndpoints lists all IndexEndpoints in a project.", + "file": "WarehouseClient/ListIndexEndpoints/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListIndexEndpoints", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListIndexEndpointsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexEndpointIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListIndexEndpoints", + "fullName": "google.cloud.visionai.v1.Warehouse.ListIndexEndpoints", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListIndexes_sync", + "title": "visionai ListIndexes Sample", + "description": "ListIndexes list all Indexes in a given Corpus.", + "file": "WarehouseClient/ListIndexes/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListIndexes", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListIndexes", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListIndexesRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListIndexes", + "fullName": "google.cloud.visionai.v1.Warehouse.ListIndexes", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListOperations_sync", + "title": "visionai ListOperations Sample", + "description": "ListOperations is a utility method from google.longrunning.Operations.", + "file": "WarehouseClient/ListOperations/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListOperations", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListOperations", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "longrunningpb.ListOperationsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "OperationIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "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": "visionai_v1_generated_Warehouse_ListSearchConfigs_sync", + "title": "visionai ListSearchConfigs Sample", + "description": "ListSearchConfigs lists all search configurations inside a corpus.", + "file": "WarehouseClient/ListSearchConfigs/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSearchConfigs", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListSearchConfigs", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListSearchConfigsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SearchConfigIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListSearchConfigs", + "fullName": "google.cloud.visionai.v1.Warehouse.ListSearchConfigs", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ListSearchHypernyms_sync", + "title": "visionai ListSearchHypernyms Sample", + "description": "ListSearchHypernyms lists SearchHypernyms inside a corpus.", + "file": "WarehouseClient/ListSearchHypernyms/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ListSearchHypernyms", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ListSearchHypernyms", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ListSearchHypernymsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SearchHypernymIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ListSearchHypernyms", + "fullName": "google.cloud.visionai.v1.Warehouse.ListSearchHypernyms", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_RemoveCollectionItem_sync", + "title": "visionai RemoveCollectionItem Sample", + "description": "RemoveCollectionItem removes an item from a collection.", + "file": "WarehouseClient/RemoveCollectionItem/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RemoveCollectionItem", + "fullName": "google.cloud.visionai.v1.WarehouseClient.RemoveCollectionItem", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.RemoveCollectionItemRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.RemoveCollectionItemResponse", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "RemoveCollectionItem", + "fullName": "google.cloud.visionai.v1.Warehouse.RemoveCollectionItem", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_RemoveIndexAsset_sync", + "title": "visionai RemoveIndexAsset Sample", + "description": "RemoveIndexAsset remove one asset's index data for search.\nSupported corpus type: Corpus.Type.VIDEO_ON_DEMAND", + "file": "WarehouseClient/RemoveIndexAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "RemoveIndexAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.RemoveIndexAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.RemoveIndexAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "RemoveIndexAssetOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "RemoveIndexAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.RemoveIndexAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_SearchAssets_sync", + "title": "visionai SearchAssets Sample", + "description": "SearchAssets search media asset.", + "file": "WarehouseClient/SearchAssets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SearchAssets", + "fullName": "google.cloud.visionai.v1.WarehouseClient.SearchAssets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.SearchAssetsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SearchResultItemIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "SearchAssets", + "fullName": "google.cloud.visionai.v1.Warehouse.SearchAssets", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_SearchIndexEndpoint_sync", + "title": "visionai SearchIndexEndpoint Sample", + "description": "SearchIndexEndpoint search a deployed index endpoint (IMAGE corpus type only).", + "file": "WarehouseClient/SearchIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "SearchIndexEndpoint", + "fullName": "google.cloud.visionai.v1.WarehouseClient.SearchIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.SearchIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "SearchResultItemIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "SearchIndexEndpoint", + "fullName": "google.cloud.visionai.v1.Warehouse.SearchIndexEndpoint", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UndeployIndex_sync", + "title": "visionai UndeployIndex Sample", + "description": "UndeployIndex undeploys an Index from IndexEndpoint.", + "file": "WarehouseClient/UndeployIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UndeployIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UndeployIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UndeployIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UndeployIndexOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UndeployIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.UndeployIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateAnnotation_sync", + "title": "visionai UpdateAnnotation Sample", + "description": "UpdateAnnotation updates annotation inside asset.", + "file": "WarehouseClient/UpdateAnnotation/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateAnnotation", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateAnnotation", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateAnnotationRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Annotation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateAnnotation", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateAnnotation", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateAsset_sync", + "title": "visionai UpdateAsset Sample", + "description": "UpdateAsset updates an asset inside corpus.", + "file": "WarehouseClient/UpdateAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Asset", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateCollection_sync", + "title": "visionai UpdateCollection Sample", + "description": "UpdateCollection updates a collection.", + "file": "WarehouseClient/UpdateCollection/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateCollection", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateCollection", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateCollectionRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Collection", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateCollection", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateCollection", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateCorpus_sync", + "title": "visionai UpdateCorpus Sample", + "description": "UpdateCorpus updates a corpus in a project.", + "file": "WarehouseClient/UpdateCorpus/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateCorpus", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateCorpus", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateCorpusRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.Corpus", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateCorpus", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateCorpus", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateDataSchema_sync", + "title": "visionai UpdateDataSchema Sample", + "description": "UpdateDataSchema updates data schema inside corpus.", + "file": "WarehouseClient/UpdateDataSchema/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateDataSchema", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateDataSchema", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateDataSchemaRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.DataSchema", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateDataSchema", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateDataSchema", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateIndex_sync", + "title": "visionai UpdateIndex Sample", + "description": "UpdateIndex updates an Index under the corpus.\nUsers can perform a metadata-only update or trigger a full index rebuild\nwith different update_mask values.", + "file": "WarehouseClient/UpdateIndex/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateIndex", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateIndex", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateIndexRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateIndexOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateIndex", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateIndex", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateIndexEndpoint_sync", + "title": "visionai UpdateIndexEndpoint Sample", + "description": "UpdateIndexEndpoint updates an IndexEndpoint.", + "file": "WarehouseClient/UpdateIndexEndpoint/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateIndexEndpoint", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateIndexEndpointRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UpdateIndexEndpointOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateIndexEndpoint", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateIndexEndpoint", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateSearchConfig_sync", + "title": "visionai UpdateSearchConfig Sample", + "description": "UpdateSearchConfig updates a search configuration inside a corpus.\n\nPlease follow the rules below to create a valid UpdateSearchConfigRequest.\n--- General Rules ---\n1. Request.search_configuration.name must already exist.\n2. Request must contain at least one non-empty search_criteria_property or\nfacet_property.\n3. mapped_fields must not be empty, and must map to existing UGA keys.\n4. All mapped_fields must be of the same type.\n5. All mapped_fields must share the same granularity.\n6. All mapped_fields must share the same semantic SearchConfig match\noptions.\nFor property-specific rules, please reference the comments for\nFacetProperty and SearchCriteriaProperty.", + "file": "WarehouseClient/UpdateSearchConfig/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSearchConfig", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateSearchConfig", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateSearchConfigRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchConfig", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateSearchConfig", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateSearchConfig", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UpdateSearchHypernym_sync", + "title": "visionai UpdateSearchHypernym Sample", + "description": "UpdateSearchHypernym updates a SearchHypernym inside a corpus.", + "file": "WarehouseClient/UpdateSearchHypernym/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UpdateSearchHypernym", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UpdateSearchHypernym", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UpdateSearchHypernymRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "*visionaipb.SearchHypernym", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UpdateSearchHypernym", + "fullName": "google.cloud.visionai.v1.Warehouse.UpdateSearchHypernym", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 53, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_UploadAsset_sync", + "title": "visionai UploadAsset Sample", + "description": "UploadAsset upload asset by specifing the asset Cloud Storage uri.\nFor video warehouse, it requires users who call this API have read access\nto the cloud storage file. Once it is uploaded, it can be retrieved by\nGenerateRetrievalUrl API which by default, only can retrieve cloud storage\nfiles from the same project of the warehouse. To allow retrieval cloud\nstorage files that are in a separate project, it requires to find the\nvision ai service account (Go to IAM, check checkbox to show \"Include\nGoogle-provided role grants\", search for \"Cloud Vision AI Service Agent\")\nand grant the read access of the cloud storage files to that service\naccount.", + "file": "WarehouseClient/UploadAsset/main.go", + "language": "GO", + "clientMethod": { + "shortName": "UploadAsset", + "fullName": "google.cloud.visionai.v1.WarehouseClient.UploadAsset", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.UploadAssetRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "UploadAssetOperation", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "UploadAsset", + "fullName": "google.cloud.visionai.v1.Warehouse.UploadAsset", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 58, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ViewCollectionItems_sync", + "title": "visionai ViewCollectionItems Sample", + "description": "ViewCollectionItems view items inside a collection.", + "file": "WarehouseClient/ViewCollectionItems/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ViewCollectionItems", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ViewCollectionItems", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ViewCollectionItemsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "CollectionItemIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ViewCollectionItems", + "fullName": "google.cloud.visionai.v1.Warehouse.ViewCollectionItems", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + }, + { + "regionTag": "visionai_v1_generated_Warehouse_ViewIndexedAssets_sync", + "title": "visionai ViewIndexedAssets Sample", + "description": "ViewIndexedAssets lists assets inside an index.", + "file": "WarehouseClient/ViewIndexedAssets/main.go", + "language": "GO", + "clientMethod": { + "shortName": "ViewIndexedAssets", + "fullName": "google.cloud.visionai.v1.WarehouseClient.ViewIndexedAssets", + "parameters": [ + { + "type": "context.Context", + "name": "ctx" + }, + { + "type": "visionaipb.ViewIndexedAssetsRequest", + "name": "req" + }, + { + "type": "...gax.CallOption", + "name": "opts" + } + ], + "resultType": "IndexedAssetIterator", + "client": { + "shortName": "WarehouseClient", + "fullName": "google.cloud.visionai.v1.WarehouseClient" + }, + "method": { + "shortName": "ViewIndexedAssets", + "fullName": "google.cloud.visionai.v1.Warehouse.ViewIndexedAssets", + "service": { + "shortName": "Warehouse", + "fullName": "google.cloud.visionai.v1.Warehouse" + } + } + }, + "origin": "API_DEFINITION", + "segments": [ + { + "start": 18, + "end": 60, + "type": "FULL" + } + ] + } + ] +} \ No newline at end of file diff --git a/release-please-config-yoshi-submodules.json b/release-please-config-yoshi-submodules.json index 078bf9beb19..07883af4dea 100644 --- a/release-please-config-yoshi-submodules.json +++ b/release-please-config-yoshi-submodules.json @@ -393,6 +393,9 @@ "vision": { "component": "vision" }, + "visionai": { + "component": "visionai" + }, "vmmigration": { "component": "vmmigration" }, diff --git a/visionai/CHANGES.md b/visionai/CHANGES.md new file mode 100644 index 00000000000..b671f0bbcdd --- /dev/null +++ b/visionai/CHANGES.md @@ -0,0 +1 @@ +# Changes diff --git a/visionai/README.md b/visionai/README.md new file mode 100644 index 00000000000..5cf8cc15dd5 --- /dev/null +++ b/visionai/README.md @@ -0,0 +1,55 @@ +# Vision AI API + +[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go/visionai.svg)](https://pkg.go.dev/cloud.google.com/go/visionai) + +Go Client Library for Vision AI API. + +## Install + +```bash +go get cloud.google.com/go/visionai +``` + +## Stability + +The stability of this module is indicated by SemVer. + +However, a `v1+` module may have breaking changes in two scenarios: + +* Packages with `alpha` or `beta` in the import path +* The GoDoc has an explicit stability disclaimer (for example, for an experimental feature). + +### Which package to use? + +Generated client library surfaces can be found in packages who's import path +ends in `.../apivXXX`. The `XXX` could be something like `1` or `2` in the case +of a stable service backend or may be like `1beta2` or `2beta` in the case of a +more experimental service backend. Because of this fact, a given module can have +multiple clients for different service backends. In these cases it is generally +recommend to use clients with stable service backends, with import suffixes like +`apiv1`, unless you need to use features that are only present in a beta backend +or there is not yet a stable backend available. + +## Google Cloud Samples + +To browse ready to use code samples check [Google Cloud Samples](https://cloud.google.com/docs/samples?l=go). + +## Go Version Support + +See the [Go Versions Supported](https://github.com/googleapis/google-cloud-go#go-versions-supported) +section in the root directory's README. + +## Authorization + +See the [Authorization](https://github.com/googleapis/google-cloud-go#authorization) +section in the root directory's README. + +## Contributing + +Contributions are welcome. Please, see the [CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md) +document for details. + +Please note that this project is released with a Contributor Code of Conduct. +By participating in this project you agree to abide by its terms. See +[Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/main/CONTRIBUTING.md#contributor-code-of-conduct) +for more information. diff --git a/visionai/apiv1/app_platform_client.go b/visionai/apiv1/app_platform_client.go new file mode 100755 index 00000000000..a830a0b59e6 --- /dev/null +++ b/visionai/apiv1/app_platform_client.go @@ -0,0 +1,3891 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newAppPlatformClientHook clientHook + +// AppPlatformCallOptions contains the retry settings for each method of AppPlatformClient. +type AppPlatformCallOptions struct { + ListApplications []gax.CallOption + GetApplication []gax.CallOption + CreateApplication []gax.CallOption + UpdateApplication []gax.CallOption + DeleteApplication []gax.CallOption + DeployApplication []gax.CallOption + UndeployApplication []gax.CallOption + AddApplicationStreamInput []gax.CallOption + RemoveApplicationStreamInput []gax.CallOption + UpdateApplicationStreamInput []gax.CallOption + ListInstances []gax.CallOption + GetInstance []gax.CallOption + CreateApplicationInstances []gax.CallOption + DeleteApplicationInstances []gax.CallOption + UpdateApplicationInstances []gax.CallOption + ListDrafts []gax.CallOption + GetDraft []gax.CallOption + CreateDraft []gax.CallOption + UpdateDraft []gax.CallOption + DeleteDraft []gax.CallOption + ListProcessors []gax.CallOption + ListPrebuiltProcessors []gax.CallOption + GetProcessor []gax.CallOption + CreateProcessor []gax.CallOption + UpdateProcessor []gax.CallOption + DeleteProcessor []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultAppPlatformGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultAppPlatformCallOptions() *AppPlatformCallOptions { + return &AppPlatformCallOptions{ + ListApplications: []gax.CallOption{}, + GetApplication: []gax.CallOption{}, + CreateApplication: []gax.CallOption{}, + UpdateApplication: []gax.CallOption{}, + DeleteApplication: []gax.CallOption{}, + DeployApplication: []gax.CallOption{}, + UndeployApplication: []gax.CallOption{}, + AddApplicationStreamInput: []gax.CallOption{}, + RemoveApplicationStreamInput: []gax.CallOption{}, + UpdateApplicationStreamInput: []gax.CallOption{}, + ListInstances: []gax.CallOption{}, + GetInstance: []gax.CallOption{}, + CreateApplicationInstances: []gax.CallOption{}, + DeleteApplicationInstances: []gax.CallOption{}, + UpdateApplicationInstances: []gax.CallOption{}, + ListDrafts: []gax.CallOption{}, + GetDraft: []gax.CallOption{}, + CreateDraft: []gax.CallOption{}, + UpdateDraft: []gax.CallOption{}, + DeleteDraft: []gax.CallOption{}, + ListProcessors: []gax.CallOption{}, + ListPrebuiltProcessors: []gax.CallOption{}, + GetProcessor: []gax.CallOption{}, + CreateProcessor: []gax.CallOption{}, + UpdateProcessor: []gax.CallOption{}, + DeleteProcessor: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultAppPlatformRESTCallOptions() *AppPlatformCallOptions { + return &AppPlatformCallOptions{ + ListApplications: []gax.CallOption{}, + GetApplication: []gax.CallOption{}, + CreateApplication: []gax.CallOption{}, + UpdateApplication: []gax.CallOption{}, + DeleteApplication: []gax.CallOption{}, + DeployApplication: []gax.CallOption{}, + UndeployApplication: []gax.CallOption{}, + AddApplicationStreamInput: []gax.CallOption{}, + RemoveApplicationStreamInput: []gax.CallOption{}, + UpdateApplicationStreamInput: []gax.CallOption{}, + ListInstances: []gax.CallOption{}, + GetInstance: []gax.CallOption{}, + CreateApplicationInstances: []gax.CallOption{}, + DeleteApplicationInstances: []gax.CallOption{}, + UpdateApplicationInstances: []gax.CallOption{}, + ListDrafts: []gax.CallOption{}, + GetDraft: []gax.CallOption{}, + CreateDraft: []gax.CallOption{}, + UpdateDraft: []gax.CallOption{}, + DeleteDraft: []gax.CallOption{}, + ListProcessors: []gax.CallOption{}, + ListPrebuiltProcessors: []gax.CallOption{}, + GetProcessor: []gax.CallOption{}, + CreateProcessor: []gax.CallOption{}, + UpdateProcessor: []gax.CallOption{}, + DeleteProcessor: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalAppPlatformClient is an interface that defines the methods available from Vision AI API. +type internalAppPlatformClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListApplications(context.Context, *visionaipb.ListApplicationsRequest, ...gax.CallOption) *ApplicationIterator + GetApplication(context.Context, *visionaipb.GetApplicationRequest, ...gax.CallOption) (*visionaipb.Application, error) + CreateApplication(context.Context, *visionaipb.CreateApplicationRequest, ...gax.CallOption) (*CreateApplicationOperation, error) + CreateApplicationOperation(name string) *CreateApplicationOperation + UpdateApplication(context.Context, *visionaipb.UpdateApplicationRequest, ...gax.CallOption) (*UpdateApplicationOperation, error) + UpdateApplicationOperation(name string) *UpdateApplicationOperation + DeleteApplication(context.Context, *visionaipb.DeleteApplicationRequest, ...gax.CallOption) (*DeleteApplicationOperation, error) + DeleteApplicationOperation(name string) *DeleteApplicationOperation + DeployApplication(context.Context, *visionaipb.DeployApplicationRequest, ...gax.CallOption) (*DeployApplicationOperation, error) + DeployApplicationOperation(name string) *DeployApplicationOperation + UndeployApplication(context.Context, *visionaipb.UndeployApplicationRequest, ...gax.CallOption) (*UndeployApplicationOperation, error) + UndeployApplicationOperation(name string) *UndeployApplicationOperation + AddApplicationStreamInput(context.Context, *visionaipb.AddApplicationStreamInputRequest, ...gax.CallOption) (*AddApplicationStreamInputOperation, error) + AddApplicationStreamInputOperation(name string) *AddApplicationStreamInputOperation + RemoveApplicationStreamInput(context.Context, *visionaipb.RemoveApplicationStreamInputRequest, ...gax.CallOption) (*RemoveApplicationStreamInputOperation, error) + RemoveApplicationStreamInputOperation(name string) *RemoveApplicationStreamInputOperation + UpdateApplicationStreamInput(context.Context, *visionaipb.UpdateApplicationStreamInputRequest, ...gax.CallOption) (*UpdateApplicationStreamInputOperation, error) + UpdateApplicationStreamInputOperation(name string) *UpdateApplicationStreamInputOperation + ListInstances(context.Context, *visionaipb.ListInstancesRequest, ...gax.CallOption) *InstanceIterator + GetInstance(context.Context, *visionaipb.GetInstanceRequest, ...gax.CallOption) (*visionaipb.Instance, error) + CreateApplicationInstances(context.Context, *visionaipb.CreateApplicationInstancesRequest, ...gax.CallOption) (*CreateApplicationInstancesOperation, error) + CreateApplicationInstancesOperation(name string) *CreateApplicationInstancesOperation + DeleteApplicationInstances(context.Context, *visionaipb.DeleteApplicationInstancesRequest, ...gax.CallOption) (*DeleteApplicationInstancesOperation, error) + DeleteApplicationInstancesOperation(name string) *DeleteApplicationInstancesOperation + UpdateApplicationInstances(context.Context, *visionaipb.UpdateApplicationInstancesRequest, ...gax.CallOption) (*UpdateApplicationInstancesOperation, error) + UpdateApplicationInstancesOperation(name string) *UpdateApplicationInstancesOperation + ListDrafts(context.Context, *visionaipb.ListDraftsRequest, ...gax.CallOption) *DraftIterator + GetDraft(context.Context, *visionaipb.GetDraftRequest, ...gax.CallOption) (*visionaipb.Draft, error) + CreateDraft(context.Context, *visionaipb.CreateDraftRequest, ...gax.CallOption) (*CreateDraftOperation, error) + CreateDraftOperation(name string) *CreateDraftOperation + UpdateDraft(context.Context, *visionaipb.UpdateDraftRequest, ...gax.CallOption) (*UpdateDraftOperation, error) + UpdateDraftOperation(name string) *UpdateDraftOperation + DeleteDraft(context.Context, *visionaipb.DeleteDraftRequest, ...gax.CallOption) (*DeleteDraftOperation, error) + DeleteDraftOperation(name string) *DeleteDraftOperation + ListProcessors(context.Context, *visionaipb.ListProcessorsRequest, ...gax.CallOption) *ProcessorIterator + ListPrebuiltProcessors(context.Context, *visionaipb.ListPrebuiltProcessorsRequest, ...gax.CallOption) (*visionaipb.ListPrebuiltProcessorsResponse, error) + GetProcessor(context.Context, *visionaipb.GetProcessorRequest, ...gax.CallOption) (*visionaipb.Processor, error) + CreateProcessor(context.Context, *visionaipb.CreateProcessorRequest, ...gax.CallOption) (*CreateProcessorOperation, error) + CreateProcessorOperation(name string) *CreateProcessorOperation + UpdateProcessor(context.Context, *visionaipb.UpdateProcessorRequest, ...gax.CallOption) (*UpdateProcessorOperation, error) + UpdateProcessorOperation(name string) *UpdateProcessorOperation + DeleteProcessor(context.Context, *visionaipb.DeleteProcessorRequest, ...gax.CallOption) (*DeleteProcessorOperation, error) + DeleteProcessorOperation(name string) *DeleteProcessorOperation + 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 +} + +// AppPlatformClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service describing handlers for resources +type AppPlatformClient struct { + // The internal transport-dependent client. + internalClient internalAppPlatformClient + + // The call options for this service. + CallOptions *AppPlatformCallOptions + + // 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 *AppPlatformClient) 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 *AppPlatformClient) 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 *AppPlatformClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListApplications lists Applications in a given project and location. +func (c *AppPlatformClient) ListApplications(ctx context.Context, req *visionaipb.ListApplicationsRequest, opts ...gax.CallOption) *ApplicationIterator { + return c.internalClient.ListApplications(ctx, req, opts...) +} + +// GetApplication gets details of a single Application. +func (c *AppPlatformClient) GetApplication(ctx context.Context, req *visionaipb.GetApplicationRequest, opts ...gax.CallOption) (*visionaipb.Application, error) { + return c.internalClient.GetApplication(ctx, req, opts...) +} + +// CreateApplication creates a new Application in a given project and location. +func (c *AppPlatformClient) CreateApplication(ctx context.Context, req *visionaipb.CreateApplicationRequest, opts ...gax.CallOption) (*CreateApplicationOperation, error) { + return c.internalClient.CreateApplication(ctx, req, opts...) +} + +// CreateApplicationOperation returns a new CreateApplicationOperation from a given name. +// The name must be that of a previously created CreateApplicationOperation, possibly from a different process. +func (c *AppPlatformClient) CreateApplicationOperation(name string) *CreateApplicationOperation { + return c.internalClient.CreateApplicationOperation(name) +} + +// UpdateApplication updates the parameters of a single Application. +func (c *AppPlatformClient) UpdateApplication(ctx context.Context, req *visionaipb.UpdateApplicationRequest, opts ...gax.CallOption) (*UpdateApplicationOperation, error) { + return c.internalClient.UpdateApplication(ctx, req, opts...) +} + +// UpdateApplicationOperation returns a new UpdateApplicationOperation from a given name. +// The name must be that of a previously created UpdateApplicationOperation, possibly from a different process. +func (c *AppPlatformClient) UpdateApplicationOperation(name string) *UpdateApplicationOperation { + return c.internalClient.UpdateApplicationOperation(name) +} + +// DeleteApplication deletes a single Application. +func (c *AppPlatformClient) DeleteApplication(ctx context.Context, req *visionaipb.DeleteApplicationRequest, opts ...gax.CallOption) (*DeleteApplicationOperation, error) { + return c.internalClient.DeleteApplication(ctx, req, opts...) +} + +// DeleteApplicationOperation returns a new DeleteApplicationOperation from a given name. +// The name must be that of a previously created DeleteApplicationOperation, possibly from a different process. +func (c *AppPlatformClient) DeleteApplicationOperation(name string) *DeleteApplicationOperation { + return c.internalClient.DeleteApplicationOperation(name) +} + +// DeployApplication deploys a single Application. +func (c *AppPlatformClient) DeployApplication(ctx context.Context, req *visionaipb.DeployApplicationRequest, opts ...gax.CallOption) (*DeployApplicationOperation, error) { + return c.internalClient.DeployApplication(ctx, req, opts...) +} + +// DeployApplicationOperation returns a new DeployApplicationOperation from a given name. +// The name must be that of a previously created DeployApplicationOperation, possibly from a different process. +func (c *AppPlatformClient) DeployApplicationOperation(name string) *DeployApplicationOperation { + return c.internalClient.DeployApplicationOperation(name) +} + +// UndeployApplication undeploys a single Application. +func (c *AppPlatformClient) UndeployApplication(ctx context.Context, req *visionaipb.UndeployApplicationRequest, opts ...gax.CallOption) (*UndeployApplicationOperation, error) { + return c.internalClient.UndeployApplication(ctx, req, opts...) +} + +// UndeployApplicationOperation returns a new UndeployApplicationOperation from a given name. +// The name must be that of a previously created UndeployApplicationOperation, possibly from a different process. +func (c *AppPlatformClient) UndeployApplicationOperation(name string) *UndeployApplicationOperation { + return c.internalClient.UndeployApplicationOperation(name) +} + +// AddApplicationStreamInput adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *AppPlatformClient) AddApplicationStreamInput(ctx context.Context, req *visionaipb.AddApplicationStreamInputRequest, opts ...gax.CallOption) (*AddApplicationStreamInputOperation, error) { + return c.internalClient.AddApplicationStreamInput(ctx, req, opts...) +} + +// AddApplicationStreamInputOperation returns a new AddApplicationStreamInputOperation from a given name. +// The name must be that of a previously created AddApplicationStreamInputOperation, possibly from a different process. +func (c *AppPlatformClient) AddApplicationStreamInputOperation(name string) *AddApplicationStreamInputOperation { + return c.internalClient.AddApplicationStreamInputOperation(name) +} + +// RemoveApplicationStreamInput remove target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deleted. If the stream +// is not in the Application, the RPC will fail. +func (c *AppPlatformClient) RemoveApplicationStreamInput(ctx context.Context, req *visionaipb.RemoveApplicationStreamInputRequest, opts ...gax.CallOption) (*RemoveApplicationStreamInputOperation, error) { + return c.internalClient.RemoveApplicationStreamInput(ctx, req, opts...) +} + +// RemoveApplicationStreamInputOperation returns a new RemoveApplicationStreamInputOperation from a given name. +// The name must be that of a previously created RemoveApplicationStreamInputOperation, possibly from a different process. +func (c *AppPlatformClient) RemoveApplicationStreamInputOperation(name string) *RemoveApplicationStreamInputOperation { + return c.internalClient.RemoveApplicationStreamInputOperation(name) +} + +// UpdateApplicationStreamInput update target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deployed. For +// CreateOrUpdate behavior, set allow_missing to true. +func (c *AppPlatformClient) UpdateApplicationStreamInput(ctx context.Context, req *visionaipb.UpdateApplicationStreamInputRequest, opts ...gax.CallOption) (*UpdateApplicationStreamInputOperation, error) { + return c.internalClient.UpdateApplicationStreamInput(ctx, req, opts...) +} + +// UpdateApplicationStreamInputOperation returns a new UpdateApplicationStreamInputOperation from a given name. +// The name must be that of a previously created UpdateApplicationStreamInputOperation, possibly from a different process. +func (c *AppPlatformClient) UpdateApplicationStreamInputOperation(name string) *UpdateApplicationStreamInputOperation { + return c.internalClient.UpdateApplicationStreamInputOperation(name) +} + +// ListInstances lists Instances in a given project and location. +func (c *AppPlatformClient) ListInstances(ctx context.Context, req *visionaipb.ListInstancesRequest, opts ...gax.CallOption) *InstanceIterator { + return c.internalClient.ListInstances(ctx, req, opts...) +} + +// GetInstance gets details of a single Instance. +func (c *AppPlatformClient) GetInstance(ctx context.Context, req *visionaipb.GetInstanceRequest, opts ...gax.CallOption) (*visionaipb.Instance, error) { + return c.internalClient.GetInstance(ctx, req, opts...) +} + +// CreateApplicationInstances adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *AppPlatformClient) CreateApplicationInstances(ctx context.Context, req *visionaipb.CreateApplicationInstancesRequest, opts ...gax.CallOption) (*CreateApplicationInstancesOperation, error) { + return c.internalClient.CreateApplicationInstances(ctx, req, opts...) +} + +// CreateApplicationInstancesOperation returns a new CreateApplicationInstancesOperation from a given name. +// The name must be that of a previously created CreateApplicationInstancesOperation, possibly from a different process. +func (c *AppPlatformClient) CreateApplicationInstancesOperation(name string) *CreateApplicationInstancesOperation { + return c.internalClient.CreateApplicationInstancesOperation(name) +} + +// DeleteApplicationInstances remove target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deleted. If the stream +// is not in the Application, the RPC will fail. +func (c *AppPlatformClient) DeleteApplicationInstances(ctx context.Context, req *visionaipb.DeleteApplicationInstancesRequest, opts ...gax.CallOption) (*DeleteApplicationInstancesOperation, error) { + return c.internalClient.DeleteApplicationInstances(ctx, req, opts...) +} + +// DeleteApplicationInstancesOperation returns a new DeleteApplicationInstancesOperation from a given name. +// The name must be that of a previously created DeleteApplicationInstancesOperation, possibly from a different process. +func (c *AppPlatformClient) DeleteApplicationInstancesOperation(name string) *DeleteApplicationInstancesOperation { + return c.internalClient.DeleteApplicationInstancesOperation(name) +} + +// UpdateApplicationInstances adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *AppPlatformClient) UpdateApplicationInstances(ctx context.Context, req *visionaipb.UpdateApplicationInstancesRequest, opts ...gax.CallOption) (*UpdateApplicationInstancesOperation, error) { + return c.internalClient.UpdateApplicationInstances(ctx, req, opts...) +} + +// UpdateApplicationInstancesOperation returns a new UpdateApplicationInstancesOperation from a given name. +// The name must be that of a previously created UpdateApplicationInstancesOperation, possibly from a different process. +func (c *AppPlatformClient) UpdateApplicationInstancesOperation(name string) *UpdateApplicationInstancesOperation { + return c.internalClient.UpdateApplicationInstancesOperation(name) +} + +// ListDrafts lists Drafts in a given project and location. +func (c *AppPlatformClient) ListDrafts(ctx context.Context, req *visionaipb.ListDraftsRequest, opts ...gax.CallOption) *DraftIterator { + return c.internalClient.ListDrafts(ctx, req, opts...) +} + +// GetDraft gets details of a single Draft. +func (c *AppPlatformClient) GetDraft(ctx context.Context, req *visionaipb.GetDraftRequest, opts ...gax.CallOption) (*visionaipb.Draft, error) { + return c.internalClient.GetDraft(ctx, req, opts...) +} + +// CreateDraft creates a new Draft in a given project and location. +func (c *AppPlatformClient) CreateDraft(ctx context.Context, req *visionaipb.CreateDraftRequest, opts ...gax.CallOption) (*CreateDraftOperation, error) { + return c.internalClient.CreateDraft(ctx, req, opts...) +} + +// CreateDraftOperation returns a new CreateDraftOperation from a given name. +// The name must be that of a previously created CreateDraftOperation, possibly from a different process. +func (c *AppPlatformClient) CreateDraftOperation(name string) *CreateDraftOperation { + return c.internalClient.CreateDraftOperation(name) +} + +// UpdateDraft updates the parameters of a single Draft. +func (c *AppPlatformClient) UpdateDraft(ctx context.Context, req *visionaipb.UpdateDraftRequest, opts ...gax.CallOption) (*UpdateDraftOperation, error) { + return c.internalClient.UpdateDraft(ctx, req, opts...) +} + +// UpdateDraftOperation returns a new UpdateDraftOperation from a given name. +// The name must be that of a previously created UpdateDraftOperation, possibly from a different process. +func (c *AppPlatformClient) UpdateDraftOperation(name string) *UpdateDraftOperation { + return c.internalClient.UpdateDraftOperation(name) +} + +// DeleteDraft deletes a single Draft. +func (c *AppPlatformClient) DeleteDraft(ctx context.Context, req *visionaipb.DeleteDraftRequest, opts ...gax.CallOption) (*DeleteDraftOperation, error) { + return c.internalClient.DeleteDraft(ctx, req, opts...) +} + +// DeleteDraftOperation returns a new DeleteDraftOperation from a given name. +// The name must be that of a previously created DeleteDraftOperation, possibly from a different process. +func (c *AppPlatformClient) DeleteDraftOperation(name string) *DeleteDraftOperation { + return c.internalClient.DeleteDraftOperation(name) +} + +// ListProcessors lists Processors in a given project and location. +func (c *AppPlatformClient) ListProcessors(ctx context.Context, req *visionaipb.ListProcessorsRequest, opts ...gax.CallOption) *ProcessorIterator { + return c.internalClient.ListProcessors(ctx, req, opts...) +} + +// ListPrebuiltProcessors listPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt +// Processors. +func (c *AppPlatformClient) ListPrebuiltProcessors(ctx context.Context, req *visionaipb.ListPrebuiltProcessorsRequest, opts ...gax.CallOption) (*visionaipb.ListPrebuiltProcessorsResponse, error) { + return c.internalClient.ListPrebuiltProcessors(ctx, req, opts...) +} + +// GetProcessor gets details of a single Processor. +func (c *AppPlatformClient) GetProcessor(ctx context.Context, req *visionaipb.GetProcessorRequest, opts ...gax.CallOption) (*visionaipb.Processor, error) { + return c.internalClient.GetProcessor(ctx, req, opts...) +} + +// CreateProcessor creates a new Processor in a given project and location. +func (c *AppPlatformClient) CreateProcessor(ctx context.Context, req *visionaipb.CreateProcessorRequest, opts ...gax.CallOption) (*CreateProcessorOperation, error) { + return c.internalClient.CreateProcessor(ctx, req, opts...) +} + +// CreateProcessorOperation returns a new CreateProcessorOperation from a given name. +// The name must be that of a previously created CreateProcessorOperation, possibly from a different process. +func (c *AppPlatformClient) CreateProcessorOperation(name string) *CreateProcessorOperation { + return c.internalClient.CreateProcessorOperation(name) +} + +// UpdateProcessor updates the parameters of a single Processor. +func (c *AppPlatformClient) UpdateProcessor(ctx context.Context, req *visionaipb.UpdateProcessorRequest, opts ...gax.CallOption) (*UpdateProcessorOperation, error) { + return c.internalClient.UpdateProcessor(ctx, req, opts...) +} + +// UpdateProcessorOperation returns a new UpdateProcessorOperation from a given name. +// The name must be that of a previously created UpdateProcessorOperation, possibly from a different process. +func (c *AppPlatformClient) UpdateProcessorOperation(name string) *UpdateProcessorOperation { + return c.internalClient.UpdateProcessorOperation(name) +} + +// DeleteProcessor deletes a single Processor. +func (c *AppPlatformClient) DeleteProcessor(ctx context.Context, req *visionaipb.DeleteProcessorRequest, opts ...gax.CallOption) (*DeleteProcessorOperation, error) { + return c.internalClient.DeleteProcessor(ctx, req, opts...) +} + +// DeleteProcessorOperation returns a new DeleteProcessorOperation from a given name. +// The name must be that of a previously created DeleteProcessorOperation, possibly from a different process. +func (c *AppPlatformClient) DeleteProcessorOperation(name string) *DeleteProcessorOperation { + return c.internalClient.DeleteProcessorOperation(name) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *AppPlatformClient) 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 *AppPlatformClient) 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 *AppPlatformClient) 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 *AppPlatformClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// appPlatformGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type appPlatformGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing AppPlatformClient + CallOptions **AppPlatformCallOptions + + // The gRPC API client. + appPlatformClient visionaipb.AppPlatformClient + + // 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 + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewAppPlatformClient creates a new app platform client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service describing handlers for resources +func NewAppPlatformClient(ctx context.Context, opts ...option.ClientOption) (*AppPlatformClient, error) { + clientOpts := defaultAppPlatformGRPCClientOptions() + if newAppPlatformClientHook != nil { + hookOpts, err := newAppPlatformClientHook(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 := AppPlatformClient{CallOptions: defaultAppPlatformCallOptions()} + + c := &appPlatformGRPCClient{ + connPool: connPool, + appPlatformClient: visionaipb.NewAppPlatformClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *appPlatformGRPCClient) 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 *appPlatformGRPCClient) 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 *appPlatformGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type appPlatformRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // 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 + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing AppPlatformClient + CallOptions **AppPlatformCallOptions +} + +// NewAppPlatformRESTClient creates a new app platform rest client. +// +// Service describing handlers for resources +func NewAppPlatformRESTClient(ctx context.Context, opts ...option.ClientOption) (*AppPlatformClient, error) { + clientOpts := append(defaultAppPlatformRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultAppPlatformRESTCallOptions() + c := &appPlatformRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &AppPlatformClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultAppPlatformRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *appPlatformRESTClient) 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 *appPlatformRESTClient) 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 *appPlatformRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *appPlatformGRPCClient) ListApplications(ctx context.Context, req *visionaipb.ListApplicationsRequest, opts ...gax.CallOption) *ApplicationIterator { + 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).ListApplications[0:len((*c.CallOptions).ListApplications):len((*c.CallOptions).ListApplications)], opts...) + it := &ApplicationIterator{} + req = proto.Clone(req).(*visionaipb.ListApplicationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Application, string, error) { + resp := &visionaipb.ListApplicationsResponse{} + 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.appPlatformClient.ListApplications(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetApplications(), 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 *appPlatformGRPCClient) GetApplication(ctx context.Context, req *visionaipb.GetApplicationRequest, opts ...gax.CallOption) (*visionaipb.Application, 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).GetApplication[0:len((*c.CallOptions).GetApplication):len((*c.CallOptions).GetApplication)], opts...) + var resp *visionaipb.Application + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.GetApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *appPlatformGRPCClient) CreateApplication(ctx context.Context, req *visionaipb.CreateApplicationRequest, opts ...gax.CallOption) (*CreateApplicationOperation, 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).CreateApplication[0:len((*c.CallOptions).CreateApplication):len((*c.CallOptions).CreateApplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.CreateApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UpdateApplication(ctx context.Context, req *visionaipb.UpdateApplicationRequest, opts ...gax.CallOption) (*UpdateApplicationOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "application.name", url.QueryEscape(req.GetApplication().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateApplication[0:len((*c.CallOptions).UpdateApplication):len((*c.CallOptions).UpdateApplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UpdateApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) DeleteApplication(ctx context.Context, req *visionaipb.DeleteApplicationRequest, opts ...gax.CallOption) (*DeleteApplicationOperation, 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).DeleteApplication[0:len((*c.CallOptions).DeleteApplication):len((*c.CallOptions).DeleteApplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.DeleteApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) DeployApplication(ctx context.Context, req *visionaipb.DeployApplicationRequest, opts ...gax.CallOption) (*DeployApplicationOperation, 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).DeployApplication[0:len((*c.CallOptions).DeployApplication):len((*c.CallOptions).DeployApplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.DeployApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UndeployApplication(ctx context.Context, req *visionaipb.UndeployApplicationRequest, opts ...gax.CallOption) (*UndeployApplicationOperation, 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).UndeployApplication[0:len((*c.CallOptions).UndeployApplication):len((*c.CallOptions).UndeployApplication)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UndeployApplication(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UndeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) AddApplicationStreamInput(ctx context.Context, req *visionaipb.AddApplicationStreamInputRequest, opts ...gax.CallOption) (*AddApplicationStreamInputOperation, 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).AddApplicationStreamInput[0:len((*c.CallOptions).AddApplicationStreamInput):len((*c.CallOptions).AddApplicationStreamInput)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.AddApplicationStreamInput(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &AddApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) RemoveApplicationStreamInput(ctx context.Context, req *visionaipb.RemoveApplicationStreamInputRequest, opts ...gax.CallOption) (*RemoveApplicationStreamInputOperation, 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).RemoveApplicationStreamInput[0:len((*c.CallOptions).RemoveApplicationStreamInput):len((*c.CallOptions).RemoveApplicationStreamInput)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.RemoveApplicationStreamInput(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &RemoveApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UpdateApplicationStreamInput(ctx context.Context, req *visionaipb.UpdateApplicationStreamInputRequest, opts ...gax.CallOption) (*UpdateApplicationStreamInputOperation, 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).UpdateApplicationStreamInput[0:len((*c.CallOptions).UpdateApplicationStreamInput):len((*c.CallOptions).UpdateApplicationStreamInput)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UpdateApplicationStreamInput(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) ListInstances(ctx context.Context, req *visionaipb.ListInstancesRequest, opts ...gax.CallOption) *InstanceIterator { + 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).ListInstances[0:len((*c.CallOptions).ListInstances):len((*c.CallOptions).ListInstances)], opts...) + it := &InstanceIterator{} + req = proto.Clone(req).(*visionaipb.ListInstancesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Instance, string, error) { + resp := &visionaipb.ListInstancesResponse{} + 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.appPlatformClient.ListInstances(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetInstances(), 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 *appPlatformGRPCClient) GetInstance(ctx context.Context, req *visionaipb.GetInstanceRequest, opts ...gax.CallOption) (*visionaipb.Instance, 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).GetInstance[0:len((*c.CallOptions).GetInstance):len((*c.CallOptions).GetInstance)], opts...) + var resp *visionaipb.Instance + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.GetInstance(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *appPlatformGRPCClient) CreateApplicationInstances(ctx context.Context, req *visionaipb.CreateApplicationInstancesRequest, opts ...gax.CallOption) (*CreateApplicationInstancesOperation, 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).CreateApplicationInstances[0:len((*c.CallOptions).CreateApplicationInstances):len((*c.CallOptions).CreateApplicationInstances)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.CreateApplicationInstances(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) DeleteApplicationInstances(ctx context.Context, req *visionaipb.DeleteApplicationInstancesRequest, opts ...gax.CallOption) (*DeleteApplicationInstancesOperation, 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).DeleteApplicationInstances[0:len((*c.CallOptions).DeleteApplicationInstances):len((*c.CallOptions).DeleteApplicationInstances)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.DeleteApplicationInstances(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UpdateApplicationInstances(ctx context.Context, req *visionaipb.UpdateApplicationInstancesRequest, opts ...gax.CallOption) (*UpdateApplicationInstancesOperation, 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).UpdateApplicationInstances[0:len((*c.CallOptions).UpdateApplicationInstances):len((*c.CallOptions).UpdateApplicationInstances)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UpdateApplicationInstances(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) ListDrafts(ctx context.Context, req *visionaipb.ListDraftsRequest, opts ...gax.CallOption) *DraftIterator { + 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).ListDrafts[0:len((*c.CallOptions).ListDrafts):len((*c.CallOptions).ListDrafts)], opts...) + it := &DraftIterator{} + req = proto.Clone(req).(*visionaipb.ListDraftsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Draft, string, error) { + resp := &visionaipb.ListDraftsResponse{} + 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.appPlatformClient.ListDrafts(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDrafts(), 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 *appPlatformGRPCClient) GetDraft(ctx context.Context, req *visionaipb.GetDraftRequest, opts ...gax.CallOption) (*visionaipb.Draft, 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).GetDraft[0:len((*c.CallOptions).GetDraft):len((*c.CallOptions).GetDraft)], opts...) + var resp *visionaipb.Draft + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.GetDraft(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *appPlatformGRPCClient) CreateDraft(ctx context.Context, req *visionaipb.CreateDraftRequest, opts ...gax.CallOption) (*CreateDraftOperation, 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).CreateDraft[0:len((*c.CallOptions).CreateDraft):len((*c.CallOptions).CreateDraft)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.CreateDraft(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UpdateDraft(ctx context.Context, req *visionaipb.UpdateDraftRequest, opts ...gax.CallOption) (*UpdateDraftOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "draft.name", url.QueryEscape(req.GetDraft().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateDraft[0:len((*c.CallOptions).UpdateDraft):len((*c.CallOptions).UpdateDraft)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UpdateDraft(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) DeleteDraft(ctx context.Context, req *visionaipb.DeleteDraftRequest, opts ...gax.CallOption) (*DeleteDraftOperation, 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).DeleteDraft[0:len((*c.CallOptions).DeleteDraft):len((*c.CallOptions).DeleteDraft)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.DeleteDraft(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) ListProcessors(ctx context.Context, req *visionaipb.ListProcessorsRequest, opts ...gax.CallOption) *ProcessorIterator { + 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).ListProcessors[0:len((*c.CallOptions).ListProcessors):len((*c.CallOptions).ListProcessors)], opts...) + it := &ProcessorIterator{} + req = proto.Clone(req).(*visionaipb.ListProcessorsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Processor, string, error) { + resp := &visionaipb.ListProcessorsResponse{} + 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.appPlatformClient.ListProcessors(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetProcessors(), 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 *appPlatformGRPCClient) ListPrebuiltProcessors(ctx context.Context, req *visionaipb.ListPrebuiltProcessorsRequest, opts ...gax.CallOption) (*visionaipb.ListPrebuiltProcessorsResponse, 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).ListPrebuiltProcessors[0:len((*c.CallOptions).ListPrebuiltProcessors):len((*c.CallOptions).ListPrebuiltProcessors)], opts...) + var resp *visionaipb.ListPrebuiltProcessorsResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.ListPrebuiltProcessors(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *appPlatformGRPCClient) GetProcessor(ctx context.Context, req *visionaipb.GetProcessorRequest, opts ...gax.CallOption) (*visionaipb.Processor, 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).GetProcessor[0:len((*c.CallOptions).GetProcessor):len((*c.CallOptions).GetProcessor)], opts...) + var resp *visionaipb.Processor + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.GetProcessor(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *appPlatformGRPCClient) CreateProcessor(ctx context.Context, req *visionaipb.CreateProcessorRequest, opts ...gax.CallOption) (*CreateProcessorOperation, 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).CreateProcessor[0:len((*c.CallOptions).CreateProcessor):len((*c.CallOptions).CreateProcessor)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.CreateProcessor(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) UpdateProcessor(ctx context.Context, req *visionaipb.UpdateProcessorRequest, opts ...gax.CallOption) (*UpdateProcessorOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "processor.name", url.QueryEscape(req.GetProcessor().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateProcessor[0:len((*c.CallOptions).UpdateProcessor):len((*c.CallOptions).UpdateProcessor)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.UpdateProcessor(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) DeleteProcessor(ctx context.Context, req *visionaipb.DeleteProcessorRequest, opts ...gax.CallOption) (*DeleteProcessorOperation, 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).DeleteProcessor[0:len((*c.CallOptions).DeleteProcessor):len((*c.CallOptions).DeleteProcessor)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.appPlatformClient.DeleteProcessor(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *appPlatformGRPCClient) 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 *appPlatformGRPCClient) 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 *appPlatformGRPCClient) 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 *appPlatformGRPCClient) 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 +} + +// ListApplications lists Applications in a given project and location. +func (c *appPlatformRESTClient) ListApplications(ctx context.Context, req *visionaipb.ListApplicationsRequest, opts ...gax.CallOption) *ApplicationIterator { + it := &ApplicationIterator{} + req = proto.Clone(req).(*visionaipb.ListApplicationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Application, string, error) { + resp := &visionaipb.ListApplicationsResponse{} + 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/applications", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetApplications(), 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 +} + +// GetApplication gets details of a single Application. +func (c *appPlatformRESTClient) GetApplication(ctx context.Context, req *visionaipb.GetApplicationRequest, opts ...gax.CallOption) (*visionaipb.Application, 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).GetApplication[0:len((*c.CallOptions).GetApplication):len((*c.CallOptions).GetApplication)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Application{} + 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 +} + +// CreateApplication creates a new Application in a given project and location. +func (c *appPlatformRESTClient) CreateApplication(ctx context.Context, req *visionaipb.CreateApplicationRequest, opts ...gax.CallOption) (*CreateApplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetApplication() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/applications", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("applicationId", fmt.Sprintf("%v", req.GetApplicationId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateApplication updates the parameters of a single Application. +func (c *appPlatformRESTClient) UpdateApplication(ctx context.Context, req *visionaipb.UpdateApplicationRequest, opts ...gax.CallOption) (*UpdateApplicationOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetApplication() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetApplication().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "application.name", url.QueryEscape(req.GetApplication().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("PATCH", 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 &UpdateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteApplication deletes a single Application. +func (c *appPlatformRESTClient) DeleteApplication(ctx context.Context, req *visionaipb.DeleteApplicationRequest, opts ...gax.CallOption) (*DeleteApplicationOperation, 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") + if req.GetForce() { + params.Add("force", fmt.Sprintf("%v", req.GetForce())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeployApplication deploys a single Application. +func (c *appPlatformRESTClient) DeployApplication(ctx context.Context, req *visionaipb.DeployApplicationRequest, opts ...gax.CallOption) (*DeployApplicationOperation, 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:deploy", 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 &DeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UndeployApplication undeploys a single Application. +func (c *appPlatformRESTClient) UndeployApplication(ctx context.Context, req *visionaipb.UndeployApplicationRequest, opts ...gax.CallOption) (*UndeployApplicationOperation, 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:undeploy", 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 &UndeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// AddApplicationStreamInput adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *appPlatformRESTClient) AddApplicationStreamInput(ctx context.Context, req *visionaipb.AddApplicationStreamInputRequest, opts ...gax.CallOption) (*AddApplicationStreamInputOperation, 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:addStreamInput", 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 &AddApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// RemoveApplicationStreamInput remove target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deleted. If the stream +// is not in the Application, the RPC will fail. +func (c *appPlatformRESTClient) RemoveApplicationStreamInput(ctx context.Context, req *visionaipb.RemoveApplicationStreamInputRequest, opts ...gax.CallOption) (*RemoveApplicationStreamInputOperation, 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:removeStreamInput", 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 &RemoveApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateApplicationStreamInput update target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deployed. For +// CreateOrUpdate behavior, set allow_missing to true. +func (c *appPlatformRESTClient) UpdateApplicationStreamInput(ctx context.Context, req *visionaipb.UpdateApplicationStreamInputRequest, opts ...gax.CallOption) (*UpdateApplicationStreamInputOperation, 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:updateStreamInput", 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 &UpdateApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListInstances lists Instances in a given project and location. +func (c *appPlatformRESTClient) ListInstances(ctx context.Context, req *visionaipb.ListInstancesRequest, opts ...gax.CallOption) *InstanceIterator { + it := &InstanceIterator{} + req = proto.Clone(req).(*visionaipb.ListInstancesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Instance, string, error) { + resp := &visionaipb.ListInstancesResponse{} + 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/instances", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetInstances(), 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 +} + +// GetInstance gets details of a single Instance. +func (c *appPlatformRESTClient) GetInstance(ctx context.Context, req *visionaipb.GetInstanceRequest, opts ...gax.CallOption) (*visionaipb.Instance, 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).GetInstance[0:len((*c.CallOptions).GetInstance):len((*c.CallOptions).GetInstance)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Instance{} + 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 +} + +// CreateApplicationInstances adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *appPlatformRESTClient) CreateApplicationInstances(ctx context.Context, req *visionaipb.CreateApplicationInstancesRequest, opts ...gax.CallOption) (*CreateApplicationInstancesOperation, 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:createApplicationInstances", 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 &CreateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteApplicationInstances remove target stream input to the Application, if the Application is +// deployed, the corresponding instance based will be deleted. If the stream +// is not in the Application, the RPC will fail. +func (c *appPlatformRESTClient) DeleteApplicationInstances(ctx context.Context, req *visionaipb.DeleteApplicationInstancesRequest, opts ...gax.CallOption) (*DeleteApplicationInstancesOperation, 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:deleteApplicationInstances", 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 &DeleteApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateApplicationInstances adds target stream input to the Application. +// If the Application is deployed, the corresponding new Application instance +// will be created. If the stream has already been in the Application, the RPC +// will fail. +func (c *appPlatformRESTClient) UpdateApplicationInstances(ctx context.Context, req *visionaipb.UpdateApplicationInstancesRequest, opts ...gax.CallOption) (*UpdateApplicationInstancesOperation, 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:updateApplicationInstances", 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 &UpdateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListDrafts lists Drafts in a given project and location. +func (c *appPlatformRESTClient) ListDrafts(ctx context.Context, req *visionaipb.ListDraftsRequest, opts ...gax.CallOption) *DraftIterator { + it := &DraftIterator{} + req = proto.Clone(req).(*visionaipb.ListDraftsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Draft, string, error) { + resp := &visionaipb.ListDraftsResponse{} + 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/drafts", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetDrafts(), 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 +} + +// GetDraft gets details of a single Draft. +func (c *appPlatformRESTClient) GetDraft(ctx context.Context, req *visionaipb.GetDraftRequest, opts ...gax.CallOption) (*visionaipb.Draft, 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).GetDraft[0:len((*c.CallOptions).GetDraft):len((*c.CallOptions).GetDraft)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Draft{} + 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 +} + +// CreateDraft creates a new Draft in a given project and location. +func (c *appPlatformRESTClient) CreateDraft(ctx context.Context, req *visionaipb.CreateDraftRequest, opts ...gax.CallOption) (*CreateDraftOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetDraft() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/drafts", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("draftId", fmt.Sprintf("%v", req.GetDraftId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateDraft updates the parameters of a single Draft. +func (c *appPlatformRESTClient) UpdateDraft(ctx context.Context, req *visionaipb.UpdateDraftRequest, opts ...gax.CallOption) (*UpdateDraftOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetDraft() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetDraft().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetAllowMissing() { + params.Add("allowMissing", fmt.Sprintf("%v", req.GetAllowMissing())) + } + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "draft.name", url.QueryEscape(req.GetDraft().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("PATCH", 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 &UpdateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteDraft deletes a single Draft. +func (c *appPlatformRESTClient) DeleteDraft(ctx context.Context, req *visionaipb.DeleteDraftRequest, opts ...gax.CallOption) (*DeleteDraftOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListProcessors lists Processors in a given project and location. +func (c *appPlatformRESTClient) ListProcessors(ctx context.Context, req *visionaipb.ListProcessorsRequest, opts ...gax.CallOption) *ProcessorIterator { + it := &ProcessorIterator{} + req = proto.Clone(req).(*visionaipb.ListProcessorsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Processor, string, error) { + resp := &visionaipb.ListProcessorsResponse{} + 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/processors", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetProcessors(), 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 +} + +// ListPrebuiltProcessors listPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt +// Processors. +func (c *appPlatformRESTClient) ListPrebuiltProcessors(ctx context.Context, req *visionaipb.ListPrebuiltProcessorsRequest, opts ...gax.CallOption) (*visionaipb.ListPrebuiltProcessorsResponse, 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/processors:prebuilt", req.GetParent()) + + 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", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ListPrebuiltProcessors[0:len((*c.CallOptions).ListPrebuiltProcessors):len((*c.CallOptions).ListPrebuiltProcessors)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.ListPrebuiltProcessorsResponse{} + 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 +} + +// GetProcessor gets details of a single Processor. +func (c *appPlatformRESTClient) GetProcessor(ctx context.Context, req *visionaipb.GetProcessorRequest, opts ...gax.CallOption) (*visionaipb.Processor, 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).GetProcessor[0:len((*c.CallOptions).GetProcessor):len((*c.CallOptions).GetProcessor)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Processor{} + 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 +} + +// CreateProcessor creates a new Processor in a given project and location. +func (c *appPlatformRESTClient) CreateProcessor(ctx context.Context, req *visionaipb.CreateProcessorRequest, opts ...gax.CallOption) (*CreateProcessorOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetProcessor() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/processors", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("processorId", fmt.Sprintf("%v", req.GetProcessorId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateProcessor updates the parameters of a single Processor. +func (c *appPlatformRESTClient) UpdateProcessor(ctx context.Context, req *visionaipb.UpdateProcessorRequest, opts ...gax.CallOption) (*UpdateProcessorOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetProcessor() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetProcessor().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "processor.name", url.QueryEscape(req.GetProcessor().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("PATCH", 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 &UpdateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteProcessor deletes a single Processor. +func (c *appPlatformRESTClient) DeleteProcessor(ctx context.Context, req *visionaipb.DeleteProcessorRequest, opts ...gax.CallOption) (*DeleteProcessorOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *appPlatformRESTClient) 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 *appPlatformRESTClient) 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 *appPlatformRESTClient) 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 *appPlatformRESTClient) 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 +} + +// AddApplicationStreamInputOperation returns a new AddApplicationStreamInputOperation from a given name. +// The name must be that of a previously created AddApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformGRPCClient) AddApplicationStreamInputOperation(name string) *AddApplicationStreamInputOperation { + return &AddApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// AddApplicationStreamInputOperation returns a new AddApplicationStreamInputOperation from a given name. +// The name must be that of a previously created AddApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformRESTClient) AddApplicationStreamInputOperation(name string) *AddApplicationStreamInputOperation { + override := fmt.Sprintf("/v1/%s", name) + return &AddApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateApplicationOperation returns a new CreateApplicationOperation from a given name. +// The name must be that of a previously created CreateApplicationOperation, possibly from a different process. +func (c *appPlatformGRPCClient) CreateApplicationOperation(name string) *CreateApplicationOperation { + return &CreateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateApplicationOperation returns a new CreateApplicationOperation from a given name. +// The name must be that of a previously created CreateApplicationOperation, possibly from a different process. +func (c *appPlatformRESTClient) CreateApplicationOperation(name string) *CreateApplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateApplicationInstancesOperation returns a new CreateApplicationInstancesOperation from a given name. +// The name must be that of a previously created CreateApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformGRPCClient) CreateApplicationInstancesOperation(name string) *CreateApplicationInstancesOperation { + return &CreateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateApplicationInstancesOperation returns a new CreateApplicationInstancesOperation from a given name. +// The name must be that of a previously created CreateApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformRESTClient) CreateApplicationInstancesOperation(name string) *CreateApplicationInstancesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateDraftOperation returns a new CreateDraftOperation from a given name. +// The name must be that of a previously created CreateDraftOperation, possibly from a different process. +func (c *appPlatformGRPCClient) CreateDraftOperation(name string) *CreateDraftOperation { + return &CreateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateDraftOperation returns a new CreateDraftOperation from a given name. +// The name must be that of a previously created CreateDraftOperation, possibly from a different process. +func (c *appPlatformRESTClient) CreateDraftOperation(name string) *CreateDraftOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateProcessorOperation returns a new CreateProcessorOperation from a given name. +// The name must be that of a previously created CreateProcessorOperation, possibly from a different process. +func (c *appPlatformGRPCClient) CreateProcessorOperation(name string) *CreateProcessorOperation { + return &CreateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateProcessorOperation returns a new CreateProcessorOperation from a given name. +// The name must be that of a previously created CreateProcessorOperation, possibly from a different process. +func (c *appPlatformRESTClient) CreateProcessorOperation(name string) *CreateProcessorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteApplicationOperation returns a new DeleteApplicationOperation from a given name. +// The name must be that of a previously created DeleteApplicationOperation, possibly from a different process. +func (c *appPlatformGRPCClient) DeleteApplicationOperation(name string) *DeleteApplicationOperation { + return &DeleteApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteApplicationOperation returns a new DeleteApplicationOperation from a given name. +// The name must be that of a previously created DeleteApplicationOperation, possibly from a different process. +func (c *appPlatformRESTClient) DeleteApplicationOperation(name string) *DeleteApplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteApplicationInstancesOperation returns a new DeleteApplicationInstancesOperation from a given name. +// The name must be that of a previously created DeleteApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformGRPCClient) DeleteApplicationInstancesOperation(name string) *DeleteApplicationInstancesOperation { + return &DeleteApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteApplicationInstancesOperation returns a new DeleteApplicationInstancesOperation from a given name. +// The name must be that of a previously created DeleteApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformRESTClient) DeleteApplicationInstancesOperation(name string) *DeleteApplicationInstancesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteDraftOperation returns a new DeleteDraftOperation from a given name. +// The name must be that of a previously created DeleteDraftOperation, possibly from a different process. +func (c *appPlatformGRPCClient) DeleteDraftOperation(name string) *DeleteDraftOperation { + return &DeleteDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteDraftOperation returns a new DeleteDraftOperation from a given name. +// The name must be that of a previously created DeleteDraftOperation, possibly from a different process. +func (c *appPlatformRESTClient) DeleteDraftOperation(name string) *DeleteDraftOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteProcessorOperation returns a new DeleteProcessorOperation from a given name. +// The name must be that of a previously created DeleteProcessorOperation, possibly from a different process. +func (c *appPlatformGRPCClient) DeleteProcessorOperation(name string) *DeleteProcessorOperation { + return &DeleteProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteProcessorOperation returns a new DeleteProcessorOperation from a given name. +// The name must be that of a previously created DeleteProcessorOperation, possibly from a different process. +func (c *appPlatformRESTClient) DeleteProcessorOperation(name string) *DeleteProcessorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeployApplicationOperation returns a new DeployApplicationOperation from a given name. +// The name must be that of a previously created DeployApplicationOperation, possibly from a different process. +func (c *appPlatformGRPCClient) DeployApplicationOperation(name string) *DeployApplicationOperation { + return &DeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeployApplicationOperation returns a new DeployApplicationOperation from a given name. +// The name must be that of a previously created DeployApplicationOperation, possibly from a different process. +func (c *appPlatformRESTClient) DeployApplicationOperation(name string) *DeployApplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// RemoveApplicationStreamInputOperation returns a new RemoveApplicationStreamInputOperation from a given name. +// The name must be that of a previously created RemoveApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformGRPCClient) RemoveApplicationStreamInputOperation(name string) *RemoveApplicationStreamInputOperation { + return &RemoveApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RemoveApplicationStreamInputOperation returns a new RemoveApplicationStreamInputOperation from a given name. +// The name must be that of a previously created RemoveApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformRESTClient) RemoveApplicationStreamInputOperation(name string) *RemoveApplicationStreamInputOperation { + override := fmt.Sprintf("/v1/%s", name) + return &RemoveApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UndeployApplicationOperation returns a new UndeployApplicationOperation from a given name. +// The name must be that of a previously created UndeployApplicationOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UndeployApplicationOperation(name string) *UndeployApplicationOperation { + return &UndeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UndeployApplicationOperation returns a new UndeployApplicationOperation from a given name. +// The name must be that of a previously created UndeployApplicationOperation, possibly from a different process. +func (c *appPlatformRESTClient) UndeployApplicationOperation(name string) *UndeployApplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UndeployApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateApplicationOperation returns a new UpdateApplicationOperation from a given name. +// The name must be that of a previously created UpdateApplicationOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UpdateApplicationOperation(name string) *UpdateApplicationOperation { + return &UpdateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateApplicationOperation returns a new UpdateApplicationOperation from a given name. +// The name must be that of a previously created UpdateApplicationOperation, possibly from a different process. +func (c *appPlatformRESTClient) UpdateApplicationOperation(name string) *UpdateApplicationOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateApplicationOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateApplicationInstancesOperation returns a new UpdateApplicationInstancesOperation from a given name. +// The name must be that of a previously created UpdateApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UpdateApplicationInstancesOperation(name string) *UpdateApplicationInstancesOperation { + return &UpdateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateApplicationInstancesOperation returns a new UpdateApplicationInstancesOperation from a given name. +// The name must be that of a previously created UpdateApplicationInstancesOperation, possibly from a different process. +func (c *appPlatformRESTClient) UpdateApplicationInstancesOperation(name string) *UpdateApplicationInstancesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateApplicationInstancesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateApplicationStreamInputOperation returns a new UpdateApplicationStreamInputOperation from a given name. +// The name must be that of a previously created UpdateApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UpdateApplicationStreamInputOperation(name string) *UpdateApplicationStreamInputOperation { + return &UpdateApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateApplicationStreamInputOperation returns a new UpdateApplicationStreamInputOperation from a given name. +// The name must be that of a previously created UpdateApplicationStreamInputOperation, possibly from a different process. +func (c *appPlatformRESTClient) UpdateApplicationStreamInputOperation(name string) *UpdateApplicationStreamInputOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateApplicationStreamInputOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateDraftOperation returns a new UpdateDraftOperation from a given name. +// The name must be that of a previously created UpdateDraftOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UpdateDraftOperation(name string) *UpdateDraftOperation { + return &UpdateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateDraftOperation returns a new UpdateDraftOperation from a given name. +// The name must be that of a previously created UpdateDraftOperation, possibly from a different process. +func (c *appPlatformRESTClient) UpdateDraftOperation(name string) *UpdateDraftOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateDraftOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateProcessorOperation returns a new UpdateProcessorOperation from a given name. +// The name must be that of a previously created UpdateProcessorOperation, possibly from a different process. +func (c *appPlatformGRPCClient) UpdateProcessorOperation(name string) *UpdateProcessorOperation { + return &UpdateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateProcessorOperation returns a new UpdateProcessorOperation from a given name. +// The name must be that of a previously created UpdateProcessorOperation, possibly from a different process. +func (c *appPlatformRESTClient) UpdateProcessorOperation(name string) *UpdateProcessorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateProcessorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/visionai/apiv1/app_platform_client_example_test.go b/visionai/apiv1/app_platform_client_example_test.go new file mode 100644 index 00000000000..266bf08334f --- /dev/null +++ b/visionai/apiv1/app_platform_client_example_test.go @@ -0,0 +1,915 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewAppPlatformClient() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewAppPlatformRESTClient() { + 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 := visionai.NewAppPlatformRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleAppPlatformClient_AddApplicationStreamInput() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AddApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AddApplicationStreamInputRequest. + } + op, err := c.AddApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_CreateApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateApplicationRequest. + } + op, err := c.CreateApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_CreateApplicationInstances() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateApplicationInstancesRequest. + } + op, err := c.CreateApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_CreateDraft() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateDraftRequest. + } + op, err := c.CreateDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_CreateProcessor() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateProcessorRequest. + } + op, err := c.CreateProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_DeleteApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteApplicationRequest. + } + op, err := c.DeleteApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleAppPlatformClient_DeleteApplicationInstances() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteApplicationInstancesRequest. + } + op, err := c.DeleteApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_DeleteDraft() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteDraftRequest. + } + op, err := c.DeleteDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleAppPlatformClient_DeleteProcessor() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteProcessorRequest. + } + op, err := c.DeleteProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleAppPlatformClient_DeployApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeployApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeployApplicationRequest. + } + op, err := c.DeployApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_GetApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetApplicationRequest. + } + resp, err := c.GetApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_GetDraft() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetDraftRequest. + } + resp, err := c.GetDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_GetInstance() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetInstanceRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetInstanceRequest. + } + resp, err := c.GetInstance(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_GetProcessor() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetProcessorRequest. + } + resp, err := c.GetProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_ListApplications() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListApplicationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListApplicationsRequest. + } + it := c.ListApplications(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleAppPlatformClient_ListDrafts() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListDraftsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListDraftsRequest. + } + it := c.ListDrafts(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleAppPlatformClient_ListInstances() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListInstancesRequest. + } + it := c.ListInstances(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleAppPlatformClient_ListPrebuiltProcessors() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListPrebuiltProcessorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListPrebuiltProcessorsRequest. + } + resp, err := c.ListPrebuiltProcessors(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_ListProcessors() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListProcessorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListProcessorsRequest. + } + it := c.ListProcessors(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleAppPlatformClient_RemoveApplicationStreamInput() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveApplicationStreamInputRequest. + } + op, err := c.RemoveApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UndeployApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UndeployApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UndeployApplicationRequest. + } + op, err := c.UndeployApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UpdateApplication() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationRequest. + } + op, err := c.UpdateApplication(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UpdateApplicationInstances() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationInstancesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationInstancesRequest. + } + op, err := c.UpdateApplicationInstances(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UpdateApplicationStreamInput() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateApplicationStreamInputRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateApplicationStreamInputRequest. + } + op, err := c.UpdateApplicationStreamInput(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UpdateDraft() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateDraftRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateDraftRequest. + } + op, err := c.UpdateDraft(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_UpdateProcessor() { + 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 := visionai.NewAppPlatformClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateProcessorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateProcessorRequest. + } + op, err := c.UpdateProcessor(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleAppPlatformClient_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 := visionai.NewAppPlatformClient(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 ExampleAppPlatformClient_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 := visionai.NewAppPlatformClient(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 ExampleAppPlatformClient_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 := visionai.NewAppPlatformClient(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 ExampleAppPlatformClient_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 := visionai.NewAppPlatformClient(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/visionai/apiv1/auxiliary.go b/visionai/apiv1/auxiliary.go new file mode 100755 index 00000000000..c664ec5aad3 --- /dev/null +++ b/visionai/apiv1/auxiliary.go @@ -0,0 +1,4778 @@ +// Copyright 2024 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 visionai + +import ( + "context" + "time" + + "cloud.google.com/go/longrunning" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + gax "github.com/googleapis/gax-go/v2" + "google.golang.org/api/iterator" +) + +// AddApplicationStreamInputOperation manages a long-running operation from AddApplicationStreamInput. +type AddApplicationStreamInputOperation 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 *AddApplicationStreamInputOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AddApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AddApplicationStreamInputResponse + 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 *AddApplicationStreamInputOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AddApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AddApplicationStreamInputResponse + 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 *AddApplicationStreamInputOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *AddApplicationStreamInputOperation) 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 *AddApplicationStreamInputOperation) Name() string { + return op.lro.Name() +} + +// AnalyzeAssetOperation manages a long-running operation from AnalyzeAsset. +type AnalyzeAssetOperation 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 *AnalyzeAssetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AnalyzeAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AnalyzeAssetResponse + 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 *AnalyzeAssetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AnalyzeAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AnalyzeAssetResponse + 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 *AnalyzeAssetOperation) Metadata() (*visionaipb.AnalyzeAssetMetadata, error) { + var meta visionaipb.AnalyzeAssetMetadata + 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 *AnalyzeAssetOperation) 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 *AnalyzeAssetOperation) Name() string { + return op.lro.Name() +} + +// AnalyzeCorpusOperation manages a long-running operation from AnalyzeCorpus. +type AnalyzeCorpusOperation 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 *AnalyzeCorpusOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AnalyzeCorpusResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AnalyzeCorpusResponse + 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 *AnalyzeCorpusOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.AnalyzeCorpusResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.AnalyzeCorpusResponse + 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 *AnalyzeCorpusOperation) Metadata() (*visionaipb.AnalyzeCorpusMetadata, error) { + var meta visionaipb.AnalyzeCorpusMetadata + 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 *AnalyzeCorpusOperation) 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 *AnalyzeCorpusOperation) Name() string { + return op.lro.Name() +} + +// BatchRunProcessOperation manages a long-running operation from BatchRunProcess. +type BatchRunProcessOperation 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 *BatchRunProcessOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.BatchRunProcessResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.BatchRunProcessResponse + 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 *BatchRunProcessOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.BatchRunProcessResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.BatchRunProcessResponse + 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 *BatchRunProcessOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *BatchRunProcessOperation) 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 *BatchRunProcessOperation) Name() string { + return op.lro.Name() +} + +// CreateAnalysisOperation manages a long-running operation from CreateAnalysis. +type CreateAnalysisOperation 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 *CreateAnalysisOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Analysis, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Analysis + 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 *CreateAnalysisOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Analysis, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Analysis + 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 *CreateAnalysisOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateAnalysisOperation) 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 *CreateAnalysisOperation) Name() string { + return op.lro.Name() +} + +// CreateApplicationInstancesOperation manages a long-running operation from CreateApplicationInstances. +type CreateApplicationInstancesOperation 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 *CreateApplicationInstancesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.CreateApplicationInstancesResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.CreateApplicationInstancesResponse + 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 *CreateApplicationInstancesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.CreateApplicationInstancesResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.CreateApplicationInstancesResponse + 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 *CreateApplicationInstancesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateApplicationInstancesOperation) 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 *CreateApplicationInstancesOperation) Name() string { + return op.lro.Name() +} + +// CreateApplicationOperation manages a long-running operation from CreateApplication. +type CreateApplicationOperation 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 *CreateApplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Application, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Application + 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 *CreateApplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Application, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Application + 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 *CreateApplicationOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateApplicationOperation) 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 *CreateApplicationOperation) Name() string { + return op.lro.Name() +} + +// CreateClusterOperation manages a long-running operation from CreateCluster. +type CreateClusterOperation 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 *CreateClusterOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Cluster, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Cluster + 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 *CreateClusterOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Cluster, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Cluster + 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 *CreateClusterOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateClusterOperation) 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 *CreateClusterOperation) Name() string { + return op.lro.Name() +} + +// CreateCollectionOperation manages a long-running operation from CreateCollection. +type CreateCollectionOperation 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 *CreateCollectionOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Collection, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Collection + 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 *CreateCollectionOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Collection, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Collection + 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 *CreateCollectionOperation) Metadata() (*visionaipb.CreateCollectionMetadata, error) { + var meta visionaipb.CreateCollectionMetadata + 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 *CreateCollectionOperation) 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 *CreateCollectionOperation) Name() string { + return op.lro.Name() +} + +// CreateCorpusOperation manages a long-running operation from CreateCorpus. +type CreateCorpusOperation 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 *CreateCorpusOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Corpus + 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 *CreateCorpusOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Corpus + 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 *CreateCorpusOperation) Metadata() (*visionaipb.CreateCorpusMetadata, error) { + var meta visionaipb.CreateCorpusMetadata + 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 *CreateCorpusOperation) 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 *CreateCorpusOperation) Name() string { + return op.lro.Name() +} + +// CreateDraftOperation manages a long-running operation from CreateDraft. +type CreateDraftOperation 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 *CreateDraftOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Draft, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Draft + 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 *CreateDraftOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Draft, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Draft + 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 *CreateDraftOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateDraftOperation) 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 *CreateDraftOperation) Name() string { + return op.lro.Name() +} + +// CreateEventOperation manages a long-running operation from CreateEvent. +type CreateEventOperation 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 *CreateEventOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Event, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Event + 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 *CreateEventOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Event, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Event + 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 *CreateEventOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateEventOperation) 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 *CreateEventOperation) Name() string { + return op.lro.Name() +} + +// CreateIndexEndpointOperation manages a long-running operation from CreateIndexEndpoint. +type CreateIndexEndpointOperation 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 *CreateIndexEndpointOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexEndpoint + 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 *CreateIndexEndpointOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexEndpoint + 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 *CreateIndexEndpointOperation) Metadata() (*visionaipb.CreateIndexEndpointMetadata, error) { + var meta visionaipb.CreateIndexEndpointMetadata + 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 *CreateIndexEndpointOperation) 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 *CreateIndexEndpointOperation) Name() string { + return op.lro.Name() +} + +// CreateIndexOperation manages a long-running operation from CreateIndex. +type CreateIndexOperation 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 *CreateIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Index, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Index + 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 *CreateIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Index, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Index + 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 *CreateIndexOperation) Metadata() (*visionaipb.CreateIndexMetadata, error) { + var meta visionaipb.CreateIndexMetadata + 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 *CreateIndexOperation) 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 *CreateIndexOperation) Name() string { + return op.lro.Name() +} + +// CreateOperatorOperation manages a long-running operation from CreateOperator. +type CreateOperatorOperation 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 *CreateOperatorOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Operator, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Operator + 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 *CreateOperatorOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Operator, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Operator + 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 *CreateOperatorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateOperatorOperation) 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 *CreateOperatorOperation) Name() string { + return op.lro.Name() +} + +// CreateProcessOperation manages a long-running operation from CreateProcess. +type CreateProcessOperation 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 *CreateProcessOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Process, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Process + 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 *CreateProcessOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Process, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Process + 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 *CreateProcessOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateProcessOperation) 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 *CreateProcessOperation) Name() string { + return op.lro.Name() +} + +// CreateProcessorOperation manages a long-running operation from CreateProcessor. +type CreateProcessorOperation 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 *CreateProcessorOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Processor, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Processor + 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 *CreateProcessorOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Processor, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Processor + 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 *CreateProcessorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateProcessorOperation) 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 *CreateProcessorOperation) Name() string { + return op.lro.Name() +} + +// CreateSeriesOperation manages a long-running operation from CreateSeries. +type CreateSeriesOperation 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 *CreateSeriesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Series, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Series + 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 *CreateSeriesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Series, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Series + 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 *CreateSeriesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateSeriesOperation) 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 *CreateSeriesOperation) Name() string { + return op.lro.Name() +} + +// CreateStreamOperation manages a long-running operation from CreateStream. +type CreateStreamOperation 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 *CreateStreamOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Stream, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Stream + 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 *CreateStreamOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Stream, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Stream + 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 *CreateStreamOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *CreateStreamOperation) 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 *CreateStreamOperation) Name() string { + return op.lro.Name() +} + +// DeleteAnalysisOperation manages a long-running operation from DeleteAnalysis. +type DeleteAnalysisOperation 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 *DeleteAnalysisOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteAnalysisOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteAnalysisOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteAnalysisOperation) 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 *DeleteAnalysisOperation) Name() string { + return op.lro.Name() +} + +// DeleteApplicationInstancesOperation manages a long-running operation from DeleteApplicationInstances. +type DeleteApplicationInstancesOperation 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 *DeleteApplicationInstancesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Instance, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.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 *DeleteApplicationInstancesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Instance, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.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 *DeleteApplicationInstancesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteApplicationInstancesOperation) 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 *DeleteApplicationInstancesOperation) Name() string { + return op.lro.Name() +} + +// DeleteApplicationOperation manages a long-running operation from DeleteApplication. +type DeleteApplicationOperation 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 *DeleteApplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteApplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteApplicationOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteApplicationOperation) 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 *DeleteApplicationOperation) Name() string { + return op.lro.Name() +} + +// DeleteAssetOperation manages a long-running operation from DeleteAsset. +type DeleteAssetOperation 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 *DeleteAssetOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteAssetOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteAssetOperation) Metadata() (*visionaipb.DeleteAssetMetadata, error) { + var meta visionaipb.DeleteAssetMetadata + 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 *DeleteAssetOperation) 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 *DeleteAssetOperation) Name() string { + return op.lro.Name() +} + +// DeleteClusterOperation manages a long-running operation from DeleteCluster. +type DeleteClusterOperation 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 *DeleteClusterOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteClusterOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteClusterOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteClusterOperation) 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 *DeleteClusterOperation) Name() string { + return op.lro.Name() +} + +// DeleteCollectionOperation manages a long-running operation from DeleteCollection. +type DeleteCollectionOperation 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 *DeleteCollectionOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteCollectionOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteCollectionOperation) Metadata() (*visionaipb.DeleteCollectionMetadata, error) { + var meta visionaipb.DeleteCollectionMetadata + 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 *DeleteCollectionOperation) 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 *DeleteCollectionOperation) Name() string { + return op.lro.Name() +} + +// DeleteDraftOperation manages a long-running operation from DeleteDraft. +type DeleteDraftOperation 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 *DeleteDraftOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteDraftOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteDraftOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteDraftOperation) 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 *DeleteDraftOperation) Name() string { + return op.lro.Name() +} + +// DeleteEventOperation manages a long-running operation from DeleteEvent. +type DeleteEventOperation 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 *DeleteEventOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteEventOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteEventOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteEventOperation) 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 *DeleteEventOperation) Name() string { + return op.lro.Name() +} + +// DeleteIndexEndpointOperation manages a long-running operation from DeleteIndexEndpoint. +type DeleteIndexEndpointOperation 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 *DeleteIndexEndpointOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteIndexEndpointOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteIndexEndpointOperation) Metadata() (*visionaipb.DeleteIndexEndpointMetadata, error) { + var meta visionaipb.DeleteIndexEndpointMetadata + 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 *DeleteIndexEndpointOperation) 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 *DeleteIndexEndpointOperation) Name() string { + return op.lro.Name() +} + +// DeleteIndexOperation manages a long-running operation from DeleteIndex. +type DeleteIndexOperation 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 *DeleteIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteIndexOperation) Metadata() (*visionaipb.DeleteIndexMetadata, error) { + var meta visionaipb.DeleteIndexMetadata + 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 *DeleteIndexOperation) 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 *DeleteIndexOperation) Name() string { + return op.lro.Name() +} + +// DeleteOperatorOperation manages a long-running operation from DeleteOperator. +type DeleteOperatorOperation 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 *DeleteOperatorOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteOperatorOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteOperatorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteOperatorOperation) 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 *DeleteOperatorOperation) Name() string { + return op.lro.Name() +} + +// DeleteProcessOperation manages a long-running operation from DeleteProcess. +type DeleteProcessOperation 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 *DeleteProcessOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteProcessOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteProcessOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteProcessOperation) 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 *DeleteProcessOperation) Name() string { + return op.lro.Name() +} + +// DeleteProcessorOperation manages a long-running operation from DeleteProcessor. +type DeleteProcessorOperation 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 *DeleteProcessorOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteProcessorOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteProcessorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteProcessorOperation) 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 *DeleteProcessorOperation) Name() string { + return op.lro.Name() +} + +// DeleteSeriesOperation manages a long-running operation from DeleteSeries. +type DeleteSeriesOperation 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 *DeleteSeriesOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteSeriesOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteSeriesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteSeriesOperation) 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 *DeleteSeriesOperation) Name() string { + return op.lro.Name() +} + +// DeleteStreamOperation manages a long-running operation from DeleteStream. +type DeleteStreamOperation 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 *DeleteStreamOperation) Wait(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteStreamOperation) Poll(ctx context.Context, opts ...gax.CallOption) error { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + 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 *DeleteStreamOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeleteStreamOperation) 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 *DeleteStreamOperation) Name() string { + return op.lro.Name() +} + +// DeployApplicationOperation manages a long-running operation from DeployApplication. +type DeployApplicationOperation 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 *DeployApplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.DeployApplicationResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.DeployApplicationResponse + 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 *DeployApplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.DeployApplicationResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.DeployApplicationResponse + 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 *DeployApplicationOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *DeployApplicationOperation) 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 *DeployApplicationOperation) Name() string { + return op.lro.Name() +} + +// DeployIndexOperation manages a long-running operation from DeployIndex. +type DeployIndexOperation 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 *DeployIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.DeployIndexResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.DeployIndexResponse + 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 *DeployIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.DeployIndexResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.DeployIndexResponse + 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 *DeployIndexOperation) Metadata() (*visionaipb.DeployIndexMetadata, error) { + var meta visionaipb.DeployIndexMetadata + 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 *DeployIndexOperation) 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 *DeployIndexOperation) Name() string { + return op.lro.Name() +} + +// GetStreamThumbnailOperation manages a long-running operation from GetStreamThumbnail. +type GetStreamThumbnailOperation 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 *GetStreamThumbnailOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.GetStreamThumbnailResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.GetStreamThumbnailResponse + 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 *GetStreamThumbnailOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.GetStreamThumbnailResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.GetStreamThumbnailResponse + 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 *GetStreamThumbnailOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *GetStreamThumbnailOperation) 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 *GetStreamThumbnailOperation) Name() string { + return op.lro.Name() +} + +// ImportAssetsOperation manages a long-running operation from ImportAssets. +type ImportAssetsOperation 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 *ImportAssetsOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.ImportAssetsResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.ImportAssetsResponse + 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 *ImportAssetsOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.ImportAssetsResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.ImportAssetsResponse + 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 *ImportAssetsOperation) Metadata() (*visionaipb.ImportAssetsMetadata, error) { + var meta visionaipb.ImportAssetsMetadata + 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 *ImportAssetsOperation) 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 *ImportAssetsOperation) Name() string { + return op.lro.Name() +} + +// IndexAssetOperation manages a long-running operation from IndexAsset. +type IndexAssetOperation 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 *IndexAssetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexAssetResponse + 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 *IndexAssetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexAssetResponse + 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 *IndexAssetOperation) Metadata() (*visionaipb.IndexAssetMetadata, error) { + var meta visionaipb.IndexAssetMetadata + 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 *IndexAssetOperation) 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 *IndexAssetOperation) Name() string { + return op.lro.Name() +} + +// MaterializeChannelOperation manages a long-running operation from MaterializeChannel. +type MaterializeChannelOperation 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 *MaterializeChannelOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Channel, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Channel + 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 *MaterializeChannelOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Channel, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Channel + 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 *MaterializeChannelOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *MaterializeChannelOperation) 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 *MaterializeChannelOperation) Name() string { + return op.lro.Name() +} + +// RemoveApplicationStreamInputOperation manages a long-running operation from RemoveApplicationStreamInput. +type RemoveApplicationStreamInputOperation 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 *RemoveApplicationStreamInputOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.RemoveApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.RemoveApplicationStreamInputResponse + 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 *RemoveApplicationStreamInputOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.RemoveApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.RemoveApplicationStreamInputResponse + 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 *RemoveApplicationStreamInputOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *RemoveApplicationStreamInputOperation) 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 *RemoveApplicationStreamInputOperation) Name() string { + return op.lro.Name() +} + +// RemoveIndexAssetOperation manages a long-running operation from RemoveIndexAsset. +type RemoveIndexAssetOperation 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 *RemoveIndexAssetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.RemoveIndexAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.RemoveIndexAssetResponse + 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 *RemoveIndexAssetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.RemoveIndexAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.RemoveIndexAssetResponse + 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 *RemoveIndexAssetOperation) Metadata() (*visionaipb.RemoveIndexAssetMetadata, error) { + var meta visionaipb.RemoveIndexAssetMetadata + 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 *RemoveIndexAssetOperation) 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 *RemoveIndexAssetOperation) Name() string { + return op.lro.Name() +} + +// UndeployApplicationOperation manages a long-running operation from UndeployApplication. +type UndeployApplicationOperation 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 *UndeployApplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UndeployApplicationResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UndeployApplicationResponse + 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 *UndeployApplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UndeployApplicationResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UndeployApplicationResponse + 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 *UndeployApplicationOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UndeployApplicationOperation) 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 *UndeployApplicationOperation) Name() string { + return op.lro.Name() +} + +// UndeployIndexOperation manages a long-running operation from UndeployIndex. +type UndeployIndexOperation 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 *UndeployIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UndeployIndexResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UndeployIndexResponse + 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 *UndeployIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UndeployIndexResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UndeployIndexResponse + 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 *UndeployIndexOperation) Metadata() (*visionaipb.UndeployIndexMetadata, error) { + var meta visionaipb.UndeployIndexMetadata + 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 *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 *UndeployIndexOperation) Name() string { + return op.lro.Name() +} + +// UpdateAnalysisOperation manages a long-running operation from UpdateAnalysis. +type UpdateAnalysisOperation 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 *UpdateAnalysisOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Analysis, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Analysis + 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 *UpdateAnalysisOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Analysis, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Analysis + 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 *UpdateAnalysisOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateAnalysisOperation) 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 *UpdateAnalysisOperation) Name() string { + return op.lro.Name() +} + +// UpdateApplicationInstancesOperation manages a long-running operation from UpdateApplicationInstances. +type UpdateApplicationInstancesOperation 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 *UpdateApplicationInstancesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UpdateApplicationInstancesResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UpdateApplicationInstancesResponse + 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 *UpdateApplicationInstancesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UpdateApplicationInstancesResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UpdateApplicationInstancesResponse + 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 *UpdateApplicationInstancesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateApplicationInstancesOperation) 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 *UpdateApplicationInstancesOperation) Name() string { + return op.lro.Name() +} + +// UpdateApplicationOperation manages a long-running operation from UpdateApplication. +type UpdateApplicationOperation 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 *UpdateApplicationOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Application, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Application + 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 *UpdateApplicationOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Application, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Application + 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 *UpdateApplicationOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateApplicationOperation) 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 *UpdateApplicationOperation) Name() string { + return op.lro.Name() +} + +// UpdateApplicationStreamInputOperation manages a long-running operation from UpdateApplicationStreamInput. +type UpdateApplicationStreamInputOperation 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 *UpdateApplicationStreamInputOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UpdateApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UpdateApplicationStreamInputResponse + 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 *UpdateApplicationStreamInputOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UpdateApplicationStreamInputResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UpdateApplicationStreamInputResponse + 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 *UpdateApplicationStreamInputOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateApplicationStreamInputOperation) 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 *UpdateApplicationStreamInputOperation) Name() string { + return op.lro.Name() +} + +// UpdateClusterOperation manages a long-running operation from UpdateCluster. +type UpdateClusterOperation 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 *UpdateClusterOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Cluster, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Cluster + 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 *UpdateClusterOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Cluster, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Cluster + 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 *UpdateClusterOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateClusterOperation) 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 *UpdateClusterOperation) Name() string { + return op.lro.Name() +} + +// UpdateDraftOperation manages a long-running operation from UpdateDraft. +type UpdateDraftOperation 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 *UpdateDraftOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Draft, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Draft + 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 *UpdateDraftOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Draft, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Draft + 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 *UpdateDraftOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateDraftOperation) 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 *UpdateDraftOperation) Name() string { + return op.lro.Name() +} + +// UpdateEventOperation manages a long-running operation from UpdateEvent. +type UpdateEventOperation 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 *UpdateEventOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Event, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Event + 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 *UpdateEventOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Event, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Event + 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 *UpdateEventOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateEventOperation) 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 *UpdateEventOperation) Name() string { + return op.lro.Name() +} + +// UpdateIndexEndpointOperation manages a long-running operation from UpdateIndexEndpoint. +type UpdateIndexEndpointOperation 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 *UpdateIndexEndpointOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexEndpoint + 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 *UpdateIndexEndpointOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.IndexEndpoint + 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 *UpdateIndexEndpointOperation) Metadata() (*visionaipb.UpdateIndexEndpointMetadata, error) { + var meta visionaipb.UpdateIndexEndpointMetadata + 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 *UpdateIndexEndpointOperation) 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 *UpdateIndexEndpointOperation) Name() string { + return op.lro.Name() +} + +// UpdateIndexOperation manages a long-running operation from UpdateIndex. +type UpdateIndexOperation 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 *UpdateIndexOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Index, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Index + 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 *UpdateIndexOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Index, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Index + 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 *UpdateIndexOperation) Metadata() (*visionaipb.UpdateIndexMetadata, error) { + var meta visionaipb.UpdateIndexMetadata + 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 *UpdateIndexOperation) 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 *UpdateIndexOperation) Name() string { + return op.lro.Name() +} + +// UpdateOperatorOperation manages a long-running operation from UpdateOperator. +type UpdateOperatorOperation 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 *UpdateOperatorOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Operator, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Operator + 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 *UpdateOperatorOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Operator, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Operator + 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 *UpdateOperatorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateOperatorOperation) 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 *UpdateOperatorOperation) Name() string { + return op.lro.Name() +} + +// UpdateProcessOperation manages a long-running operation from UpdateProcess. +type UpdateProcessOperation 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 *UpdateProcessOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Process, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Process + 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 *UpdateProcessOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Process, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Process + 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 *UpdateProcessOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateProcessOperation) 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 *UpdateProcessOperation) Name() string { + return op.lro.Name() +} + +// UpdateProcessorOperation manages a long-running operation from UpdateProcessor. +type UpdateProcessorOperation 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 *UpdateProcessorOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Processor, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Processor + 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 *UpdateProcessorOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Processor, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Processor + 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 *UpdateProcessorOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateProcessorOperation) 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 *UpdateProcessorOperation) Name() string { + return op.lro.Name() +} + +// UpdateSeriesOperation manages a long-running operation from UpdateSeries. +type UpdateSeriesOperation 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 *UpdateSeriesOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Series, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Series + 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 *UpdateSeriesOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Series, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Series + 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 *UpdateSeriesOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateSeriesOperation) 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 *UpdateSeriesOperation) Name() string { + return op.lro.Name() +} + +// UpdateStreamOperation manages a long-running operation from UpdateStream. +type UpdateStreamOperation 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 *UpdateStreamOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Stream, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Stream + 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 *UpdateStreamOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.Stream, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.Stream + 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 *UpdateStreamOperation) Metadata() (*visionaipb.OperationMetadata, error) { + var meta visionaipb.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 *UpdateStreamOperation) 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 *UpdateStreamOperation) Name() string { + return op.lro.Name() +} + +// UploadAssetOperation manages a long-running operation from UploadAsset. +type UploadAssetOperation 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 *UploadAssetOperation) Wait(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UploadAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UploadAssetResponse + 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 *UploadAssetOperation) Poll(ctx context.Context, opts ...gax.CallOption) (*visionaipb.UploadAssetResponse, error) { + opts = append([]gax.CallOption{gax.WithPath(op.pollPath)}, opts...) + var resp visionaipb.UploadAssetResponse + 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 *UploadAssetOperation) Metadata() (*visionaipb.UploadAssetMetadata, error) { + var meta visionaipb.UploadAssetMetadata + 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 *UploadAssetOperation) 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 *UploadAssetOperation) Name() string { + return op.lro.Name() +} + +// AnalysisIterator manages a stream of *visionaipb.Analysis. +type AnalysisIterator struct { + items []*visionaipb.Analysis + 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 []*visionaipb.Analysis, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *AnalysisIterator) 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 *AnalysisIterator) Next() (*visionaipb.Analysis, error) { + var item *visionaipb.Analysis + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *AnalysisIterator) bufLen() int { + return len(it.items) +} + +func (it *AnalysisIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// AnnotationIterator manages a stream of *visionaipb.Annotation. +type AnnotationIterator struct { + items []*visionaipb.Annotation + 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 []*visionaipb.Annotation, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *AnnotationIterator) 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 *AnnotationIterator) Next() (*visionaipb.Annotation, error) { + var item *visionaipb.Annotation + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *AnnotationIterator) bufLen() int { + return len(it.items) +} + +func (it *AnnotationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ApplicationIterator manages a stream of *visionaipb.Application. +type ApplicationIterator struct { + items []*visionaipb.Application + 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 []*visionaipb.Application, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ApplicationIterator) 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 *ApplicationIterator) Next() (*visionaipb.Application, error) { + var item *visionaipb.Application + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ApplicationIterator) bufLen() int { + return len(it.items) +} + +func (it *ApplicationIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// AssetIterator manages a stream of *visionaipb.Asset. +type AssetIterator struct { + items []*visionaipb.Asset + 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 []*visionaipb.Asset, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *AssetIterator) 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 *AssetIterator) Next() (*visionaipb.Asset, error) { + var item *visionaipb.Asset + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *AssetIterator) bufLen() int { + return len(it.items) +} + +func (it *AssetIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ClusterIterator manages a stream of *visionaipb.Cluster. +type ClusterIterator struct { + items []*visionaipb.Cluster + 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 []*visionaipb.Cluster, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ClusterIterator) 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 *ClusterIterator) Next() (*visionaipb.Cluster, error) { + var item *visionaipb.Cluster + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ClusterIterator) bufLen() int { + return len(it.items) +} + +func (it *ClusterIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// CollectionItemIterator manages a stream of *visionaipb.CollectionItem. +type CollectionItemIterator struct { + items []*visionaipb.CollectionItem + 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 []*visionaipb.CollectionItem, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *CollectionItemIterator) 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 *CollectionItemIterator) Next() (*visionaipb.CollectionItem, error) { + var item *visionaipb.CollectionItem + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *CollectionItemIterator) bufLen() int { + return len(it.items) +} + +func (it *CollectionItemIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// CollectionIterator manages a stream of *visionaipb.Collection. +type CollectionIterator struct { + items []*visionaipb.Collection + 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 []*visionaipb.Collection, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *CollectionIterator) 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 *CollectionIterator) Next() (*visionaipb.Collection, error) { + var item *visionaipb.Collection + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *CollectionIterator) bufLen() int { + return len(it.items) +} + +func (it *CollectionIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// CorpusIterator manages a stream of *visionaipb.Corpus. +type CorpusIterator struct { + items []*visionaipb.Corpus + 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 []*visionaipb.Corpus, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *CorpusIterator) 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 *CorpusIterator) Next() (*visionaipb.Corpus, error) { + var item *visionaipb.Corpus + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *CorpusIterator) bufLen() int { + return len(it.items) +} + +func (it *CorpusIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// DataSchemaIterator manages a stream of *visionaipb.DataSchema. +type DataSchemaIterator struct { + items []*visionaipb.DataSchema + 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 []*visionaipb.DataSchema, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DataSchemaIterator) 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 *DataSchemaIterator) Next() (*visionaipb.DataSchema, error) { + var item *visionaipb.DataSchema + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DataSchemaIterator) bufLen() int { + return len(it.items) +} + +func (it *DataSchemaIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// DraftIterator manages a stream of *visionaipb.Draft. +type DraftIterator struct { + items []*visionaipb.Draft + 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 []*visionaipb.Draft, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *DraftIterator) 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 *DraftIterator) Next() (*visionaipb.Draft, error) { + var item *visionaipb.Draft + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *DraftIterator) bufLen() int { + return len(it.items) +} + +func (it *DraftIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// EventIterator manages a stream of *visionaipb.Event. +type EventIterator struct { + items []*visionaipb.Event + 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 []*visionaipb.Event, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *EventIterator) 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 *EventIterator) Next() (*visionaipb.Event, error) { + var item *visionaipb.Event + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *EventIterator) bufLen() int { + return len(it.items) +} + +func (it *EventIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// IndexEndpointIterator manages a stream of *visionaipb.IndexEndpoint. +type IndexEndpointIterator struct { + items []*visionaipb.IndexEndpoint + 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 []*visionaipb.IndexEndpoint, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *IndexEndpointIterator) 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 *IndexEndpointIterator) Next() (*visionaipb.IndexEndpoint, error) { + var item *visionaipb.IndexEndpoint + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *IndexEndpointIterator) bufLen() int { + return len(it.items) +} + +func (it *IndexEndpointIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// IndexIterator manages a stream of *visionaipb.Index. +type IndexIterator struct { + items []*visionaipb.Index + 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 []*visionaipb.Index, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *IndexIterator) 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 *IndexIterator) Next() (*visionaipb.Index, error) { + var item *visionaipb.Index + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *IndexIterator) bufLen() int { + return len(it.items) +} + +func (it *IndexIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// IndexedAssetIterator manages a stream of *visionaipb.IndexedAsset. +type IndexedAssetIterator struct { + items []*visionaipb.IndexedAsset + 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 []*visionaipb.IndexedAsset, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *IndexedAssetIterator) 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 *IndexedAssetIterator) Next() (*visionaipb.IndexedAsset, error) { + var item *visionaipb.IndexedAsset + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *IndexedAssetIterator) bufLen() int { + return len(it.items) +} + +func (it *IndexedAssetIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// InstanceIterator manages a stream of *visionaipb.Instance. +type InstanceIterator struct { + items []*visionaipb.Instance + 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 []*visionaipb.Instance, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *InstanceIterator) 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 *InstanceIterator) Next() (*visionaipb.Instance, error) { + var item *visionaipb.Instance + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *InstanceIterator) bufLen() int { + return len(it.items) +} + +func (it *InstanceIterator) 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 +} + +// OperatorIterator manages a stream of *visionaipb.Operator. +type OperatorIterator struct { + items []*visionaipb.Operator + 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 []*visionaipb.Operator, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *OperatorIterator) 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 *OperatorIterator) Next() (*visionaipb.Operator, error) { + var item *visionaipb.Operator + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *OperatorIterator) bufLen() int { + return len(it.items) +} + +func (it *OperatorIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ProcessIterator manages a stream of *visionaipb.Process. +type ProcessIterator struct { + items []*visionaipb.Process + 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 []*visionaipb.Process, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ProcessIterator) 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 *ProcessIterator) Next() (*visionaipb.Process, error) { + var item *visionaipb.Process + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ProcessIterator) bufLen() int { + return len(it.items) +} + +func (it *ProcessIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// ProcessorIterator manages a stream of *visionaipb.Processor. +type ProcessorIterator struct { + items []*visionaipb.Processor + 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 []*visionaipb.Processor, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *ProcessorIterator) 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 *ProcessorIterator) Next() (*visionaipb.Processor, error) { + var item *visionaipb.Processor + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *ProcessorIterator) bufLen() int { + return len(it.items) +} + +func (it *ProcessorIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SearchConfigIterator manages a stream of *visionaipb.SearchConfig. +type SearchConfigIterator struct { + items []*visionaipb.SearchConfig + 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 []*visionaipb.SearchConfig, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SearchConfigIterator) 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 *SearchConfigIterator) Next() (*visionaipb.SearchConfig, error) { + var item *visionaipb.SearchConfig + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SearchConfigIterator) bufLen() int { + return len(it.items) +} + +func (it *SearchConfigIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SearchHypernymIterator manages a stream of *visionaipb.SearchHypernym. +type SearchHypernymIterator struct { + items []*visionaipb.SearchHypernym + 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 []*visionaipb.SearchHypernym, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SearchHypernymIterator) 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 *SearchHypernymIterator) Next() (*visionaipb.SearchHypernym, error) { + var item *visionaipb.SearchHypernym + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SearchHypernymIterator) bufLen() int { + return len(it.items) +} + +func (it *SearchHypernymIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SearchResultItemIterator manages a stream of *visionaipb.SearchResultItem. +type SearchResultItemIterator struct { + items []*visionaipb.SearchResultItem + 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 []*visionaipb.SearchResultItem, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SearchResultItemIterator) 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 *SearchResultItemIterator) Next() (*visionaipb.SearchResultItem, error) { + var item *visionaipb.SearchResultItem + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SearchResultItemIterator) bufLen() int { + return len(it.items) +} + +func (it *SearchResultItemIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// SeriesIterator manages a stream of *visionaipb.Series. +type SeriesIterator struct { + items []*visionaipb.Series + 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 []*visionaipb.Series, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *SeriesIterator) 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 *SeriesIterator) Next() (*visionaipb.Series, error) { + var item *visionaipb.Series + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *SeriesIterator) bufLen() int { + return len(it.items) +} + +func (it *SeriesIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} + +// StreamIterator manages a stream of *visionaipb.Stream. +type StreamIterator struct { + items []*visionaipb.Stream + 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 []*visionaipb.Stream, nextPageToken string, err error) +} + +// PageInfo supports pagination. See the google.golang.org/api/iterator package for details. +func (it *StreamIterator) 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 *StreamIterator) Next() (*visionaipb.Stream, error) { + var item *visionaipb.Stream + if err := it.nextFunc(); err != nil { + return item, err + } + item = it.items[0] + it.items = it.items[1:] + return item, nil +} + +func (it *StreamIterator) bufLen() int { + return len(it.items) +} + +func (it *StreamIterator) takeBuf() interface{} { + b := it.items + it.items = nil + return b +} diff --git a/visionai/apiv1/doc.go b/visionai/apiv1/doc.go new file mode 100755 index 00000000000..2289452189c --- /dev/null +++ b/visionai/apiv1/doc.go @@ -0,0 +1,124 @@ +// Copyright 2024 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 visionai is an auto-generated package for the +// Vision AI API. +// +// # General documentation +// +// For information that is relevant for all client libraries please reference +// https://pkg.go.dev/cloud.google.com/go#pkg-overview. Some information on this +// page includes: +// +// - [Authentication and Authorization] +// - [Timeouts and Cancellation] +// - [Testing against Client Libraries] +// - [Debugging Client Libraries] +// - [Inspecting errors] +// +// # Example usage +// +// To get started with this package, create a client. +// +// 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 := visionai.NewLiveVideoAnalyticsClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// The client will use your default application credentials. Clients should be reused instead of created as needed. +// The methods of Client are safe for concurrent use by multiple goroutines. +// The returned client must be Closed when it is done being used. +// +// # Using the Client +// +// The following is an example of making an API call with the newly created client. +// +// 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 := visionai.NewLiveVideoAnalyticsClient(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// defer c.Close() +// +// req := &visionaipb.BatchRunProcessRequest{ +// // TODO: Fill request struct fields. +// // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#BatchRunProcessRequest. +// } +// op, err := c.BatchRunProcess(ctx, req) +// if err != nil { +// // TODO: Handle error. +// } +// +// resp, err := op.Wait(ctx) +// if err != nil { +// // TODO: Handle error. +// } +// // TODO: Use resp. +// _ = resp +// +// # Use of Context +// +// The ctx passed to NewLiveVideoAnalyticsClient is used for authentication requests and +// for creating the underlying connection, but is not used for subsequent calls. +// Individual methods on the client use the ctx given to them. +// +// To close the open connection, use the Close() method. +// +// [Authentication and Authorization]: https://pkg.go.dev/cloud.google.com/go#hdr-Authentication_and_Authorization +// [Timeouts and Cancellation]: https://pkg.go.dev/cloud.google.com/go#hdr-Timeouts_and_Cancellation +// [Testing against Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Testing +// [Debugging Client Libraries]: https://pkg.go.dev/cloud.google.com/go#hdr-Debugging +// [Inspecting errors]: https://pkg.go.dev/cloud.google.com/go#hdr-Inspecting_errors +package visionai // import "cloud.google.com/go/visionai/apiv1" + +import ( + "context" + + "google.golang.org/api/option" +) + +// For more information on implementing a client constructor hook, see +// https://github.com/googleapis/google-cloud-go/wiki/Customizing-constructors. +type clientHookParams struct{} +type clientHook func(context.Context, clientHookParams) ([]option.ClientOption, error) + +var versionClient string + +func getVersionClient() string { + if versionClient == "" { + return "UNKNOWN" + } + return versionClient +} + +// DefaultAuthScopes reports the default set of authentication scopes to use with this package. +func DefaultAuthScopes() []string { + return []string{ + "https://www.googleapis.com/auth/cloud-platform", + } +} diff --git a/visionai/apiv1/gapic_metadata.json b/visionai/apiv1/gapic_metadata.json new file mode 100644 index 00000000000..b5704227b21 --- /dev/null +++ b/visionai/apiv1/gapic_metadata.json @@ -0,0 +1,1703 @@ +{ + "schema": "1.0", + "comment": "This file maps proto services/RPCs to the corresponding library clients/methods.", + "language": "go", + "protoPackage": "google.cloud.visionai.v1", + "libraryPackage": "cloud.google.com/go/visionai/apiv1", + "services": { + "AppPlatform": { + "clients": { + "grpc": { + "libraryClient": "AppPlatformClient", + "rpcs": { + "AddApplicationStreamInput": { + "methods": [ + "AddApplicationStreamInput" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateApplication": { + "methods": [ + "CreateApplication" + ] + }, + "CreateApplicationInstances": { + "methods": [ + "CreateApplicationInstances" + ] + }, + "CreateDraft": { + "methods": [ + "CreateDraft" + ] + }, + "CreateProcessor": { + "methods": [ + "CreateProcessor" + ] + }, + "DeleteApplication": { + "methods": [ + "DeleteApplication" + ] + }, + "DeleteApplicationInstances": { + "methods": [ + "DeleteApplicationInstances" + ] + }, + "DeleteDraft": { + "methods": [ + "DeleteDraft" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteProcessor": { + "methods": [ + "DeleteProcessor" + ] + }, + "DeployApplication": { + "methods": [ + "DeployApplication" + ] + }, + "GetApplication": { + "methods": [ + "GetApplication" + ] + }, + "GetDraft": { + "methods": [ + "GetDraft" + ] + }, + "GetInstance": { + "methods": [ + "GetInstance" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetProcessor": { + "methods": [ + "GetProcessor" + ] + }, + "ListApplications": { + "methods": [ + "ListApplications" + ] + }, + "ListDrafts": { + "methods": [ + "ListDrafts" + ] + }, + "ListInstances": { + "methods": [ + "ListInstances" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListPrebuiltProcessors": { + "methods": [ + "ListPrebuiltProcessors" + ] + }, + "ListProcessors": { + "methods": [ + "ListProcessors" + ] + }, + "RemoveApplicationStreamInput": { + "methods": [ + "RemoveApplicationStreamInput" + ] + }, + "UndeployApplication": { + "methods": [ + "UndeployApplication" + ] + }, + "UpdateApplication": { + "methods": [ + "UpdateApplication" + ] + }, + "UpdateApplicationInstances": { + "methods": [ + "UpdateApplicationInstances" + ] + }, + "UpdateApplicationStreamInput": { + "methods": [ + "UpdateApplicationStreamInput" + ] + }, + "UpdateDraft": { + "methods": [ + "UpdateDraft" + ] + }, + "UpdateProcessor": { + "methods": [ + "UpdateProcessor" + ] + } + } + }, + "rest": { + "libraryClient": "AppPlatformClient", + "rpcs": { + "AddApplicationStreamInput": { + "methods": [ + "AddApplicationStreamInput" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateApplication": { + "methods": [ + "CreateApplication" + ] + }, + "CreateApplicationInstances": { + "methods": [ + "CreateApplicationInstances" + ] + }, + "CreateDraft": { + "methods": [ + "CreateDraft" + ] + }, + "CreateProcessor": { + "methods": [ + "CreateProcessor" + ] + }, + "DeleteApplication": { + "methods": [ + "DeleteApplication" + ] + }, + "DeleteApplicationInstances": { + "methods": [ + "DeleteApplicationInstances" + ] + }, + "DeleteDraft": { + "methods": [ + "DeleteDraft" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteProcessor": { + "methods": [ + "DeleteProcessor" + ] + }, + "DeployApplication": { + "methods": [ + "DeployApplication" + ] + }, + "GetApplication": { + "methods": [ + "GetApplication" + ] + }, + "GetDraft": { + "methods": [ + "GetDraft" + ] + }, + "GetInstance": { + "methods": [ + "GetInstance" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetProcessor": { + "methods": [ + "GetProcessor" + ] + }, + "ListApplications": { + "methods": [ + "ListApplications" + ] + }, + "ListDrafts": { + "methods": [ + "ListDrafts" + ] + }, + "ListInstances": { + "methods": [ + "ListInstances" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListPrebuiltProcessors": { + "methods": [ + "ListPrebuiltProcessors" + ] + }, + "ListProcessors": { + "methods": [ + "ListProcessors" + ] + }, + "RemoveApplicationStreamInput": { + "methods": [ + "RemoveApplicationStreamInput" + ] + }, + "UndeployApplication": { + "methods": [ + "UndeployApplication" + ] + }, + "UpdateApplication": { + "methods": [ + "UpdateApplication" + ] + }, + "UpdateApplicationInstances": { + "methods": [ + "UpdateApplicationInstances" + ] + }, + "UpdateApplicationStreamInput": { + "methods": [ + "UpdateApplicationStreamInput" + ] + }, + "UpdateDraft": { + "methods": [ + "UpdateDraft" + ] + }, + "UpdateProcessor": { + "methods": [ + "UpdateProcessor" + ] + } + } + } + } + }, + "HealthCheckService": { + "clients": { + "grpc": { + "libraryClient": "HealthCheckClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "HealthCheck": { + "methods": [ + "HealthCheck" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + } + } + }, + "rest": { + "libraryClient": "HealthCheckClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "HealthCheck": { + "methods": [ + "HealthCheck" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + } + } + } + } + }, + "LiveVideoAnalytics": { + "clients": { + "grpc": { + "libraryClient": "LiveVideoAnalyticsClient", + "rpcs": { + "BatchRunProcess": { + "methods": [ + "BatchRunProcess" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateAnalysis": { + "methods": [ + "CreateAnalysis" + ] + }, + "CreateOperator": { + "methods": [ + "CreateOperator" + ] + }, + "CreateProcess": { + "methods": [ + "CreateProcess" + ] + }, + "DeleteAnalysis": { + "methods": [ + "DeleteAnalysis" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteOperator": { + "methods": [ + "DeleteOperator" + ] + }, + "DeleteProcess": { + "methods": [ + "DeleteProcess" + ] + }, + "GetAnalysis": { + "methods": [ + "GetAnalysis" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetOperator": { + "methods": [ + "GetOperator" + ] + }, + "GetProcess": { + "methods": [ + "GetProcess" + ] + }, + "ListAnalyses": { + "methods": [ + "ListAnalyses" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListOperators": { + "methods": [ + "ListOperators" + ] + }, + "ListProcesses": { + "methods": [ + "ListProcesses" + ] + }, + "ListPublicOperators": { + "methods": [ + "ListPublicOperators" + ] + }, + "ResolveOperatorInfo": { + "methods": [ + "ResolveOperatorInfo" + ] + }, + "UpdateAnalysis": { + "methods": [ + "UpdateAnalysis" + ] + }, + "UpdateOperator": { + "methods": [ + "UpdateOperator" + ] + }, + "UpdateProcess": { + "methods": [ + "UpdateProcess" + ] + } + } + }, + "rest": { + "libraryClient": "LiveVideoAnalyticsClient", + "rpcs": { + "BatchRunProcess": { + "methods": [ + "BatchRunProcess" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateAnalysis": { + "methods": [ + "CreateAnalysis" + ] + }, + "CreateOperator": { + "methods": [ + "CreateOperator" + ] + }, + "CreateProcess": { + "methods": [ + "CreateProcess" + ] + }, + "DeleteAnalysis": { + "methods": [ + "DeleteAnalysis" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteOperator": { + "methods": [ + "DeleteOperator" + ] + }, + "DeleteProcess": { + "methods": [ + "DeleteProcess" + ] + }, + "GetAnalysis": { + "methods": [ + "GetAnalysis" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetOperator": { + "methods": [ + "GetOperator" + ] + }, + "GetProcess": { + "methods": [ + "GetProcess" + ] + }, + "ListAnalyses": { + "methods": [ + "ListAnalyses" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListOperators": { + "methods": [ + "ListOperators" + ] + }, + "ListProcesses": { + "methods": [ + "ListProcesses" + ] + }, + "ListPublicOperators": { + "methods": [ + "ListPublicOperators" + ] + }, + "ResolveOperatorInfo": { + "methods": [ + "ResolveOperatorInfo" + ] + }, + "UpdateAnalysis": { + "methods": [ + "UpdateAnalysis" + ] + }, + "UpdateOperator": { + "methods": [ + "UpdateOperator" + ] + }, + "UpdateProcess": { + "methods": [ + "UpdateProcess" + ] + } + } + } + } + }, + "StreamingService": { + "clients": { + "grpc": { + "libraryClient": "StreamingClient", + "rpcs": { + "AcquireLease": { + "methods": [ + "AcquireLease" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ReceiveEvents": { + "methods": [ + "ReceiveEvents" + ] + }, + "ReceivePackets": { + "methods": [ + "ReceivePackets" + ] + }, + "ReleaseLease": { + "methods": [ + "ReleaseLease" + ] + }, + "RenewLease": { + "methods": [ + "RenewLease" + ] + }, + "SendPackets": { + "methods": [ + "SendPackets" + ] + } + } + }, + "rest": { + "libraryClient": "StreamingClient", + "rpcs": { + "AcquireLease": { + "methods": [ + "AcquireLease" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ReceiveEvents": { + "methods": [ + "ReceiveEvents" + ] + }, + "ReceivePackets": { + "methods": [ + "ReceivePackets" + ] + }, + "ReleaseLease": { + "methods": [ + "ReleaseLease" + ] + }, + "RenewLease": { + "methods": [ + "RenewLease" + ] + }, + "SendPackets": { + "methods": [ + "SendPackets" + ] + } + } + } + } + }, + "StreamsService": { + "clients": { + "grpc": { + "libraryClient": "StreamsClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateCluster": { + "methods": [ + "CreateCluster" + ] + }, + "CreateEvent": { + "methods": [ + "CreateEvent" + ] + }, + "CreateSeries": { + "methods": [ + "CreateSeries" + ] + }, + "CreateStream": { + "methods": [ + "CreateStream" + ] + }, + "DeleteCluster": { + "methods": [ + "DeleteCluster" + ] + }, + "DeleteEvent": { + "methods": [ + "DeleteEvent" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSeries": { + "methods": [ + "DeleteSeries" + ] + }, + "DeleteStream": { + "methods": [ + "DeleteStream" + ] + }, + "GenerateStreamHlsToken": { + "methods": [ + "GenerateStreamHlsToken" + ] + }, + "GetCluster": { + "methods": [ + "GetCluster" + ] + }, + "GetEvent": { + "methods": [ + "GetEvent" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSeries": { + "methods": [ + "GetSeries" + ] + }, + "GetStream": { + "methods": [ + "GetStream" + ] + }, + "GetStreamThumbnail": { + "methods": [ + "GetStreamThumbnail" + ] + }, + "ListClusters": { + "methods": [ + "ListClusters" + ] + }, + "ListEvents": { + "methods": [ + "ListEvents" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSeries": { + "methods": [ + "ListSeries" + ] + }, + "ListStreams": { + "methods": [ + "ListStreams" + ] + }, + "MaterializeChannel": { + "methods": [ + "MaterializeChannel" + ] + }, + "UpdateCluster": { + "methods": [ + "UpdateCluster" + ] + }, + "UpdateEvent": { + "methods": [ + "UpdateEvent" + ] + }, + "UpdateSeries": { + "methods": [ + "UpdateSeries" + ] + }, + "UpdateStream": { + "methods": [ + "UpdateStream" + ] + } + } + }, + "rest": { + "libraryClient": "StreamsClient", + "rpcs": { + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "CreateCluster": { + "methods": [ + "CreateCluster" + ] + }, + "CreateEvent": { + "methods": [ + "CreateEvent" + ] + }, + "CreateSeries": { + "methods": [ + "CreateSeries" + ] + }, + "CreateStream": { + "methods": [ + "CreateStream" + ] + }, + "DeleteCluster": { + "methods": [ + "DeleteCluster" + ] + }, + "DeleteEvent": { + "methods": [ + "DeleteEvent" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSeries": { + "methods": [ + "DeleteSeries" + ] + }, + "DeleteStream": { + "methods": [ + "DeleteStream" + ] + }, + "GenerateStreamHlsToken": { + "methods": [ + "GenerateStreamHlsToken" + ] + }, + "GetCluster": { + "methods": [ + "GetCluster" + ] + }, + "GetEvent": { + "methods": [ + "GetEvent" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSeries": { + "methods": [ + "GetSeries" + ] + }, + "GetStream": { + "methods": [ + "GetStream" + ] + }, + "GetStreamThumbnail": { + "methods": [ + "GetStreamThumbnail" + ] + }, + "ListClusters": { + "methods": [ + "ListClusters" + ] + }, + "ListEvents": { + "methods": [ + "ListEvents" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSeries": { + "methods": [ + "ListSeries" + ] + }, + "ListStreams": { + "methods": [ + "ListStreams" + ] + }, + "MaterializeChannel": { + "methods": [ + "MaterializeChannel" + ] + }, + "UpdateCluster": { + "methods": [ + "UpdateCluster" + ] + }, + "UpdateEvent": { + "methods": [ + "UpdateEvent" + ] + }, + "UpdateSeries": { + "methods": [ + "UpdateSeries" + ] + }, + "UpdateStream": { + "methods": [ + "UpdateStream" + ] + } + } + } + } + }, + "Warehouse": { + "clients": { + "grpc": { + "libraryClient": "WarehouseClient", + "rpcs": { + "AddCollectionItem": { + "methods": [ + "AddCollectionItem" + ] + }, + "AnalyzeAsset": { + "methods": [ + "AnalyzeAsset" + ] + }, + "AnalyzeCorpus": { + "methods": [ + "AnalyzeCorpus" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "ClipAsset": { + "methods": [ + "ClipAsset" + ] + }, + "CreateAnnotation": { + "methods": [ + "CreateAnnotation" + ] + }, + "CreateAsset": { + "methods": [ + "CreateAsset" + ] + }, + "CreateCollection": { + "methods": [ + "CreateCollection" + ] + }, + "CreateCorpus": { + "methods": [ + "CreateCorpus" + ] + }, + "CreateDataSchema": { + "methods": [ + "CreateDataSchema" + ] + }, + "CreateIndex": { + "methods": [ + "CreateIndex" + ] + }, + "CreateIndexEndpoint": { + "methods": [ + "CreateIndexEndpoint" + ] + }, + "CreateSearchConfig": { + "methods": [ + "CreateSearchConfig" + ] + }, + "CreateSearchHypernym": { + "methods": [ + "CreateSearchHypernym" + ] + }, + "DeleteAnnotation": { + "methods": [ + "DeleteAnnotation" + ] + }, + "DeleteAsset": { + "methods": [ + "DeleteAsset" + ] + }, + "DeleteCollection": { + "methods": [ + "DeleteCollection" + ] + }, + "DeleteCorpus": { + "methods": [ + "DeleteCorpus" + ] + }, + "DeleteDataSchema": { + "methods": [ + "DeleteDataSchema" + ] + }, + "DeleteIndex": { + "methods": [ + "DeleteIndex" + ] + }, + "DeleteIndexEndpoint": { + "methods": [ + "DeleteIndexEndpoint" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSearchConfig": { + "methods": [ + "DeleteSearchConfig" + ] + }, + "DeleteSearchHypernym": { + "methods": [ + "DeleteSearchHypernym" + ] + }, + "DeployIndex": { + "methods": [ + "DeployIndex" + ] + }, + "GenerateHlsUri": { + "methods": [ + "GenerateHlsUri" + ] + }, + "GenerateRetrievalUrl": { + "methods": [ + "GenerateRetrievalUrl" + ] + }, + "GetAnnotation": { + "methods": [ + "GetAnnotation" + ] + }, + "GetAsset": { + "methods": [ + "GetAsset" + ] + }, + "GetCollection": { + "methods": [ + "GetCollection" + ] + }, + "GetCorpus": { + "methods": [ + "GetCorpus" + ] + }, + "GetDataSchema": { + "methods": [ + "GetDataSchema" + ] + }, + "GetIndex": { + "methods": [ + "GetIndex" + ] + }, + "GetIndexEndpoint": { + "methods": [ + "GetIndexEndpoint" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSearchConfig": { + "methods": [ + "GetSearchConfig" + ] + }, + "GetSearchHypernym": { + "methods": [ + "GetSearchHypernym" + ] + }, + "ImportAssets": { + "methods": [ + "ImportAssets" + ] + }, + "IndexAsset": { + "methods": [ + "IndexAsset" + ] + }, + "IngestAsset": { + "methods": [ + "IngestAsset" + ] + }, + "ListAnnotations": { + "methods": [ + "ListAnnotations" + ] + }, + "ListAssets": { + "methods": [ + "ListAssets" + ] + }, + "ListCollections": { + "methods": [ + "ListCollections" + ] + }, + "ListCorpora": { + "methods": [ + "ListCorpora" + ] + }, + "ListDataSchemas": { + "methods": [ + "ListDataSchemas" + ] + }, + "ListIndexEndpoints": { + "methods": [ + "ListIndexEndpoints" + ] + }, + "ListIndexes": { + "methods": [ + "ListIndexes" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSearchConfigs": { + "methods": [ + "ListSearchConfigs" + ] + }, + "ListSearchHypernyms": { + "methods": [ + "ListSearchHypernyms" + ] + }, + "RemoveCollectionItem": { + "methods": [ + "RemoveCollectionItem" + ] + }, + "RemoveIndexAsset": { + "methods": [ + "RemoveIndexAsset" + ] + }, + "SearchAssets": { + "methods": [ + "SearchAssets" + ] + }, + "SearchIndexEndpoint": { + "methods": [ + "SearchIndexEndpoint" + ] + }, + "UndeployIndex": { + "methods": [ + "UndeployIndex" + ] + }, + "UpdateAnnotation": { + "methods": [ + "UpdateAnnotation" + ] + }, + "UpdateAsset": { + "methods": [ + "UpdateAsset" + ] + }, + "UpdateCollection": { + "methods": [ + "UpdateCollection" + ] + }, + "UpdateCorpus": { + "methods": [ + "UpdateCorpus" + ] + }, + "UpdateDataSchema": { + "methods": [ + "UpdateDataSchema" + ] + }, + "UpdateIndex": { + "methods": [ + "UpdateIndex" + ] + }, + "UpdateIndexEndpoint": { + "methods": [ + "UpdateIndexEndpoint" + ] + }, + "UpdateSearchConfig": { + "methods": [ + "UpdateSearchConfig" + ] + }, + "UpdateSearchHypernym": { + "methods": [ + "UpdateSearchHypernym" + ] + }, + "UploadAsset": { + "methods": [ + "UploadAsset" + ] + }, + "ViewCollectionItems": { + "methods": [ + "ViewCollectionItems" + ] + }, + "ViewIndexedAssets": { + "methods": [ + "ViewIndexedAssets" + ] + } + } + }, + "rest": { + "libraryClient": "WarehouseClient", + "rpcs": { + "AddCollectionItem": { + "methods": [ + "AddCollectionItem" + ] + }, + "AnalyzeAsset": { + "methods": [ + "AnalyzeAsset" + ] + }, + "AnalyzeCorpus": { + "methods": [ + "AnalyzeCorpus" + ] + }, + "CancelOperation": { + "methods": [ + "CancelOperation" + ] + }, + "ClipAsset": { + "methods": [ + "ClipAsset" + ] + }, + "CreateAnnotation": { + "methods": [ + "CreateAnnotation" + ] + }, + "CreateAsset": { + "methods": [ + "CreateAsset" + ] + }, + "CreateCollection": { + "methods": [ + "CreateCollection" + ] + }, + "CreateCorpus": { + "methods": [ + "CreateCorpus" + ] + }, + "CreateDataSchema": { + "methods": [ + "CreateDataSchema" + ] + }, + "CreateIndex": { + "methods": [ + "CreateIndex" + ] + }, + "CreateIndexEndpoint": { + "methods": [ + "CreateIndexEndpoint" + ] + }, + "CreateSearchConfig": { + "methods": [ + "CreateSearchConfig" + ] + }, + "CreateSearchHypernym": { + "methods": [ + "CreateSearchHypernym" + ] + }, + "DeleteAnnotation": { + "methods": [ + "DeleteAnnotation" + ] + }, + "DeleteAsset": { + "methods": [ + "DeleteAsset" + ] + }, + "DeleteCollection": { + "methods": [ + "DeleteCollection" + ] + }, + "DeleteCorpus": { + "methods": [ + "DeleteCorpus" + ] + }, + "DeleteDataSchema": { + "methods": [ + "DeleteDataSchema" + ] + }, + "DeleteIndex": { + "methods": [ + "DeleteIndex" + ] + }, + "DeleteIndexEndpoint": { + "methods": [ + "DeleteIndexEndpoint" + ] + }, + "DeleteOperation": { + "methods": [ + "DeleteOperation" + ] + }, + "DeleteSearchConfig": { + "methods": [ + "DeleteSearchConfig" + ] + }, + "DeleteSearchHypernym": { + "methods": [ + "DeleteSearchHypernym" + ] + }, + "DeployIndex": { + "methods": [ + "DeployIndex" + ] + }, + "GenerateHlsUri": { + "methods": [ + "GenerateHlsUri" + ] + }, + "GenerateRetrievalUrl": { + "methods": [ + "GenerateRetrievalUrl" + ] + }, + "GetAnnotation": { + "methods": [ + "GetAnnotation" + ] + }, + "GetAsset": { + "methods": [ + "GetAsset" + ] + }, + "GetCollection": { + "methods": [ + "GetCollection" + ] + }, + "GetCorpus": { + "methods": [ + "GetCorpus" + ] + }, + "GetDataSchema": { + "methods": [ + "GetDataSchema" + ] + }, + "GetIndex": { + "methods": [ + "GetIndex" + ] + }, + "GetIndexEndpoint": { + "methods": [ + "GetIndexEndpoint" + ] + }, + "GetOperation": { + "methods": [ + "GetOperation" + ] + }, + "GetSearchConfig": { + "methods": [ + "GetSearchConfig" + ] + }, + "GetSearchHypernym": { + "methods": [ + "GetSearchHypernym" + ] + }, + "ImportAssets": { + "methods": [ + "ImportAssets" + ] + }, + "IndexAsset": { + "methods": [ + "IndexAsset" + ] + }, + "IngestAsset": { + "methods": [ + "IngestAsset" + ] + }, + "ListAnnotations": { + "methods": [ + "ListAnnotations" + ] + }, + "ListAssets": { + "methods": [ + "ListAssets" + ] + }, + "ListCollections": { + "methods": [ + "ListCollections" + ] + }, + "ListCorpora": { + "methods": [ + "ListCorpora" + ] + }, + "ListDataSchemas": { + "methods": [ + "ListDataSchemas" + ] + }, + "ListIndexEndpoints": { + "methods": [ + "ListIndexEndpoints" + ] + }, + "ListIndexes": { + "methods": [ + "ListIndexes" + ] + }, + "ListOperations": { + "methods": [ + "ListOperations" + ] + }, + "ListSearchConfigs": { + "methods": [ + "ListSearchConfigs" + ] + }, + "ListSearchHypernyms": { + "methods": [ + "ListSearchHypernyms" + ] + }, + "RemoveCollectionItem": { + "methods": [ + "RemoveCollectionItem" + ] + }, + "RemoveIndexAsset": { + "methods": [ + "RemoveIndexAsset" + ] + }, + "SearchAssets": { + "methods": [ + "SearchAssets" + ] + }, + "SearchIndexEndpoint": { + "methods": [ + "SearchIndexEndpoint" + ] + }, + "UndeployIndex": { + "methods": [ + "UndeployIndex" + ] + }, + "UpdateAnnotation": { + "methods": [ + "UpdateAnnotation" + ] + }, + "UpdateAsset": { + "methods": [ + "UpdateAsset" + ] + }, + "UpdateCollection": { + "methods": [ + "UpdateCollection" + ] + }, + "UpdateCorpus": { + "methods": [ + "UpdateCorpus" + ] + }, + "UpdateDataSchema": { + "methods": [ + "UpdateDataSchema" + ] + }, + "UpdateIndex": { + "methods": [ + "UpdateIndex" + ] + }, + "UpdateIndexEndpoint": { + "methods": [ + "UpdateIndexEndpoint" + ] + }, + "UpdateSearchConfig": { + "methods": [ + "UpdateSearchConfig" + ] + }, + "UpdateSearchHypernym": { + "methods": [ + "UpdateSearchHypernym" + ] + }, + "UploadAsset": { + "methods": [ + "UploadAsset" + ] + }, + "ViewCollectionItems": { + "methods": [ + "ViewCollectionItems" + ] + }, + "ViewIndexedAssets": { + "methods": [ + "ViewIndexedAssets" + ] + } + } + } + } + } + } +} diff --git a/visionai/apiv1/health_check_client.go b/visionai/apiv1/health_check_client.go new file mode 100755 index 00000000000..b5d97656683 --- /dev/null +++ b/visionai/apiv1/health_check_client.go @@ -0,0 +1,717 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newHealthCheckClientHook clientHook + +// HealthCheckCallOptions contains the retry settings for each method of HealthCheckClient. +type HealthCheckCallOptions struct { + HealthCheck []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultHealthCheckGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultHealthCheckCallOptions() *HealthCheckCallOptions { + return &HealthCheckCallOptions{ + HealthCheck: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultHealthCheckRESTCallOptions() *HealthCheckCallOptions { + return &HealthCheckCallOptions{ + HealthCheck: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalHealthCheckClient is an interface that defines the methods available from Vision AI API. +type internalHealthCheckClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + HealthCheck(context.Context, *visionaipb.HealthCheckRequest, ...gax.CallOption) (*visionaipb.HealthCheckResponse, 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 +} + +// HealthCheckClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// HealthCheckService provides an interface for Vertex AI Vision Cluster Health +// Check. +type HealthCheckClient struct { + // The internal transport-dependent client. + internalClient internalHealthCheckClient + + // The call options for this service. + CallOptions *HealthCheckCallOptions +} + +// 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 *HealthCheckClient) 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 *HealthCheckClient) 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 *HealthCheckClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// HealthCheck healthCheck method checks the health status of the cluster. +func (c *HealthCheckClient) HealthCheck(ctx context.Context, req *visionaipb.HealthCheckRequest, opts ...gax.CallOption) (*visionaipb.HealthCheckResponse, error) { + return c.internalClient.HealthCheck(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *HealthCheckClient) 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 *HealthCheckClient) 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 *HealthCheckClient) 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 *HealthCheckClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// healthCheckGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type healthCheckGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing HealthCheckClient + CallOptions **HealthCheckCallOptions + + // The gRPC API client. + healthCheckClient visionaipb.HealthCheckServiceClient + + operationsClient longrunningpb.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewHealthCheckClient creates a new health check service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// HealthCheckService provides an interface for Vertex AI Vision Cluster Health +// Check. +func NewHealthCheckClient(ctx context.Context, opts ...option.ClientOption) (*HealthCheckClient, error) { + clientOpts := defaultHealthCheckGRPCClientOptions() + if newHealthCheckClientHook != nil { + hookOpts, err := newHealthCheckClientHook(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 := HealthCheckClient{CallOptions: defaultHealthCheckCallOptions()} + + c := &healthCheckGRPCClient{ + connPool: connPool, + healthCheckClient: visionaipb.NewHealthCheckServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *healthCheckGRPCClient) 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 *healthCheckGRPCClient) 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 *healthCheckGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type healthCheckRESTClient 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 HealthCheckClient + CallOptions **HealthCheckCallOptions +} + +// NewHealthCheckRESTClient creates a new health check service rest client. +// +// HealthCheckService provides an interface for Vertex AI Vision Cluster Health +// Check. +func NewHealthCheckRESTClient(ctx context.Context, opts ...option.ClientOption) (*HealthCheckClient, error) { + clientOpts := append(defaultHealthCheckRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultHealthCheckRESTCallOptions() + c := &healthCheckRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &HealthCheckClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultHealthCheckRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *healthCheckRESTClient) 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 *healthCheckRESTClient) 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 *healthCheckRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *healthCheckGRPCClient) HealthCheck(ctx context.Context, req *visionaipb.HealthCheckRequest, opts ...gax.CallOption) (*visionaipb.HealthCheckResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "cluster", url.QueryEscape(req.GetCluster()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).HealthCheck[0:len((*c.CallOptions).HealthCheck):len((*c.CallOptions).HealthCheck)], opts...) + var resp *visionaipb.HealthCheckResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.healthCheckClient.HealthCheck(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *healthCheckGRPCClient) 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 *healthCheckGRPCClient) 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 *healthCheckGRPCClient) 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 *healthCheckGRPCClient) 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 +} + +// HealthCheck healthCheck method checks the health status of the cluster. +func (c *healthCheckRESTClient) HealthCheck(ctx context.Context, req *visionaipb.HealthCheckRequest, opts ...gax.CallOption) (*visionaipb.HealthCheckResponse, error) { + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v:healthCheck", req.GetCluster()) + + 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", "cluster", url.QueryEscape(req.GetCluster()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).HealthCheck[0:len((*c.CallOptions).HealthCheck):len((*c.CallOptions).HealthCheck)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.HealthCheckResponse{} + 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 +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *healthCheckRESTClient) 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 *healthCheckRESTClient) 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 *healthCheckRESTClient) 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 *healthCheckRESTClient) 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 +} diff --git a/visionai/apiv1/health_check_client_example_test.go b/visionai/apiv1/health_check_client_example_test.go new file mode 100644 index 00000000000..6d00f3c9ef9 --- /dev/null +++ b/visionai/apiv1/health_check_client_example_test.go @@ -0,0 +1,187 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewHealthCheckClient() { + 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 := visionai.NewHealthCheckClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewHealthCheckRESTClient() { + 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 := visionai.NewHealthCheckRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleHealthCheckClient_HealthCheck() { + 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 := visionai.NewHealthCheckClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.HealthCheckRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#HealthCheckRequest. + } + resp, err := c.HealthCheck(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleHealthCheckClient_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 := visionai.NewHealthCheckClient(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 ExampleHealthCheckClient_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 := visionai.NewHealthCheckClient(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 ExampleHealthCheckClient_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 := visionai.NewHealthCheckClient(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 ExampleHealthCheckClient_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 := visionai.NewHealthCheckClient(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/visionai/apiv1/live_video_analytics_client.go b/visionai/apiv1/live_video_analytics_client.go new file mode 100755 index 00000000000..982350f7218 --- /dev/null +++ b/visionai/apiv1/live_video_analytics_client.go @@ -0,0 +1,3113 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newLiveVideoAnalyticsClientHook clientHook + +// LiveVideoAnalyticsCallOptions contains the retry settings for each method of LiveVideoAnalyticsClient. +type LiveVideoAnalyticsCallOptions struct { + ListPublicOperators []gax.CallOption + ResolveOperatorInfo []gax.CallOption + ListOperators []gax.CallOption + GetOperator []gax.CallOption + CreateOperator []gax.CallOption + UpdateOperator []gax.CallOption + DeleteOperator []gax.CallOption + ListAnalyses []gax.CallOption + GetAnalysis []gax.CallOption + CreateAnalysis []gax.CallOption + UpdateAnalysis []gax.CallOption + DeleteAnalysis []gax.CallOption + ListProcesses []gax.CallOption + GetProcess []gax.CallOption + CreateProcess []gax.CallOption + UpdateProcess []gax.CallOption + DeleteProcess []gax.CallOption + BatchRunProcess []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultLiveVideoAnalyticsGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultLiveVideoAnalyticsCallOptions() *LiveVideoAnalyticsCallOptions { + return &LiveVideoAnalyticsCallOptions{ + ListPublicOperators: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ResolveOperatorInfo: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListOperators: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateOperator: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + }, + UpdateOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListAnalyses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateAnalysis: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + }, + UpdateAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListProcesses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + BatchRunProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultLiveVideoAnalyticsRESTCallOptions() *LiveVideoAnalyticsCallOptions { + return &LiveVideoAnalyticsCallOptions{ + ListPublicOperators: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ResolveOperatorInfo: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListOperators: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateOperator: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + }, + UpdateOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteOperator: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListAnalyses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + GetAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + CreateAnalysis: []gax.CallOption{ + gax.WithTimeout(300000 * time.Millisecond), + }, + UpdateAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + DeleteAnalysis: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + }, + ListProcesses: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + BatchRunProcess: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalLiveVideoAnalyticsClient is an interface that defines the methods available from Vision AI API. +type internalLiveVideoAnalyticsClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListPublicOperators(context.Context, *visionaipb.ListPublicOperatorsRequest, ...gax.CallOption) *OperatorIterator + ResolveOperatorInfo(context.Context, *visionaipb.ResolveOperatorInfoRequest, ...gax.CallOption) (*visionaipb.ResolveOperatorInfoResponse, error) + ListOperators(context.Context, *visionaipb.ListOperatorsRequest, ...gax.CallOption) *OperatorIterator + GetOperator(context.Context, *visionaipb.GetOperatorRequest, ...gax.CallOption) (*visionaipb.Operator, error) + CreateOperator(context.Context, *visionaipb.CreateOperatorRequest, ...gax.CallOption) (*CreateOperatorOperation, error) + CreateOperatorOperation(name string) *CreateOperatorOperation + UpdateOperator(context.Context, *visionaipb.UpdateOperatorRequest, ...gax.CallOption) (*UpdateOperatorOperation, error) + UpdateOperatorOperation(name string) *UpdateOperatorOperation + DeleteOperator(context.Context, *visionaipb.DeleteOperatorRequest, ...gax.CallOption) (*DeleteOperatorOperation, error) + DeleteOperatorOperation(name string) *DeleteOperatorOperation + ListAnalyses(context.Context, *visionaipb.ListAnalysesRequest, ...gax.CallOption) *AnalysisIterator + GetAnalysis(context.Context, *visionaipb.GetAnalysisRequest, ...gax.CallOption) (*visionaipb.Analysis, error) + CreateAnalysis(context.Context, *visionaipb.CreateAnalysisRequest, ...gax.CallOption) (*CreateAnalysisOperation, error) + CreateAnalysisOperation(name string) *CreateAnalysisOperation + UpdateAnalysis(context.Context, *visionaipb.UpdateAnalysisRequest, ...gax.CallOption) (*UpdateAnalysisOperation, error) + UpdateAnalysisOperation(name string) *UpdateAnalysisOperation + DeleteAnalysis(context.Context, *visionaipb.DeleteAnalysisRequest, ...gax.CallOption) (*DeleteAnalysisOperation, error) + DeleteAnalysisOperation(name string) *DeleteAnalysisOperation + ListProcesses(context.Context, *visionaipb.ListProcessesRequest, ...gax.CallOption) *ProcessIterator + GetProcess(context.Context, *visionaipb.GetProcessRequest, ...gax.CallOption) (*visionaipb.Process, error) + CreateProcess(context.Context, *visionaipb.CreateProcessRequest, ...gax.CallOption) (*CreateProcessOperation, error) + CreateProcessOperation(name string) *CreateProcessOperation + UpdateProcess(context.Context, *visionaipb.UpdateProcessRequest, ...gax.CallOption) (*UpdateProcessOperation, error) + UpdateProcessOperation(name string) *UpdateProcessOperation + DeleteProcess(context.Context, *visionaipb.DeleteProcessRequest, ...gax.CallOption) (*DeleteProcessOperation, error) + DeleteProcessOperation(name string) *DeleteProcessOperation + BatchRunProcess(context.Context, *visionaipb.BatchRunProcessRequest, ...gax.CallOption) (*BatchRunProcessOperation, error) + BatchRunProcessOperation(name string) *BatchRunProcessOperation + 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 +} + +// LiveVideoAnalyticsClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service describing handlers for resources. The service enables clients to run +// Live Video Analytics (LVA) on the streaming inputs. +type LiveVideoAnalyticsClient struct { + // The internal transport-dependent client. + internalClient internalLiveVideoAnalyticsClient + + // The call options for this service. + CallOptions *LiveVideoAnalyticsCallOptions + + // 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 *LiveVideoAnalyticsClient) 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 *LiveVideoAnalyticsClient) 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 *LiveVideoAnalyticsClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListPublicOperators listPublicOperators returns all the operators in public registry. +func (c *LiveVideoAnalyticsClient) ListPublicOperators(ctx context.Context, req *visionaipb.ListPublicOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + return c.internalClient.ListPublicOperators(ctx, req, opts...) +} + +// ResolveOperatorInfo resolveOperatorInfo returns the operator information based on the request. +func (c *LiveVideoAnalyticsClient) ResolveOperatorInfo(ctx context.Context, req *visionaipb.ResolveOperatorInfoRequest, opts ...gax.CallOption) (*visionaipb.ResolveOperatorInfoResponse, error) { + return c.internalClient.ResolveOperatorInfo(ctx, req, opts...) +} + +// ListOperators lists Operators in a given project and location. +func (c *LiveVideoAnalyticsClient) ListOperators(ctx context.Context, req *visionaipb.ListOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + return c.internalClient.ListOperators(ctx, req, opts...) +} + +// GetOperator gets details of a single Operator. +func (c *LiveVideoAnalyticsClient) GetOperator(ctx context.Context, req *visionaipb.GetOperatorRequest, opts ...gax.CallOption) (*visionaipb.Operator, error) { + return c.internalClient.GetOperator(ctx, req, opts...) +} + +// CreateOperator creates a new Operator in a given project and location. +func (c *LiveVideoAnalyticsClient) CreateOperator(ctx context.Context, req *visionaipb.CreateOperatorRequest, opts ...gax.CallOption) (*CreateOperatorOperation, error) { + return c.internalClient.CreateOperator(ctx, req, opts...) +} + +// CreateOperatorOperation returns a new CreateOperatorOperation from a given name. +// The name must be that of a previously created CreateOperatorOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) CreateOperatorOperation(name string) *CreateOperatorOperation { + return c.internalClient.CreateOperatorOperation(name) +} + +// UpdateOperator updates the parameters of a single Operator. +func (c *LiveVideoAnalyticsClient) UpdateOperator(ctx context.Context, req *visionaipb.UpdateOperatorRequest, opts ...gax.CallOption) (*UpdateOperatorOperation, error) { + return c.internalClient.UpdateOperator(ctx, req, opts...) +} + +// UpdateOperatorOperation returns a new UpdateOperatorOperation from a given name. +// The name must be that of a previously created UpdateOperatorOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) UpdateOperatorOperation(name string) *UpdateOperatorOperation { + return c.internalClient.UpdateOperatorOperation(name) +} + +// DeleteOperator deletes a single Operator. +func (c *LiveVideoAnalyticsClient) DeleteOperator(ctx context.Context, req *visionaipb.DeleteOperatorRequest, opts ...gax.CallOption) (*DeleteOperatorOperation, error) { + return c.internalClient.DeleteOperator(ctx, req, opts...) +} + +// DeleteOperatorOperation returns a new DeleteOperatorOperation from a given name. +// The name must be that of a previously created DeleteOperatorOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) DeleteOperatorOperation(name string) *DeleteOperatorOperation { + return c.internalClient.DeleteOperatorOperation(name) +} + +// ListAnalyses lists Analyses in a given project and location. +func (c *LiveVideoAnalyticsClient) ListAnalyses(ctx context.Context, req *visionaipb.ListAnalysesRequest, opts ...gax.CallOption) *AnalysisIterator { + return c.internalClient.ListAnalyses(ctx, req, opts...) +} + +// GetAnalysis gets details of a single Analysis. +func (c *LiveVideoAnalyticsClient) GetAnalysis(ctx context.Context, req *visionaipb.GetAnalysisRequest, opts ...gax.CallOption) (*visionaipb.Analysis, error) { + return c.internalClient.GetAnalysis(ctx, req, opts...) +} + +// CreateAnalysis creates a new Analysis in a given project and location. +func (c *LiveVideoAnalyticsClient) CreateAnalysis(ctx context.Context, req *visionaipb.CreateAnalysisRequest, opts ...gax.CallOption) (*CreateAnalysisOperation, error) { + return c.internalClient.CreateAnalysis(ctx, req, opts...) +} + +// CreateAnalysisOperation returns a new CreateAnalysisOperation from a given name. +// The name must be that of a previously created CreateAnalysisOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) CreateAnalysisOperation(name string) *CreateAnalysisOperation { + return c.internalClient.CreateAnalysisOperation(name) +} + +// UpdateAnalysis updates the parameters of a single Analysis. +func (c *LiveVideoAnalyticsClient) UpdateAnalysis(ctx context.Context, req *visionaipb.UpdateAnalysisRequest, opts ...gax.CallOption) (*UpdateAnalysisOperation, error) { + return c.internalClient.UpdateAnalysis(ctx, req, opts...) +} + +// UpdateAnalysisOperation returns a new UpdateAnalysisOperation from a given name. +// The name must be that of a previously created UpdateAnalysisOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) UpdateAnalysisOperation(name string) *UpdateAnalysisOperation { + return c.internalClient.UpdateAnalysisOperation(name) +} + +// DeleteAnalysis deletes a single Analysis. +func (c *LiveVideoAnalyticsClient) DeleteAnalysis(ctx context.Context, req *visionaipb.DeleteAnalysisRequest, opts ...gax.CallOption) (*DeleteAnalysisOperation, error) { + return c.internalClient.DeleteAnalysis(ctx, req, opts...) +} + +// DeleteAnalysisOperation returns a new DeleteAnalysisOperation from a given name. +// The name must be that of a previously created DeleteAnalysisOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) DeleteAnalysisOperation(name string) *DeleteAnalysisOperation { + return c.internalClient.DeleteAnalysisOperation(name) +} + +// ListProcesses lists Processes in a given project and location. +func (c *LiveVideoAnalyticsClient) ListProcesses(ctx context.Context, req *visionaipb.ListProcessesRequest, opts ...gax.CallOption) *ProcessIterator { + return c.internalClient.ListProcesses(ctx, req, opts...) +} + +// GetProcess gets details of a single Process. +func (c *LiveVideoAnalyticsClient) GetProcess(ctx context.Context, req *visionaipb.GetProcessRequest, opts ...gax.CallOption) (*visionaipb.Process, error) { + return c.internalClient.GetProcess(ctx, req, opts...) +} + +// CreateProcess creates a new Process in a given project and location. +func (c *LiveVideoAnalyticsClient) CreateProcess(ctx context.Context, req *visionaipb.CreateProcessRequest, opts ...gax.CallOption) (*CreateProcessOperation, error) { + return c.internalClient.CreateProcess(ctx, req, opts...) +} + +// CreateProcessOperation returns a new CreateProcessOperation from a given name. +// The name must be that of a previously created CreateProcessOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) CreateProcessOperation(name string) *CreateProcessOperation { + return c.internalClient.CreateProcessOperation(name) +} + +// UpdateProcess updates the parameters of a single Process. +func (c *LiveVideoAnalyticsClient) UpdateProcess(ctx context.Context, req *visionaipb.UpdateProcessRequest, opts ...gax.CallOption) (*UpdateProcessOperation, error) { + return c.internalClient.UpdateProcess(ctx, req, opts...) +} + +// UpdateProcessOperation returns a new UpdateProcessOperation from a given name. +// The name must be that of a previously created UpdateProcessOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) UpdateProcessOperation(name string) *UpdateProcessOperation { + return c.internalClient.UpdateProcessOperation(name) +} + +// DeleteProcess deletes a single Process. +func (c *LiveVideoAnalyticsClient) DeleteProcess(ctx context.Context, req *visionaipb.DeleteProcessRequest, opts ...gax.CallOption) (*DeleteProcessOperation, error) { + return c.internalClient.DeleteProcess(ctx, req, opts...) +} + +// DeleteProcessOperation returns a new DeleteProcessOperation from a given name. +// The name must be that of a previously created DeleteProcessOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) DeleteProcessOperation(name string) *DeleteProcessOperation { + return c.internalClient.DeleteProcessOperation(name) +} + +// BatchRunProcess run all of the processes to “completion”. Max time for each process is +// the LRO time limit. +func (c *LiveVideoAnalyticsClient) BatchRunProcess(ctx context.Context, req *visionaipb.BatchRunProcessRequest, opts ...gax.CallOption) (*BatchRunProcessOperation, error) { + return c.internalClient.BatchRunProcess(ctx, req, opts...) +} + +// BatchRunProcessOperation returns a new BatchRunProcessOperation from a given name. +// The name must be that of a previously created BatchRunProcessOperation, possibly from a different process. +func (c *LiveVideoAnalyticsClient) BatchRunProcessOperation(name string) *BatchRunProcessOperation { + return c.internalClient.BatchRunProcessOperation(name) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *LiveVideoAnalyticsClient) 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 *LiveVideoAnalyticsClient) 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 *LiveVideoAnalyticsClient) 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 *LiveVideoAnalyticsClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// liveVideoAnalyticsGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type liveVideoAnalyticsGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing LiveVideoAnalyticsClient + CallOptions **LiveVideoAnalyticsCallOptions + + // The gRPC API client. + liveVideoAnalyticsClient visionaipb.LiveVideoAnalyticsClient + + // 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 + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewLiveVideoAnalyticsClient creates a new live video analytics client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service describing handlers for resources. The service enables clients to run +// Live Video Analytics (LVA) on the streaming inputs. +func NewLiveVideoAnalyticsClient(ctx context.Context, opts ...option.ClientOption) (*LiveVideoAnalyticsClient, error) { + clientOpts := defaultLiveVideoAnalyticsGRPCClientOptions() + if newLiveVideoAnalyticsClientHook != nil { + hookOpts, err := newLiveVideoAnalyticsClientHook(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 := LiveVideoAnalyticsClient{CallOptions: defaultLiveVideoAnalyticsCallOptions()} + + c := &liveVideoAnalyticsGRPCClient{ + connPool: connPool, + liveVideoAnalyticsClient: visionaipb.NewLiveVideoAnalyticsClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *liveVideoAnalyticsGRPCClient) 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 *liveVideoAnalyticsGRPCClient) 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 *liveVideoAnalyticsGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type liveVideoAnalyticsRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // 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 + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing LiveVideoAnalyticsClient + CallOptions **LiveVideoAnalyticsCallOptions +} + +// NewLiveVideoAnalyticsRESTClient creates a new live video analytics rest client. +// +// Service describing handlers for resources. The service enables clients to run +// Live Video Analytics (LVA) on the streaming inputs. +func NewLiveVideoAnalyticsRESTClient(ctx context.Context, opts ...option.ClientOption) (*LiveVideoAnalyticsClient, error) { + clientOpts := append(defaultLiveVideoAnalyticsRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultLiveVideoAnalyticsRESTCallOptions() + c := &liveVideoAnalyticsRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &LiveVideoAnalyticsClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultLiveVideoAnalyticsRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *liveVideoAnalyticsRESTClient) 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 *liveVideoAnalyticsRESTClient) 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 *liveVideoAnalyticsRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *liveVideoAnalyticsGRPCClient) ListPublicOperators(ctx context.Context, req *visionaipb.ListPublicOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + 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).ListPublicOperators[0:len((*c.CallOptions).ListPublicOperators):len((*c.CallOptions).ListPublicOperators)], opts...) + it := &OperatorIterator{} + req = proto.Clone(req).(*visionaipb.ListPublicOperatorsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Operator, string, error) { + resp := &visionaipb.ListPublicOperatorsResponse{} + 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.liveVideoAnalyticsClient.ListPublicOperators(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperators(), 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 *liveVideoAnalyticsGRPCClient) ResolveOperatorInfo(ctx context.Context, req *visionaipb.ResolveOperatorInfoRequest, opts ...gax.CallOption) (*visionaipb.ResolveOperatorInfoResponse, 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).ResolveOperatorInfo[0:len((*c.CallOptions).ResolveOperatorInfo):len((*c.CallOptions).ResolveOperatorInfo)], opts...) + var resp *visionaipb.ResolveOperatorInfoResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.ResolveOperatorInfo(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *liveVideoAnalyticsGRPCClient) ListOperators(ctx context.Context, req *visionaipb.ListOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + 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).ListOperators[0:len((*c.CallOptions).ListOperators):len((*c.CallOptions).ListOperators)], opts...) + it := &OperatorIterator{} + req = proto.Clone(req).(*visionaipb.ListOperatorsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Operator, string, error) { + resp := &visionaipb.ListOperatorsResponse{} + 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.liveVideoAnalyticsClient.ListOperators(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetOperators(), 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 *liveVideoAnalyticsGRPCClient) GetOperator(ctx context.Context, req *visionaipb.GetOperatorRequest, opts ...gax.CallOption) (*visionaipb.Operator, 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).GetOperator[0:len((*c.CallOptions).GetOperator):len((*c.CallOptions).GetOperator)], opts...) + var resp *visionaipb.Operator + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.GetOperator(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *liveVideoAnalyticsGRPCClient) CreateOperator(ctx context.Context, req *visionaipb.CreateOperatorRequest, opts ...gax.CallOption) (*CreateOperatorOperation, 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).CreateOperator[0:len((*c.CallOptions).CreateOperator):len((*c.CallOptions).CreateOperator)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.CreateOperator(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) UpdateOperator(ctx context.Context, req *visionaipb.UpdateOperatorRequest, opts ...gax.CallOption) (*UpdateOperatorOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "operator.name", url.QueryEscape(req.GetOperator().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateOperator[0:len((*c.CallOptions).UpdateOperator):len((*c.CallOptions).UpdateOperator)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.UpdateOperator(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) DeleteOperator(ctx context.Context, req *visionaipb.DeleteOperatorRequest, opts ...gax.CallOption) (*DeleteOperatorOperation, 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).DeleteOperator[0:len((*c.CallOptions).DeleteOperator):len((*c.CallOptions).DeleteOperator)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.DeleteOperator(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) ListAnalyses(ctx context.Context, req *visionaipb.ListAnalysesRequest, opts ...gax.CallOption) *AnalysisIterator { + 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).ListAnalyses[0:len((*c.CallOptions).ListAnalyses):len((*c.CallOptions).ListAnalyses)], opts...) + it := &AnalysisIterator{} + req = proto.Clone(req).(*visionaipb.ListAnalysesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Analysis, string, error) { + resp := &visionaipb.ListAnalysesResponse{} + 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.liveVideoAnalyticsClient.ListAnalyses(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetAnalyses(), 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 *liveVideoAnalyticsGRPCClient) GetAnalysis(ctx context.Context, req *visionaipb.GetAnalysisRequest, opts ...gax.CallOption) (*visionaipb.Analysis, 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).GetAnalysis[0:len((*c.CallOptions).GetAnalysis):len((*c.CallOptions).GetAnalysis)], opts...) + var resp *visionaipb.Analysis + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.GetAnalysis(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *liveVideoAnalyticsGRPCClient) CreateAnalysis(ctx context.Context, req *visionaipb.CreateAnalysisRequest, opts ...gax.CallOption) (*CreateAnalysisOperation, 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).CreateAnalysis[0:len((*c.CallOptions).CreateAnalysis):len((*c.CallOptions).CreateAnalysis)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.CreateAnalysis(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) UpdateAnalysis(ctx context.Context, req *visionaipb.UpdateAnalysisRequest, opts ...gax.CallOption) (*UpdateAnalysisOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "analysis.name", url.QueryEscape(req.GetAnalysis().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateAnalysis[0:len((*c.CallOptions).UpdateAnalysis):len((*c.CallOptions).UpdateAnalysis)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.UpdateAnalysis(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) DeleteAnalysis(ctx context.Context, req *visionaipb.DeleteAnalysisRequest, opts ...gax.CallOption) (*DeleteAnalysisOperation, 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).DeleteAnalysis[0:len((*c.CallOptions).DeleteAnalysis):len((*c.CallOptions).DeleteAnalysis)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.DeleteAnalysis(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) ListProcesses(ctx context.Context, req *visionaipb.ListProcessesRequest, opts ...gax.CallOption) *ProcessIterator { + 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).ListProcesses[0:len((*c.CallOptions).ListProcesses):len((*c.CallOptions).ListProcesses)], opts...) + it := &ProcessIterator{} + req = proto.Clone(req).(*visionaipb.ListProcessesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Process, string, error) { + resp := &visionaipb.ListProcessesResponse{} + 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.liveVideoAnalyticsClient.ListProcesses(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetProcesses(), 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 *liveVideoAnalyticsGRPCClient) GetProcess(ctx context.Context, req *visionaipb.GetProcessRequest, opts ...gax.CallOption) (*visionaipb.Process, 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).GetProcess[0:len((*c.CallOptions).GetProcess):len((*c.CallOptions).GetProcess)], opts...) + var resp *visionaipb.Process + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.GetProcess(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *liveVideoAnalyticsGRPCClient) CreateProcess(ctx context.Context, req *visionaipb.CreateProcessRequest, opts ...gax.CallOption) (*CreateProcessOperation, 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).CreateProcess[0:len((*c.CallOptions).CreateProcess):len((*c.CallOptions).CreateProcess)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.CreateProcess(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) UpdateProcess(ctx context.Context, req *visionaipb.UpdateProcessRequest, opts ...gax.CallOption) (*UpdateProcessOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "process.name", url.QueryEscape(req.GetProcess().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateProcess[0:len((*c.CallOptions).UpdateProcess):len((*c.CallOptions).UpdateProcess)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.UpdateProcess(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) DeleteProcess(ctx context.Context, req *visionaipb.DeleteProcessRequest, opts ...gax.CallOption) (*DeleteProcessOperation, 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).DeleteProcess[0:len((*c.CallOptions).DeleteProcess):len((*c.CallOptions).DeleteProcess)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.DeleteProcess(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) BatchRunProcess(ctx context.Context, req *visionaipb.BatchRunProcessRequest, opts ...gax.CallOption) (*BatchRunProcessOperation, 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).BatchRunProcess[0:len((*c.CallOptions).BatchRunProcess):len((*c.CallOptions).BatchRunProcess)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.liveVideoAnalyticsClient.BatchRunProcess(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &BatchRunProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *liveVideoAnalyticsGRPCClient) 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 *liveVideoAnalyticsGRPCClient) 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 *liveVideoAnalyticsGRPCClient) 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 *liveVideoAnalyticsGRPCClient) 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 +} + +// ListPublicOperators listPublicOperators returns all the operators in public registry. +func (c *liveVideoAnalyticsRESTClient) ListPublicOperators(ctx context.Context, req *visionaipb.ListPublicOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + it := &OperatorIterator{} + req = proto.Clone(req).(*visionaipb.ListPublicOperatorsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Operator, string, error) { + resp := &visionaipb.ListPublicOperatorsResponse{} + 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:listPublicOperators", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetOperators(), 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 +} + +// ResolveOperatorInfo resolveOperatorInfo returns the operator information based on the request. +func (c *liveVideoAnalyticsRESTClient) ResolveOperatorInfo(ctx context.Context, req *visionaipb.ResolveOperatorInfoRequest, opts ...gax.CallOption) (*visionaipb.ResolveOperatorInfoResponse, 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:resolveOperatorInfo", req.GetParent()) + + 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", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ResolveOperatorInfo[0:len((*c.CallOptions).ResolveOperatorInfo):len((*c.CallOptions).ResolveOperatorInfo)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.ResolveOperatorInfoResponse{} + 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 +} + +// ListOperators lists Operators in a given project and location. +func (c *liveVideoAnalyticsRESTClient) ListOperators(ctx context.Context, req *visionaipb.ListOperatorsRequest, opts ...gax.CallOption) *OperatorIterator { + it := &OperatorIterator{} + req = proto.Clone(req).(*visionaipb.ListOperatorsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Operator, string, error) { + resp := &visionaipb.ListOperatorsResponse{} + 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/operators", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetOperators(), 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 +} + +// GetOperator gets details of a single Operator. +func (c *liveVideoAnalyticsRESTClient) GetOperator(ctx context.Context, req *visionaipb.GetOperatorRequest, opts ...gax.CallOption) (*visionaipb.Operator, 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).GetOperator[0:len((*c.CallOptions).GetOperator):len((*c.CallOptions).GetOperator)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Operator{} + 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 +} + +// CreateOperator creates a new Operator in a given project and location. +func (c *liveVideoAnalyticsRESTClient) CreateOperator(ctx context.Context, req *visionaipb.CreateOperatorRequest, opts ...gax.CallOption) (*CreateOperatorOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetOperator() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/operators", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("operatorId", fmt.Sprintf("%v", req.GetOperatorId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateOperator updates the parameters of a single Operator. +func (c *liveVideoAnalyticsRESTClient) UpdateOperator(ctx context.Context, req *visionaipb.UpdateOperatorRequest, opts ...gax.CallOption) (*UpdateOperatorOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetOperator() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetOperator().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "operator.name", url.QueryEscape(req.GetOperator().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("PATCH", 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 &UpdateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteOperator deletes a single Operator. +func (c *liveVideoAnalyticsRESTClient) DeleteOperator(ctx context.Context, req *visionaipb.DeleteOperatorRequest, opts ...gax.CallOption) (*DeleteOperatorOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListAnalyses lists Analyses in a given project and location. +func (c *liveVideoAnalyticsRESTClient) ListAnalyses(ctx context.Context, req *visionaipb.ListAnalysesRequest, opts ...gax.CallOption) *AnalysisIterator { + it := &AnalysisIterator{} + req = proto.Clone(req).(*visionaipb.ListAnalysesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Analysis, string, error) { + resp := &visionaipb.ListAnalysesResponse{} + 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/analyses", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetAnalyses(), 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 +} + +// GetAnalysis gets details of a single Analysis. +func (c *liveVideoAnalyticsRESTClient) GetAnalysis(ctx context.Context, req *visionaipb.GetAnalysisRequest, opts ...gax.CallOption) (*visionaipb.Analysis, 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).GetAnalysis[0:len((*c.CallOptions).GetAnalysis):len((*c.CallOptions).GetAnalysis)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Analysis{} + 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 +} + +// CreateAnalysis creates a new Analysis in a given project and location. +func (c *liveVideoAnalyticsRESTClient) CreateAnalysis(ctx context.Context, req *visionaipb.CreateAnalysisRequest, opts ...gax.CallOption) (*CreateAnalysisOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAnalysis() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/analyses", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("analysisId", fmt.Sprintf("%v", req.GetAnalysisId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateAnalysis updates the parameters of a single Analysis. +func (c *liveVideoAnalyticsRESTClient) UpdateAnalysis(ctx context.Context, req *visionaipb.UpdateAnalysisRequest, opts ...gax.CallOption) (*UpdateAnalysisOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAnalysis() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetAnalysis().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "analysis.name", url.QueryEscape(req.GetAnalysis().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("PATCH", 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 &UpdateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteAnalysis deletes a single Analysis. +func (c *liveVideoAnalyticsRESTClient) DeleteAnalysis(ctx context.Context, req *visionaipb.DeleteAnalysisRequest, opts ...gax.CallOption) (*DeleteAnalysisOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListProcesses lists Processes in a given project and location. +func (c *liveVideoAnalyticsRESTClient) ListProcesses(ctx context.Context, req *visionaipb.ListProcessesRequest, opts ...gax.CallOption) *ProcessIterator { + it := &ProcessIterator{} + req = proto.Clone(req).(*visionaipb.ListProcessesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Process, string, error) { + resp := &visionaipb.ListProcessesResponse{} + 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/processes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetProcesses(), 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 +} + +// GetProcess gets details of a single Process. +func (c *liveVideoAnalyticsRESTClient) GetProcess(ctx context.Context, req *visionaipb.GetProcessRequest, opts ...gax.CallOption) (*visionaipb.Process, 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).GetProcess[0:len((*c.CallOptions).GetProcess):len((*c.CallOptions).GetProcess)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Process{} + 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 +} + +// CreateProcess creates a new Process in a given project and location. +func (c *liveVideoAnalyticsRESTClient) CreateProcess(ctx context.Context, req *visionaipb.CreateProcessRequest, opts ...gax.CallOption) (*CreateProcessOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetProcess() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/processes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("processId", fmt.Sprintf("%v", req.GetProcessId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateProcess updates the parameters of a single Process. +func (c *liveVideoAnalyticsRESTClient) UpdateProcess(ctx context.Context, req *visionaipb.UpdateProcessRequest, opts ...gax.CallOption) (*UpdateProcessOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetProcess() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetProcess().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "process.name", url.QueryEscape(req.GetProcess().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("PATCH", 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 &UpdateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteProcess deletes a single Process. +func (c *liveVideoAnalyticsRESTClient) DeleteProcess(ctx context.Context, req *visionaipb.DeleteProcessRequest, opts ...gax.CallOption) (*DeleteProcessOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// BatchRunProcess run all of the processes to “completion”. Max time for each process is +// the LRO time limit. +func (c *liveVideoAnalyticsRESTClient) BatchRunProcess(ctx context.Context, req *visionaipb.BatchRunProcessRequest, opts ...gax.CallOption) (*BatchRunProcessOperation, 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/processes:batchRun", req.GetParent()) + + 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", "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("/v1/%s", resp.GetName()) + return &BatchRunProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *liveVideoAnalyticsRESTClient) 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 *liveVideoAnalyticsRESTClient) 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 *liveVideoAnalyticsRESTClient) 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 *liveVideoAnalyticsRESTClient) 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 +} + +// BatchRunProcessOperation returns a new BatchRunProcessOperation from a given name. +// The name must be that of a previously created BatchRunProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) BatchRunProcessOperation(name string) *BatchRunProcessOperation { + return &BatchRunProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// BatchRunProcessOperation returns a new BatchRunProcessOperation from a given name. +// The name must be that of a previously created BatchRunProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) BatchRunProcessOperation(name string) *BatchRunProcessOperation { + override := fmt.Sprintf("/v1/%s", name) + return &BatchRunProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateAnalysisOperation returns a new CreateAnalysisOperation from a given name. +// The name must be that of a previously created CreateAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) CreateAnalysisOperation(name string) *CreateAnalysisOperation { + return &CreateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateAnalysisOperation returns a new CreateAnalysisOperation from a given name. +// The name must be that of a previously created CreateAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) CreateAnalysisOperation(name string) *CreateAnalysisOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateOperatorOperation returns a new CreateOperatorOperation from a given name. +// The name must be that of a previously created CreateOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) CreateOperatorOperation(name string) *CreateOperatorOperation { + return &CreateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateOperatorOperation returns a new CreateOperatorOperation from a given name. +// The name must be that of a previously created CreateOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) CreateOperatorOperation(name string) *CreateOperatorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateProcessOperation returns a new CreateProcessOperation from a given name. +// The name must be that of a previously created CreateProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) CreateProcessOperation(name string) *CreateProcessOperation { + return &CreateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateProcessOperation returns a new CreateProcessOperation from a given name. +// The name must be that of a previously created CreateProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) CreateProcessOperation(name string) *CreateProcessOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteAnalysisOperation returns a new DeleteAnalysisOperation from a given name. +// The name must be that of a previously created DeleteAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) DeleteAnalysisOperation(name string) *DeleteAnalysisOperation { + return &DeleteAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteAnalysisOperation returns a new DeleteAnalysisOperation from a given name. +// The name must be that of a previously created DeleteAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) DeleteAnalysisOperation(name string) *DeleteAnalysisOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteOperatorOperation returns a new DeleteOperatorOperation from a given name. +// The name must be that of a previously created DeleteOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) DeleteOperatorOperation(name string) *DeleteOperatorOperation { + return &DeleteOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteOperatorOperation returns a new DeleteOperatorOperation from a given name. +// The name must be that of a previously created DeleteOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) DeleteOperatorOperation(name string) *DeleteOperatorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteProcessOperation returns a new DeleteProcessOperation from a given name. +// The name must be that of a previously created DeleteProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) DeleteProcessOperation(name string) *DeleteProcessOperation { + return &DeleteProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteProcessOperation returns a new DeleteProcessOperation from a given name. +// The name must be that of a previously created DeleteProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) DeleteProcessOperation(name string) *DeleteProcessOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateAnalysisOperation returns a new UpdateAnalysisOperation from a given name. +// The name must be that of a previously created UpdateAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) UpdateAnalysisOperation(name string) *UpdateAnalysisOperation { + return &UpdateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateAnalysisOperation returns a new UpdateAnalysisOperation from a given name. +// The name must be that of a previously created UpdateAnalysisOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) UpdateAnalysisOperation(name string) *UpdateAnalysisOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateAnalysisOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateOperatorOperation returns a new UpdateOperatorOperation from a given name. +// The name must be that of a previously created UpdateOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) UpdateOperatorOperation(name string) *UpdateOperatorOperation { + return &UpdateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateOperatorOperation returns a new UpdateOperatorOperation from a given name. +// The name must be that of a previously created UpdateOperatorOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) UpdateOperatorOperation(name string) *UpdateOperatorOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateOperatorOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateProcessOperation returns a new UpdateProcessOperation from a given name. +// The name must be that of a previously created UpdateProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsGRPCClient) UpdateProcessOperation(name string) *UpdateProcessOperation { + return &UpdateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateProcessOperation returns a new UpdateProcessOperation from a given name. +// The name must be that of a previously created UpdateProcessOperation, possibly from a different process. +func (c *liveVideoAnalyticsRESTClient) UpdateProcessOperation(name string) *UpdateProcessOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateProcessOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/visionai/apiv1/live_video_analytics_client_example_test.go b/visionai/apiv1/live_video_analytics_client_example_test.go new file mode 100644 index 00000000000..b1699008beb --- /dev/null +++ b/visionai/apiv1/live_video_analytics_client_example_test.go @@ -0,0 +1,680 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewLiveVideoAnalyticsClient() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewLiveVideoAnalyticsRESTClient() { + 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 := visionai.NewLiveVideoAnalyticsRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleLiveVideoAnalyticsClient_BatchRunProcess() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.BatchRunProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#BatchRunProcessRequest. + } + op, err := c.BatchRunProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_CreateAnalysis() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAnalysisRequest. + } + op, err := c.CreateAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_CreateOperator() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateOperatorRequest. + } + op, err := c.CreateOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_CreateProcess() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateProcessRequest. + } + op, err := c.CreateProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_DeleteAnalysis() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAnalysisRequest. + } + op, err := c.DeleteAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLiveVideoAnalyticsClient_DeleteOperator() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteOperatorRequest. + } + op, err := c.DeleteOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLiveVideoAnalyticsClient_DeleteProcess() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteProcessRequest. + } + op, err := c.DeleteProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleLiveVideoAnalyticsClient_GetAnalysis() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAnalysisRequest. + } + resp, err := c.GetAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_GetOperator() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetOperatorRequest. + } + resp, err := c.GetOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_GetProcess() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetProcessRequest. + } + resp, err := c.GetProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_ListAnalyses() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAnalysesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAnalysesRequest. + } + it := c.ListAnalyses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLiveVideoAnalyticsClient_ListOperators() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListOperatorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListOperatorsRequest. + } + it := c.ListOperators(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLiveVideoAnalyticsClient_ListProcesses() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListProcessesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListProcessesRequest. + } + it := c.ListProcesses(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLiveVideoAnalyticsClient_ListPublicOperators() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListPublicOperatorsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListPublicOperatorsRequest. + } + it := c.ListPublicOperators(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleLiveVideoAnalyticsClient_ResolveOperatorInfo() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ResolveOperatorInfoRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ResolveOperatorInfoRequest. + } + resp, err := c.ResolveOperatorInfo(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_UpdateAnalysis() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAnalysisRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAnalysisRequest. + } + op, err := c.UpdateAnalysis(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_UpdateOperator() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateOperatorRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateOperatorRequest. + } + op, err := c.UpdateOperator(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_UpdateProcess() { + 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 := visionai.NewLiveVideoAnalyticsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateProcessRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateProcessRequest. + } + op, err := c.UpdateProcess(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleLiveVideoAnalyticsClient_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 := visionai.NewLiveVideoAnalyticsClient(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 ExampleLiveVideoAnalyticsClient_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 := visionai.NewLiveVideoAnalyticsClient(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 ExampleLiveVideoAnalyticsClient_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 := visionai.NewLiveVideoAnalyticsClient(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 ExampleLiveVideoAnalyticsClient_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 := visionai.NewLiveVideoAnalyticsClient(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/visionai/apiv1/streaming_client.go b/visionai/apiv1/streaming_client.go new file mode 100755 index 00000000000..1870e0f3ad2 --- /dev/null +++ b/visionai/apiv1/streaming_client.go @@ -0,0 +1,1005 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newStreamingClientHook clientHook + +// StreamingCallOptions contains the retry settings for each method of StreamingClient. +type StreamingCallOptions struct { + SendPackets []gax.CallOption + ReceivePackets []gax.CallOption + ReceiveEvents []gax.CallOption + AcquireLease []gax.CallOption + RenewLease []gax.CallOption + ReleaseLease []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultStreamingGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultStreamingCallOptions() *StreamingCallOptions { + return &StreamingCallOptions{ + SendPackets: []gax.CallOption{}, + ReceivePackets: []gax.CallOption{}, + ReceiveEvents: []gax.CallOption{}, + AcquireLease: []gax.CallOption{}, + RenewLease: []gax.CallOption{}, + ReleaseLease: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultStreamingRESTCallOptions() *StreamingCallOptions { + return &StreamingCallOptions{ + SendPackets: []gax.CallOption{}, + ReceivePackets: []gax.CallOption{}, + ReceiveEvents: []gax.CallOption{}, + AcquireLease: []gax.CallOption{}, + RenewLease: []gax.CallOption{}, + ReleaseLease: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalStreamingClient is an interface that defines the methods available from Vision AI API. +type internalStreamingClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + SendPackets(context.Context, ...gax.CallOption) (visionaipb.StreamingService_SendPacketsClient, error) + ReceivePackets(context.Context, ...gax.CallOption) (visionaipb.StreamingService_ReceivePacketsClient, error) + ReceiveEvents(context.Context, ...gax.CallOption) (visionaipb.StreamingService_ReceiveEventsClient, error) + AcquireLease(context.Context, *visionaipb.AcquireLeaseRequest, ...gax.CallOption) (*visionaipb.Lease, error) + RenewLease(context.Context, *visionaipb.RenewLeaseRequest, ...gax.CallOption) (*visionaipb.Lease, error) + ReleaseLease(context.Context, *visionaipb.ReleaseLeaseRequest, ...gax.CallOption) (*visionaipb.ReleaseLeaseResponse, 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 +} + +// StreamingClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Streaming service for receiving and sending packets. +type StreamingClient struct { + // The internal transport-dependent client. + internalClient internalStreamingClient + + // The call options for this service. + CallOptions *StreamingCallOptions +} + +// 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 *StreamingClient) 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 *StreamingClient) 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 *StreamingClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// SendPackets send packets to the series. +// +// This method is not supported for the REST transport. +func (c *StreamingClient) SendPackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_SendPacketsClient, error) { + return c.internalClient.SendPackets(ctx, opts...) +} + +// ReceivePackets receive packets from the series. +// +// This method is not supported for the REST transport. +func (c *StreamingClient) ReceivePackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceivePacketsClient, error) { + return c.internalClient.ReceivePackets(ctx, opts...) +} + +// ReceiveEvents receive events given the stream name. +// +// This method is not supported for the REST transport. +func (c *StreamingClient) ReceiveEvents(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceiveEventsClient, error) { + return c.internalClient.ReceiveEvents(ctx, opts...) +} + +// AcquireLease acquireLease acquires a lease. +func (c *StreamingClient) AcquireLease(ctx context.Context, req *visionaipb.AcquireLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, error) { + return c.internalClient.AcquireLease(ctx, req, opts...) +} + +// RenewLease renewLease renews a lease. +func (c *StreamingClient) RenewLease(ctx context.Context, req *visionaipb.RenewLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, error) { + return c.internalClient.RenewLease(ctx, req, opts...) +} + +// ReleaseLease rleaseLease releases a lease. +func (c *StreamingClient) ReleaseLease(ctx context.Context, req *visionaipb.ReleaseLeaseRequest, opts ...gax.CallOption) (*visionaipb.ReleaseLeaseResponse, error) { + return c.internalClient.ReleaseLease(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *StreamingClient) 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 *StreamingClient) 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 *StreamingClient) 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 *StreamingClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// streamingGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type streamingGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing StreamingClient + CallOptions **StreamingCallOptions + + // The gRPC API client. + streamingClient visionaipb.StreamingServiceClient + + operationsClient longrunningpb.OperationsClient + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewStreamingClient creates a new streaming service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Streaming service for receiving and sending packets. +func NewStreamingClient(ctx context.Context, opts ...option.ClientOption) (*StreamingClient, error) { + clientOpts := defaultStreamingGRPCClientOptions() + if newStreamingClientHook != nil { + hookOpts, err := newStreamingClientHook(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 := StreamingClient{CallOptions: defaultStreamingCallOptions()} + + c := &streamingGRPCClient{ + connPool: connPool, + streamingClient: visionaipb.NewStreamingServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *streamingGRPCClient) 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 *streamingGRPCClient) 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 *streamingGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type streamingRESTClient 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 StreamingClient + CallOptions **StreamingCallOptions +} + +// NewStreamingRESTClient creates a new streaming service rest client. +// +// Streaming service for receiving and sending packets. +func NewStreamingRESTClient(ctx context.Context, opts ...option.ClientOption) (*StreamingClient, error) { + clientOpts := append(defaultStreamingRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultStreamingRESTCallOptions() + c := &streamingRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + return &StreamingClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultStreamingRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *streamingRESTClient) 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 *streamingRESTClient) 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 *streamingRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *streamingGRPCClient) SendPackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_SendPacketsClient, error) { + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...) + var resp visionaipb.StreamingService_SendPacketsClient + opts = append((*c.CallOptions).SendPackets[0:len((*c.CallOptions).SendPackets):len((*c.CallOptions).SendPackets)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.SendPackets(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) ReceivePackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceivePacketsClient, error) { + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...) + var resp visionaipb.StreamingService_ReceivePacketsClient + opts = append((*c.CallOptions).ReceivePackets[0:len((*c.CallOptions).ReceivePackets):len((*c.CallOptions).ReceivePackets)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.ReceivePackets(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) ReceiveEvents(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceiveEventsClient, error) { + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...) + var resp visionaipb.StreamingService_ReceiveEventsClient + opts = append((*c.CallOptions).ReceiveEvents[0:len((*c.CallOptions).ReceiveEvents):len((*c.CallOptions).ReceiveEvents)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.ReceiveEvents(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) AcquireLease(ctx context.Context, req *visionaipb.AcquireLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).AcquireLease[0:len((*c.CallOptions).AcquireLease):len((*c.CallOptions).AcquireLease)], opts...) + var resp *visionaipb.Lease + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.AcquireLease(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) RenewLease(ctx context.Context, req *visionaipb.RenewLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).RenewLease[0:len((*c.CallOptions).RenewLease):len((*c.CallOptions).RenewLease)], opts...) + var resp *visionaipb.Lease + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.RenewLease(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) ReleaseLease(ctx context.Context, req *visionaipb.ReleaseLeaseRequest, opts ...gax.CallOption) (*visionaipb.ReleaseLeaseResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ReleaseLease[0:len((*c.CallOptions).ReleaseLease):len((*c.CallOptions).ReleaseLease)], opts...) + var resp *visionaipb.ReleaseLeaseResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamingClient.ReleaseLease(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamingGRPCClient) 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 *streamingGRPCClient) 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 *streamingGRPCClient) 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 *streamingGRPCClient) 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 +} + +// SendPackets send packets to the series. +// +// This method is not supported for the REST transport. +func (c *streamingRESTClient) SendPackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_SendPacketsClient, error) { + return nil, fmt.Errorf("SendPackets not yet supported for REST clients") +} + +// ReceivePackets receive packets from the series. +// +// This method is not supported for the REST transport. +func (c *streamingRESTClient) ReceivePackets(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceivePacketsClient, error) { + return nil, fmt.Errorf("ReceivePackets not yet supported for REST clients") +} + +// ReceiveEvents receive events given the stream name. +// +// This method is not supported for the REST transport. +func (c *streamingRESTClient) ReceiveEvents(ctx context.Context, opts ...gax.CallOption) (visionaipb.StreamingService_ReceiveEventsClient, error) { + return nil, fmt.Errorf("ReceiveEvents not yet supported for REST clients") +} + +// AcquireLease acquireLease acquires a lease. +func (c *streamingRESTClient) AcquireLease(ctx context.Context, req *visionaipb.AcquireLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, 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:acquireLease", req.GetSeries()) + + 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", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).AcquireLease[0:len((*c.CallOptions).AcquireLease):len((*c.CallOptions).AcquireLease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Lease{} + 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 +} + +// RenewLease renewLease renews a lease. +func (c *streamingRESTClient) RenewLease(ctx context.Context, req *visionaipb.RenewLeaseRequest, opts ...gax.CallOption) (*visionaipb.Lease, 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:renewLease", req.GetSeries()) + + 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", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).RenewLease[0:len((*c.CallOptions).RenewLease):len((*c.CallOptions).RenewLease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Lease{} + 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 +} + +// ReleaseLease rleaseLease releases a lease. +func (c *streamingRESTClient) ReleaseLease(ctx context.Context, req *visionaipb.ReleaseLeaseRequest, opts ...gax.CallOption) (*visionaipb.ReleaseLeaseResponse, 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:releaseLease", req.GetSeries()) + + 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", "series", url.QueryEscape(req.GetSeries()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).ReleaseLease[0:len((*c.CallOptions).ReleaseLease):len((*c.CallOptions).ReleaseLease)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.ReleaseLeaseResponse{} + 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 *streamingRESTClient) 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 *streamingRESTClient) 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 *streamingRESTClient) 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 *streamingRESTClient) 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 +} diff --git a/visionai/apiv1/streaming_client_example_test.go b/visionai/apiv1/streaming_client_example_test.go new file mode 100644 index 00000000000..f3aef2528e0 --- /dev/null +++ b/visionai/apiv1/streaming_client_example_test.go @@ -0,0 +1,358 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + "io" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewStreamingClient() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewStreamingRESTClient() { + 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 := visionai.NewStreamingRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleStreamingClient_AcquireLease() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AcquireLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AcquireLeaseRequest. + } + resp, err := c.AcquireLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamingClient_ReceiveEvents() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.ReceiveEvents(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.ReceiveEventsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamingClient_ReceivePackets() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.ReceivePackets(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.ReceivePacketsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamingClient_ReleaseLease() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ReleaseLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ReleaseLeaseRequest. + } + resp, err := c.ReleaseLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamingClient_RenewLease() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RenewLeaseRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RenewLeaseRequest. + } + resp, err := c.RenewLease(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamingClient_SendPackets() { + 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 := visionai.NewStreamingClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.SendPackets(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.SendPacketsRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamingClient_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 := visionai.NewStreamingClient(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 ExampleStreamingClient_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 := visionai.NewStreamingClient(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 ExampleStreamingClient_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 := visionai.NewStreamingClient(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 ExampleStreamingClient_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 := visionai.NewStreamingClient(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/visionai/apiv1/streams_client.go b/visionai/apiv1/streams_client.go new file mode 100755 index 00000000000..576502c3e4d --- /dev/null +++ b/visionai/apiv1/streams_client.go @@ -0,0 +1,3508 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newStreamsClientHook clientHook + +// StreamsCallOptions contains the retry settings for each method of StreamsClient. +type StreamsCallOptions struct { + ListClusters []gax.CallOption + GetCluster []gax.CallOption + CreateCluster []gax.CallOption + UpdateCluster []gax.CallOption + DeleteCluster []gax.CallOption + ListStreams []gax.CallOption + GetStream []gax.CallOption + CreateStream []gax.CallOption + UpdateStream []gax.CallOption + DeleteStream []gax.CallOption + GetStreamThumbnail []gax.CallOption + GenerateStreamHlsToken []gax.CallOption + ListEvents []gax.CallOption + GetEvent []gax.CallOption + CreateEvent []gax.CallOption + UpdateEvent []gax.CallOption + DeleteEvent []gax.CallOption + ListSeries []gax.CallOption + GetSeries []gax.CallOption + CreateSeries []gax.CallOption + UpdateSeries []gax.CallOption + DeleteSeries []gax.CallOption + MaterializeChannel []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultStreamsGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultStreamsCallOptions() *StreamsCallOptions { + return &StreamsCallOptions{ + ListClusters: []gax.CallOption{}, + GetCluster: []gax.CallOption{}, + CreateCluster: []gax.CallOption{}, + UpdateCluster: []gax.CallOption{}, + DeleteCluster: []gax.CallOption{}, + ListStreams: []gax.CallOption{}, + GetStream: []gax.CallOption{}, + CreateStream: []gax.CallOption{}, + UpdateStream: []gax.CallOption{}, + DeleteStream: []gax.CallOption{}, + GetStreamThumbnail: []gax.CallOption{}, + GenerateStreamHlsToken: []gax.CallOption{}, + ListEvents: []gax.CallOption{}, + GetEvent: []gax.CallOption{}, + CreateEvent: []gax.CallOption{}, + UpdateEvent: []gax.CallOption{}, + DeleteEvent: []gax.CallOption{}, + ListSeries: []gax.CallOption{}, + GetSeries: []gax.CallOption{}, + CreateSeries: []gax.CallOption{}, + UpdateSeries: []gax.CallOption{}, + DeleteSeries: []gax.CallOption{}, + MaterializeChannel: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultStreamsRESTCallOptions() *StreamsCallOptions { + return &StreamsCallOptions{ + ListClusters: []gax.CallOption{}, + GetCluster: []gax.CallOption{}, + CreateCluster: []gax.CallOption{}, + UpdateCluster: []gax.CallOption{}, + DeleteCluster: []gax.CallOption{}, + ListStreams: []gax.CallOption{}, + GetStream: []gax.CallOption{}, + CreateStream: []gax.CallOption{}, + UpdateStream: []gax.CallOption{}, + DeleteStream: []gax.CallOption{}, + GetStreamThumbnail: []gax.CallOption{}, + GenerateStreamHlsToken: []gax.CallOption{}, + ListEvents: []gax.CallOption{}, + GetEvent: []gax.CallOption{}, + CreateEvent: []gax.CallOption{}, + UpdateEvent: []gax.CallOption{}, + DeleteEvent: []gax.CallOption{}, + ListSeries: []gax.CallOption{}, + GetSeries: []gax.CallOption{}, + CreateSeries: []gax.CallOption{}, + UpdateSeries: []gax.CallOption{}, + DeleteSeries: []gax.CallOption{}, + MaterializeChannel: []gax.CallOption{}, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalStreamsClient is an interface that defines the methods available from Vision AI API. +type internalStreamsClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + ListClusters(context.Context, *visionaipb.ListClustersRequest, ...gax.CallOption) *ClusterIterator + GetCluster(context.Context, *visionaipb.GetClusterRequest, ...gax.CallOption) (*visionaipb.Cluster, error) + CreateCluster(context.Context, *visionaipb.CreateClusterRequest, ...gax.CallOption) (*CreateClusterOperation, error) + CreateClusterOperation(name string) *CreateClusterOperation + UpdateCluster(context.Context, *visionaipb.UpdateClusterRequest, ...gax.CallOption) (*UpdateClusterOperation, error) + UpdateClusterOperation(name string) *UpdateClusterOperation + DeleteCluster(context.Context, *visionaipb.DeleteClusterRequest, ...gax.CallOption) (*DeleteClusterOperation, error) + DeleteClusterOperation(name string) *DeleteClusterOperation + ListStreams(context.Context, *visionaipb.ListStreamsRequest, ...gax.CallOption) *StreamIterator + GetStream(context.Context, *visionaipb.GetStreamRequest, ...gax.CallOption) (*visionaipb.Stream, error) + CreateStream(context.Context, *visionaipb.CreateStreamRequest, ...gax.CallOption) (*CreateStreamOperation, error) + CreateStreamOperation(name string) *CreateStreamOperation + UpdateStream(context.Context, *visionaipb.UpdateStreamRequest, ...gax.CallOption) (*UpdateStreamOperation, error) + UpdateStreamOperation(name string) *UpdateStreamOperation + DeleteStream(context.Context, *visionaipb.DeleteStreamRequest, ...gax.CallOption) (*DeleteStreamOperation, error) + DeleteStreamOperation(name string) *DeleteStreamOperation + GetStreamThumbnail(context.Context, *visionaipb.GetStreamThumbnailRequest, ...gax.CallOption) (*GetStreamThumbnailOperation, error) + GetStreamThumbnailOperation(name string) *GetStreamThumbnailOperation + GenerateStreamHlsToken(context.Context, *visionaipb.GenerateStreamHlsTokenRequest, ...gax.CallOption) (*visionaipb.GenerateStreamHlsTokenResponse, error) + ListEvents(context.Context, *visionaipb.ListEventsRequest, ...gax.CallOption) *EventIterator + GetEvent(context.Context, *visionaipb.GetEventRequest, ...gax.CallOption) (*visionaipb.Event, error) + CreateEvent(context.Context, *visionaipb.CreateEventRequest, ...gax.CallOption) (*CreateEventOperation, error) + CreateEventOperation(name string) *CreateEventOperation + UpdateEvent(context.Context, *visionaipb.UpdateEventRequest, ...gax.CallOption) (*UpdateEventOperation, error) + UpdateEventOperation(name string) *UpdateEventOperation + DeleteEvent(context.Context, *visionaipb.DeleteEventRequest, ...gax.CallOption) (*DeleteEventOperation, error) + DeleteEventOperation(name string) *DeleteEventOperation + ListSeries(context.Context, *visionaipb.ListSeriesRequest, ...gax.CallOption) *SeriesIterator + GetSeries(context.Context, *visionaipb.GetSeriesRequest, ...gax.CallOption) (*visionaipb.Series, error) + CreateSeries(context.Context, *visionaipb.CreateSeriesRequest, ...gax.CallOption) (*CreateSeriesOperation, error) + CreateSeriesOperation(name string) *CreateSeriesOperation + UpdateSeries(context.Context, *visionaipb.UpdateSeriesRequest, ...gax.CallOption) (*UpdateSeriesOperation, error) + UpdateSeriesOperation(name string) *UpdateSeriesOperation + DeleteSeries(context.Context, *visionaipb.DeleteSeriesRequest, ...gax.CallOption) (*DeleteSeriesOperation, error) + DeleteSeriesOperation(name string) *DeleteSeriesOperation + MaterializeChannel(context.Context, *visionaipb.MaterializeChannelRequest, ...gax.CallOption) (*MaterializeChannelOperation, error) + MaterializeChannelOperation(name string) *MaterializeChannelOperation + 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 +} + +// StreamsClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service describing handlers for resources. +// Vision API and Vision AI API are two independent APIs developed by the same +// team. Vision API is for people to annotate their image while Vision AI is an +// e2e solution for customer to build their own computer vision application. +type StreamsClient struct { + // The internal transport-dependent client. + internalClient internalStreamsClient + + // The call options for this service. + CallOptions *StreamsCallOptions + + // 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 *StreamsClient) 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 *StreamsClient) 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 *StreamsClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// ListClusters lists Clusters in a given project and location. +func (c *StreamsClient) ListClusters(ctx context.Context, req *visionaipb.ListClustersRequest, opts ...gax.CallOption) *ClusterIterator { + return c.internalClient.ListClusters(ctx, req, opts...) +} + +// GetCluster gets details of a single Cluster. +func (c *StreamsClient) GetCluster(ctx context.Context, req *visionaipb.GetClusterRequest, opts ...gax.CallOption) (*visionaipb.Cluster, error) { + return c.internalClient.GetCluster(ctx, req, opts...) +} + +// CreateCluster creates a new Cluster in a given project and location. +func (c *StreamsClient) CreateCluster(ctx context.Context, req *visionaipb.CreateClusterRequest, opts ...gax.CallOption) (*CreateClusterOperation, error) { + return c.internalClient.CreateCluster(ctx, req, opts...) +} + +// CreateClusterOperation returns a new CreateClusterOperation from a given name. +// The name must be that of a previously created CreateClusterOperation, possibly from a different process. +func (c *StreamsClient) CreateClusterOperation(name string) *CreateClusterOperation { + return c.internalClient.CreateClusterOperation(name) +} + +// UpdateCluster updates the parameters of a single Cluster. +func (c *StreamsClient) UpdateCluster(ctx context.Context, req *visionaipb.UpdateClusterRequest, opts ...gax.CallOption) (*UpdateClusterOperation, error) { + return c.internalClient.UpdateCluster(ctx, req, opts...) +} + +// UpdateClusterOperation returns a new UpdateClusterOperation from a given name. +// The name must be that of a previously created UpdateClusterOperation, possibly from a different process. +func (c *StreamsClient) UpdateClusterOperation(name string) *UpdateClusterOperation { + return c.internalClient.UpdateClusterOperation(name) +} + +// DeleteCluster deletes a single Cluster. +func (c *StreamsClient) DeleteCluster(ctx context.Context, req *visionaipb.DeleteClusterRequest, opts ...gax.CallOption) (*DeleteClusterOperation, error) { + return c.internalClient.DeleteCluster(ctx, req, opts...) +} + +// DeleteClusterOperation returns a new DeleteClusterOperation from a given name. +// The name must be that of a previously created DeleteClusterOperation, possibly from a different process. +func (c *StreamsClient) DeleteClusterOperation(name string) *DeleteClusterOperation { + return c.internalClient.DeleteClusterOperation(name) +} + +// ListStreams lists Streams in a given project and location. +func (c *StreamsClient) ListStreams(ctx context.Context, req *visionaipb.ListStreamsRequest, opts ...gax.CallOption) *StreamIterator { + return c.internalClient.ListStreams(ctx, req, opts...) +} + +// GetStream gets details of a single Stream. +func (c *StreamsClient) GetStream(ctx context.Context, req *visionaipb.GetStreamRequest, opts ...gax.CallOption) (*visionaipb.Stream, error) { + return c.internalClient.GetStream(ctx, req, opts...) +} + +// CreateStream creates a new Stream in a given project and location. +func (c *StreamsClient) CreateStream(ctx context.Context, req *visionaipb.CreateStreamRequest, opts ...gax.CallOption) (*CreateStreamOperation, error) { + return c.internalClient.CreateStream(ctx, req, opts...) +} + +// CreateStreamOperation returns a new CreateStreamOperation from a given name. +// The name must be that of a previously created CreateStreamOperation, possibly from a different process. +func (c *StreamsClient) CreateStreamOperation(name string) *CreateStreamOperation { + return c.internalClient.CreateStreamOperation(name) +} + +// UpdateStream updates the parameters of a single Stream. +func (c *StreamsClient) UpdateStream(ctx context.Context, req *visionaipb.UpdateStreamRequest, opts ...gax.CallOption) (*UpdateStreamOperation, error) { + return c.internalClient.UpdateStream(ctx, req, opts...) +} + +// UpdateStreamOperation returns a new UpdateStreamOperation from a given name. +// The name must be that of a previously created UpdateStreamOperation, possibly from a different process. +func (c *StreamsClient) UpdateStreamOperation(name string) *UpdateStreamOperation { + return c.internalClient.UpdateStreamOperation(name) +} + +// DeleteStream deletes a single Stream. +func (c *StreamsClient) DeleteStream(ctx context.Context, req *visionaipb.DeleteStreamRequest, opts ...gax.CallOption) (*DeleteStreamOperation, error) { + return c.internalClient.DeleteStream(ctx, req, opts...) +} + +// DeleteStreamOperation returns a new DeleteStreamOperation from a given name. +// The name must be that of a previously created DeleteStreamOperation, possibly from a different process. +func (c *StreamsClient) DeleteStreamOperation(name string) *DeleteStreamOperation { + return c.internalClient.DeleteStreamOperation(name) +} + +// GetStreamThumbnail gets the thumbnail (image snapshot) of a single Stream. +func (c *StreamsClient) GetStreamThumbnail(ctx context.Context, req *visionaipb.GetStreamThumbnailRequest, opts ...gax.CallOption) (*GetStreamThumbnailOperation, error) { + return c.internalClient.GetStreamThumbnail(ctx, req, opts...) +} + +// GetStreamThumbnailOperation returns a new GetStreamThumbnailOperation from a given name. +// The name must be that of a previously created GetStreamThumbnailOperation, possibly from a different process. +func (c *StreamsClient) GetStreamThumbnailOperation(name string) *GetStreamThumbnailOperation { + return c.internalClient.GetStreamThumbnailOperation(name) +} + +// GenerateStreamHlsToken generate the JWT auth token required to get the stream HLS contents. +func (c *StreamsClient) GenerateStreamHlsToken(ctx context.Context, req *visionaipb.GenerateStreamHlsTokenRequest, opts ...gax.CallOption) (*visionaipb.GenerateStreamHlsTokenResponse, error) { + return c.internalClient.GenerateStreamHlsToken(ctx, req, opts...) +} + +// ListEvents lists Events in a given project and location. +func (c *StreamsClient) ListEvents(ctx context.Context, req *visionaipb.ListEventsRequest, opts ...gax.CallOption) *EventIterator { + return c.internalClient.ListEvents(ctx, req, opts...) +} + +// GetEvent gets details of a single Event. +func (c *StreamsClient) GetEvent(ctx context.Context, req *visionaipb.GetEventRequest, opts ...gax.CallOption) (*visionaipb.Event, error) { + return c.internalClient.GetEvent(ctx, req, opts...) +} + +// CreateEvent creates a new Event in a given project and location. +func (c *StreamsClient) CreateEvent(ctx context.Context, req *visionaipb.CreateEventRequest, opts ...gax.CallOption) (*CreateEventOperation, error) { + return c.internalClient.CreateEvent(ctx, req, opts...) +} + +// CreateEventOperation returns a new CreateEventOperation from a given name. +// The name must be that of a previously created CreateEventOperation, possibly from a different process. +func (c *StreamsClient) CreateEventOperation(name string) *CreateEventOperation { + return c.internalClient.CreateEventOperation(name) +} + +// UpdateEvent updates the parameters of a single Event. +func (c *StreamsClient) UpdateEvent(ctx context.Context, req *visionaipb.UpdateEventRequest, opts ...gax.CallOption) (*UpdateEventOperation, error) { + return c.internalClient.UpdateEvent(ctx, req, opts...) +} + +// UpdateEventOperation returns a new UpdateEventOperation from a given name. +// The name must be that of a previously created UpdateEventOperation, possibly from a different process. +func (c *StreamsClient) UpdateEventOperation(name string) *UpdateEventOperation { + return c.internalClient.UpdateEventOperation(name) +} + +// DeleteEvent deletes a single Event. +func (c *StreamsClient) DeleteEvent(ctx context.Context, req *visionaipb.DeleteEventRequest, opts ...gax.CallOption) (*DeleteEventOperation, error) { + return c.internalClient.DeleteEvent(ctx, req, opts...) +} + +// DeleteEventOperation returns a new DeleteEventOperation from a given name. +// The name must be that of a previously created DeleteEventOperation, possibly from a different process. +func (c *StreamsClient) DeleteEventOperation(name string) *DeleteEventOperation { + return c.internalClient.DeleteEventOperation(name) +} + +// ListSeries lists Series in a given project and location. +func (c *StreamsClient) ListSeries(ctx context.Context, req *visionaipb.ListSeriesRequest, opts ...gax.CallOption) *SeriesIterator { + return c.internalClient.ListSeries(ctx, req, opts...) +} + +// GetSeries gets details of a single Series. +func (c *StreamsClient) GetSeries(ctx context.Context, req *visionaipb.GetSeriesRequest, opts ...gax.CallOption) (*visionaipb.Series, error) { + return c.internalClient.GetSeries(ctx, req, opts...) +} + +// CreateSeries creates a new Series in a given project and location. +func (c *StreamsClient) CreateSeries(ctx context.Context, req *visionaipb.CreateSeriesRequest, opts ...gax.CallOption) (*CreateSeriesOperation, error) { + return c.internalClient.CreateSeries(ctx, req, opts...) +} + +// CreateSeriesOperation returns a new CreateSeriesOperation from a given name. +// The name must be that of a previously created CreateSeriesOperation, possibly from a different process. +func (c *StreamsClient) CreateSeriesOperation(name string) *CreateSeriesOperation { + return c.internalClient.CreateSeriesOperation(name) +} + +// UpdateSeries updates the parameters of a single Event. +func (c *StreamsClient) UpdateSeries(ctx context.Context, req *visionaipb.UpdateSeriesRequest, opts ...gax.CallOption) (*UpdateSeriesOperation, error) { + return c.internalClient.UpdateSeries(ctx, req, opts...) +} + +// UpdateSeriesOperation returns a new UpdateSeriesOperation from a given name. +// The name must be that of a previously created UpdateSeriesOperation, possibly from a different process. +func (c *StreamsClient) UpdateSeriesOperation(name string) *UpdateSeriesOperation { + return c.internalClient.UpdateSeriesOperation(name) +} + +// DeleteSeries deletes a single Series. +func (c *StreamsClient) DeleteSeries(ctx context.Context, req *visionaipb.DeleteSeriesRequest, opts ...gax.CallOption) (*DeleteSeriesOperation, error) { + return c.internalClient.DeleteSeries(ctx, req, opts...) +} + +// DeleteSeriesOperation returns a new DeleteSeriesOperation from a given name. +// The name must be that of a previously created DeleteSeriesOperation, possibly from a different process. +func (c *StreamsClient) DeleteSeriesOperation(name string) *DeleteSeriesOperation { + return c.internalClient.DeleteSeriesOperation(name) +} + +// MaterializeChannel materialize a channel. +func (c *StreamsClient) MaterializeChannel(ctx context.Context, req *visionaipb.MaterializeChannelRequest, opts ...gax.CallOption) (*MaterializeChannelOperation, error) { + return c.internalClient.MaterializeChannel(ctx, req, opts...) +} + +// MaterializeChannelOperation returns a new MaterializeChannelOperation from a given name. +// The name must be that of a previously created MaterializeChannelOperation, possibly from a different process. +func (c *StreamsClient) MaterializeChannelOperation(name string) *MaterializeChannelOperation { + return c.internalClient.MaterializeChannelOperation(name) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *StreamsClient) 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 *StreamsClient) 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 *StreamsClient) 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 *StreamsClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// streamsGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type streamsGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing StreamsClient + CallOptions **StreamsCallOptions + + // The gRPC API client. + streamsClient visionaipb.StreamsServiceClient + + // 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 + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewStreamsClient creates a new streams service client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service describing handlers for resources. +// Vision API and Vision AI API are two independent APIs developed by the same +// team. Vision API is for people to annotate their image while Vision AI is an +// e2e solution for customer to build their own computer vision application. +func NewStreamsClient(ctx context.Context, opts ...option.ClientOption) (*StreamsClient, error) { + clientOpts := defaultStreamsGRPCClientOptions() + if newStreamsClientHook != nil { + hookOpts, err := newStreamsClientHook(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 := StreamsClient{CallOptions: defaultStreamsCallOptions()} + + c := &streamsGRPCClient{ + connPool: connPool, + streamsClient: visionaipb.NewStreamsServiceClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *streamsGRPCClient) 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 *streamsGRPCClient) 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 *streamsGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type streamsRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // 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 + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing StreamsClient + CallOptions **StreamsCallOptions +} + +// NewStreamsRESTClient creates a new streams service rest client. +// +// Service describing handlers for resources. +// Vision API and Vision AI API are two independent APIs developed by the same +// team. Vision API is for people to annotate their image while Vision AI is an +// e2e solution for customer to build their own computer vision application. +func NewStreamsRESTClient(ctx context.Context, opts ...option.ClientOption) (*StreamsClient, error) { + clientOpts := append(defaultStreamsRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultStreamsRESTCallOptions() + c := &streamsRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &StreamsClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultStreamsRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *streamsRESTClient) 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 *streamsRESTClient) 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 *streamsRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *streamsGRPCClient) ListClusters(ctx context.Context, req *visionaipb.ListClustersRequest, opts ...gax.CallOption) *ClusterIterator { + 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).ListClusters[0:len((*c.CallOptions).ListClusters):len((*c.CallOptions).ListClusters)], opts...) + it := &ClusterIterator{} + req = proto.Clone(req).(*visionaipb.ListClustersRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Cluster, string, error) { + resp := &visionaipb.ListClustersResponse{} + 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.streamsClient.ListClusters(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetClusters(), 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 *streamsGRPCClient) GetCluster(ctx context.Context, req *visionaipb.GetClusterRequest, opts ...gax.CallOption) (*visionaipb.Cluster, 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).GetCluster[0:len((*c.CallOptions).GetCluster):len((*c.CallOptions).GetCluster)], opts...) + var resp *visionaipb.Cluster + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GetCluster(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamsGRPCClient) CreateCluster(ctx context.Context, req *visionaipb.CreateClusterRequest, opts ...gax.CallOption) (*CreateClusterOperation, 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).CreateCluster[0:len((*c.CallOptions).CreateCluster):len((*c.CallOptions).CreateCluster)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.CreateCluster(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) UpdateCluster(ctx context.Context, req *visionaipb.UpdateClusterRequest, opts ...gax.CallOption) (*UpdateClusterOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "cluster.name", url.QueryEscape(req.GetCluster().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateCluster[0:len((*c.CallOptions).UpdateCluster):len((*c.CallOptions).UpdateCluster)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.UpdateCluster(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) DeleteCluster(ctx context.Context, req *visionaipb.DeleteClusterRequest, opts ...gax.CallOption) (*DeleteClusterOperation, 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).DeleteCluster[0:len((*c.CallOptions).DeleteCluster):len((*c.CallOptions).DeleteCluster)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.DeleteCluster(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) ListStreams(ctx context.Context, req *visionaipb.ListStreamsRequest, opts ...gax.CallOption) *StreamIterator { + 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).ListStreams[0:len((*c.CallOptions).ListStreams):len((*c.CallOptions).ListStreams)], opts...) + it := &StreamIterator{} + req = proto.Clone(req).(*visionaipb.ListStreamsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Stream, string, error) { + resp := &visionaipb.ListStreamsResponse{} + 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.streamsClient.ListStreams(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetStreams(), 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 *streamsGRPCClient) GetStream(ctx context.Context, req *visionaipb.GetStreamRequest, opts ...gax.CallOption) (*visionaipb.Stream, 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).GetStream[0:len((*c.CallOptions).GetStream):len((*c.CallOptions).GetStream)], opts...) + var resp *visionaipb.Stream + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GetStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamsGRPCClient) CreateStream(ctx context.Context, req *visionaipb.CreateStreamRequest, opts ...gax.CallOption) (*CreateStreamOperation, 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).CreateStream[0:len((*c.CallOptions).CreateStream):len((*c.CallOptions).CreateStream)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.CreateStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) UpdateStream(ctx context.Context, req *visionaipb.UpdateStreamRequest, opts ...gax.CallOption) (*UpdateStreamOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "stream.name", url.QueryEscape(req.GetStream().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateStream[0:len((*c.CallOptions).UpdateStream):len((*c.CallOptions).UpdateStream)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.UpdateStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) DeleteStream(ctx context.Context, req *visionaipb.DeleteStreamRequest, opts ...gax.CallOption) (*DeleteStreamOperation, 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).DeleteStream[0:len((*c.CallOptions).DeleteStream):len((*c.CallOptions).DeleteStream)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.DeleteStream(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) GetStreamThumbnail(ctx context.Context, req *visionaipb.GetStreamThumbnailRequest, opts ...gax.CallOption) (*GetStreamThumbnailOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "stream", url.QueryEscape(req.GetStream()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GetStreamThumbnail[0:len((*c.CallOptions).GetStreamThumbnail):len((*c.CallOptions).GetStreamThumbnail)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GetStreamThumbnail(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &GetStreamThumbnailOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) GenerateStreamHlsToken(ctx context.Context, req *visionaipb.GenerateStreamHlsTokenRequest, opts ...gax.CallOption) (*visionaipb.GenerateStreamHlsTokenResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "stream", url.QueryEscape(req.GetStream()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).GenerateStreamHlsToken[0:len((*c.CallOptions).GenerateStreamHlsToken):len((*c.CallOptions).GenerateStreamHlsToken)], opts...) + var resp *visionaipb.GenerateStreamHlsTokenResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GenerateStreamHlsToken(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamsGRPCClient) ListEvents(ctx context.Context, req *visionaipb.ListEventsRequest, opts ...gax.CallOption) *EventIterator { + 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).ListEvents[0:len((*c.CallOptions).ListEvents):len((*c.CallOptions).ListEvents)], opts...) + it := &EventIterator{} + req = proto.Clone(req).(*visionaipb.ListEventsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Event, string, error) { + resp := &visionaipb.ListEventsResponse{} + 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.streamsClient.ListEvents(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetEvents(), 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 *streamsGRPCClient) GetEvent(ctx context.Context, req *visionaipb.GetEventRequest, opts ...gax.CallOption) (*visionaipb.Event, 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).GetEvent[0:len((*c.CallOptions).GetEvent):len((*c.CallOptions).GetEvent)], opts...) + var resp *visionaipb.Event + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GetEvent(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamsGRPCClient) CreateEvent(ctx context.Context, req *visionaipb.CreateEventRequest, opts ...gax.CallOption) (*CreateEventOperation, 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).CreateEvent[0:len((*c.CallOptions).CreateEvent):len((*c.CallOptions).CreateEvent)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.CreateEvent(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) UpdateEvent(ctx context.Context, req *visionaipb.UpdateEventRequest, opts ...gax.CallOption) (*UpdateEventOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "event.name", url.QueryEscape(req.GetEvent().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateEvent[0:len((*c.CallOptions).UpdateEvent):len((*c.CallOptions).UpdateEvent)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.UpdateEvent(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) DeleteEvent(ctx context.Context, req *visionaipb.DeleteEventRequest, opts ...gax.CallOption) (*DeleteEventOperation, 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).DeleteEvent[0:len((*c.CallOptions).DeleteEvent):len((*c.CallOptions).DeleteEvent)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.DeleteEvent(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) ListSeries(ctx context.Context, req *visionaipb.ListSeriesRequest, opts ...gax.CallOption) *SeriesIterator { + 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).ListSeries[0:len((*c.CallOptions).ListSeries):len((*c.CallOptions).ListSeries)], opts...) + it := &SeriesIterator{} + req = proto.Clone(req).(*visionaipb.ListSeriesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Series, string, error) { + resp := &visionaipb.ListSeriesResponse{} + 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.streamsClient.ListSeries(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSeries(), 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 *streamsGRPCClient) GetSeries(ctx context.Context, req *visionaipb.GetSeriesRequest, opts ...gax.CallOption) (*visionaipb.Series, 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).GetSeries[0:len((*c.CallOptions).GetSeries):len((*c.CallOptions).GetSeries)], opts...) + var resp *visionaipb.Series + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.GetSeries(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *streamsGRPCClient) CreateSeries(ctx context.Context, req *visionaipb.CreateSeriesRequest, opts ...gax.CallOption) (*CreateSeriesOperation, 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).CreateSeries[0:len((*c.CallOptions).CreateSeries):len((*c.CallOptions).CreateSeries)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.CreateSeries(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) UpdateSeries(ctx context.Context, req *visionaipb.UpdateSeriesRequest, opts ...gax.CallOption) (*UpdateSeriesOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "series.name", url.QueryEscape(req.GetSeries().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSeries[0:len((*c.CallOptions).UpdateSeries):len((*c.CallOptions).UpdateSeries)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.UpdateSeries(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) DeleteSeries(ctx context.Context, req *visionaipb.DeleteSeriesRequest, opts ...gax.CallOption) (*DeleteSeriesOperation, 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).DeleteSeries[0:len((*c.CallOptions).DeleteSeries):len((*c.CallOptions).DeleteSeries)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.DeleteSeries(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) MaterializeChannel(ctx context.Context, req *visionaipb.MaterializeChannelRequest, opts ...gax.CallOption) (*MaterializeChannelOperation, 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).MaterializeChannel[0:len((*c.CallOptions).MaterializeChannel):len((*c.CallOptions).MaterializeChannel)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.streamsClient.MaterializeChannel(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &MaterializeChannelOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *streamsGRPCClient) 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 *streamsGRPCClient) 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 *streamsGRPCClient) 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 *streamsGRPCClient) 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 +} + +// ListClusters lists Clusters in a given project and location. +func (c *streamsRESTClient) ListClusters(ctx context.Context, req *visionaipb.ListClustersRequest, opts ...gax.CallOption) *ClusterIterator { + it := &ClusterIterator{} + req = proto.Clone(req).(*visionaipb.ListClustersRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Cluster, string, error) { + resp := &visionaipb.ListClustersResponse{} + 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/clusters", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetClusters(), 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 +} + +// GetCluster gets details of a single Cluster. +func (c *streamsRESTClient) GetCluster(ctx context.Context, req *visionaipb.GetClusterRequest, opts ...gax.CallOption) (*visionaipb.Cluster, 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).GetCluster[0:len((*c.CallOptions).GetCluster):len((*c.CallOptions).GetCluster)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Cluster{} + 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 +} + +// CreateCluster creates a new Cluster in a given project and location. +func (c *streamsRESTClient) CreateCluster(ctx context.Context, req *visionaipb.CreateClusterRequest, opts ...gax.CallOption) (*CreateClusterOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCluster() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/clusters", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("clusterId", fmt.Sprintf("%v", req.GetClusterId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateCluster updates the parameters of a single Cluster. +func (c *streamsRESTClient) UpdateCluster(ctx context.Context, req *visionaipb.UpdateClusterRequest, opts ...gax.CallOption) (*UpdateClusterOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCluster() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetCluster().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "cluster.name", url.QueryEscape(req.GetCluster().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("PATCH", 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 &UpdateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteCluster deletes a single Cluster. +func (c *streamsRESTClient) DeleteCluster(ctx context.Context, req *visionaipb.DeleteClusterRequest, opts ...gax.CallOption) (*DeleteClusterOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListStreams lists Streams in a given project and location. +func (c *streamsRESTClient) ListStreams(ctx context.Context, req *visionaipb.ListStreamsRequest, opts ...gax.CallOption) *StreamIterator { + it := &StreamIterator{} + req = proto.Clone(req).(*visionaipb.ListStreamsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Stream, string, error) { + resp := &visionaipb.ListStreamsResponse{} + 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/streams", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetStreams(), 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 +} + +// GetStream gets details of a single Stream. +func (c *streamsRESTClient) GetStream(ctx context.Context, req *visionaipb.GetStreamRequest, opts ...gax.CallOption) (*visionaipb.Stream, 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).GetStream[0:len((*c.CallOptions).GetStream):len((*c.CallOptions).GetStream)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Stream{} + 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 +} + +// CreateStream creates a new Stream in a given project and location. +func (c *streamsRESTClient) CreateStream(ctx context.Context, req *visionaipb.CreateStreamRequest, opts ...gax.CallOption) (*CreateStreamOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetStream() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/streams", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("streamId", fmt.Sprintf("%v", req.GetStreamId())) + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateStream updates the parameters of a single Stream. +func (c *streamsRESTClient) UpdateStream(ctx context.Context, req *visionaipb.UpdateStreamRequest, opts ...gax.CallOption) (*UpdateStreamOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetStream() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetStream().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "stream.name", url.QueryEscape(req.GetStream().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("PATCH", 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 &UpdateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteStream deletes a single Stream. +func (c *streamsRESTClient) DeleteStream(ctx context.Context, req *visionaipb.DeleteStreamRequest, opts ...gax.CallOption) (*DeleteStreamOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetStreamThumbnail gets the thumbnail (image snapshot) of a single Stream. +func (c *streamsRESTClient) GetStreamThumbnail(ctx context.Context, req *visionaipb.GetStreamThumbnailRequest, opts ...gax.CallOption) (*GetStreamThumbnailOperation, 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:getThumbnail", req.GetStream()) + + 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", "stream", url.QueryEscape(req.GetStream()))} + + 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 &GetStreamThumbnailOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GenerateStreamHlsToken generate the JWT auth token required to get the stream HLS contents. +func (c *streamsRESTClient) GenerateStreamHlsToken(ctx context.Context, req *visionaipb.GenerateStreamHlsTokenRequest, opts ...gax.CallOption) (*visionaipb.GenerateStreamHlsTokenResponse, 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:generateStreamHlsToken", req.GetStream()) + + 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", "stream", url.QueryEscape(req.GetStream()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).GenerateStreamHlsToken[0:len((*c.CallOptions).GenerateStreamHlsToken):len((*c.CallOptions).GenerateStreamHlsToken)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.GenerateStreamHlsTokenResponse{} + 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 +} + +// ListEvents lists Events in a given project and location. +func (c *streamsRESTClient) ListEvents(ctx context.Context, req *visionaipb.ListEventsRequest, opts ...gax.CallOption) *EventIterator { + it := &EventIterator{} + req = proto.Clone(req).(*visionaipb.ListEventsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Event, string, error) { + resp := &visionaipb.ListEventsResponse{} + 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/events", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetEvents(), 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 +} + +// GetEvent gets details of a single Event. +func (c *streamsRESTClient) GetEvent(ctx context.Context, req *visionaipb.GetEventRequest, opts ...gax.CallOption) (*visionaipb.Event, 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).GetEvent[0:len((*c.CallOptions).GetEvent):len((*c.CallOptions).GetEvent)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Event{} + 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 +} + +// CreateEvent creates a new Event in a given project and location. +func (c *streamsRESTClient) CreateEvent(ctx context.Context, req *visionaipb.CreateEventRequest, opts ...gax.CallOption) (*CreateEventOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetEvent() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/events", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("eventId", fmt.Sprintf("%v", req.GetEventId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateEvent updates the parameters of a single Event. +func (c *streamsRESTClient) UpdateEvent(ctx context.Context, req *visionaipb.UpdateEventRequest, opts ...gax.CallOption) (*UpdateEventOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetEvent() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetEvent().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "event.name", url.QueryEscape(req.GetEvent().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("PATCH", 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 &UpdateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteEvent deletes a single Event. +func (c *streamsRESTClient) DeleteEvent(ctx context.Context, req *visionaipb.DeleteEventRequest, opts ...gax.CallOption) (*DeleteEventOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ListSeries lists Series in a given project and location. +func (c *streamsRESTClient) ListSeries(ctx context.Context, req *visionaipb.ListSeriesRequest, opts ...gax.CallOption) *SeriesIterator { + it := &SeriesIterator{} + req = proto.Clone(req).(*visionaipb.ListSeriesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Series, string, error) { + resp := &visionaipb.ListSeriesResponse{} + 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/series", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetFilter() != "" { + params.Add("filter", fmt.Sprintf("%v", req.GetFilter())) + } + if req.GetOrderBy() != "" { + params.Add("orderBy", fmt.Sprintf("%v", req.GetOrderBy())) + } + 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.GetSeries(), 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 +} + +// GetSeries gets details of a single Series. +func (c *streamsRESTClient) GetSeries(ctx context.Context, req *visionaipb.GetSeriesRequest, opts ...gax.CallOption) (*visionaipb.Series, 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).GetSeries[0:len((*c.CallOptions).GetSeries):len((*c.CallOptions).GetSeries)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Series{} + 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 +} + +// CreateSeries creates a new Series in a given project and location. +func (c *streamsRESTClient) CreateSeries(ctx context.Context, req *visionaipb.CreateSeriesRequest, opts ...gax.CallOption) (*CreateSeriesOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSeries() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/series", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + params.Add("seriesId", fmt.Sprintf("%v", req.GetSeriesId())) + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateSeries updates the parameters of a single Event. +func (c *streamsRESTClient) UpdateSeries(ctx context.Context, req *visionaipb.UpdateSeriesRequest, opts ...gax.CallOption) (*UpdateSeriesOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSeries() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetSeries().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "series.name", url.QueryEscape(req.GetSeries().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("PATCH", 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 &UpdateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteSeries deletes a single Series. +func (c *streamsRESTClient) DeleteSeries(ctx context.Context, req *visionaipb.DeleteSeriesRequest, opts ...gax.CallOption) (*DeleteSeriesOperation, 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") + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + 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("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() + + 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 &DeleteSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// MaterializeChannel materialize a channel. +func (c *streamsRESTClient) MaterializeChannel(ctx context.Context, req *visionaipb.MaterializeChannelRequest, opts ...gax.CallOption) (*MaterializeChannelOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetChannel() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/channels", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("channelId", fmt.Sprintf("%v", req.GetChannelId())) + if req.GetRequestId() != "" { + params.Add("requestId", fmt.Sprintf("%v", req.GetRequestId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &MaterializeChannelOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *streamsRESTClient) 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 *streamsRESTClient) 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 *streamsRESTClient) 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 *streamsRESTClient) 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 +} + +// CreateClusterOperation returns a new CreateClusterOperation from a given name. +// The name must be that of a previously created CreateClusterOperation, possibly from a different process. +func (c *streamsGRPCClient) CreateClusterOperation(name string) *CreateClusterOperation { + return &CreateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateClusterOperation returns a new CreateClusterOperation from a given name. +// The name must be that of a previously created CreateClusterOperation, possibly from a different process. +func (c *streamsRESTClient) CreateClusterOperation(name string) *CreateClusterOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateEventOperation returns a new CreateEventOperation from a given name. +// The name must be that of a previously created CreateEventOperation, possibly from a different process. +func (c *streamsGRPCClient) CreateEventOperation(name string) *CreateEventOperation { + return &CreateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateEventOperation returns a new CreateEventOperation from a given name. +// The name must be that of a previously created CreateEventOperation, possibly from a different process. +func (c *streamsRESTClient) CreateEventOperation(name string) *CreateEventOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateSeriesOperation returns a new CreateSeriesOperation from a given name. +// The name must be that of a previously created CreateSeriesOperation, possibly from a different process. +func (c *streamsGRPCClient) CreateSeriesOperation(name string) *CreateSeriesOperation { + return &CreateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateSeriesOperation returns a new CreateSeriesOperation from a given name. +// The name must be that of a previously created CreateSeriesOperation, possibly from a different process. +func (c *streamsRESTClient) CreateSeriesOperation(name string) *CreateSeriesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateStreamOperation returns a new CreateStreamOperation from a given name. +// The name must be that of a previously created CreateStreamOperation, possibly from a different process. +func (c *streamsGRPCClient) CreateStreamOperation(name string) *CreateStreamOperation { + return &CreateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateStreamOperation returns a new CreateStreamOperation from a given name. +// The name must be that of a previously created CreateStreamOperation, possibly from a different process. +func (c *streamsRESTClient) CreateStreamOperation(name string) *CreateStreamOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteClusterOperation returns a new DeleteClusterOperation from a given name. +// The name must be that of a previously created DeleteClusterOperation, possibly from a different process. +func (c *streamsGRPCClient) DeleteClusterOperation(name string) *DeleteClusterOperation { + return &DeleteClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteClusterOperation returns a new DeleteClusterOperation from a given name. +// The name must be that of a previously created DeleteClusterOperation, possibly from a different process. +func (c *streamsRESTClient) DeleteClusterOperation(name string) *DeleteClusterOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteEventOperation returns a new DeleteEventOperation from a given name. +// The name must be that of a previously created DeleteEventOperation, possibly from a different process. +func (c *streamsGRPCClient) DeleteEventOperation(name string) *DeleteEventOperation { + return &DeleteEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteEventOperation returns a new DeleteEventOperation from a given name. +// The name must be that of a previously created DeleteEventOperation, possibly from a different process. +func (c *streamsRESTClient) DeleteEventOperation(name string) *DeleteEventOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteSeriesOperation returns a new DeleteSeriesOperation from a given name. +// The name must be that of a previously created DeleteSeriesOperation, possibly from a different process. +func (c *streamsGRPCClient) DeleteSeriesOperation(name string) *DeleteSeriesOperation { + return &DeleteSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteSeriesOperation returns a new DeleteSeriesOperation from a given name. +// The name must be that of a previously created DeleteSeriesOperation, possibly from a different process. +func (c *streamsRESTClient) DeleteSeriesOperation(name string) *DeleteSeriesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteStreamOperation returns a new DeleteStreamOperation from a given name. +// The name must be that of a previously created DeleteStreamOperation, possibly from a different process. +func (c *streamsGRPCClient) DeleteStreamOperation(name string) *DeleteStreamOperation { + return &DeleteStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteStreamOperation returns a new DeleteStreamOperation from a given name. +// The name must be that of a previously created DeleteStreamOperation, possibly from a different process. +func (c *streamsRESTClient) DeleteStreamOperation(name string) *DeleteStreamOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// GetStreamThumbnailOperation returns a new GetStreamThumbnailOperation from a given name. +// The name must be that of a previously created GetStreamThumbnailOperation, possibly from a different process. +func (c *streamsGRPCClient) GetStreamThumbnailOperation(name string) *GetStreamThumbnailOperation { + return &GetStreamThumbnailOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// GetStreamThumbnailOperation returns a new GetStreamThumbnailOperation from a given name. +// The name must be that of a previously created GetStreamThumbnailOperation, possibly from a different process. +func (c *streamsRESTClient) GetStreamThumbnailOperation(name string) *GetStreamThumbnailOperation { + override := fmt.Sprintf("/v1/%s", name) + return &GetStreamThumbnailOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// MaterializeChannelOperation returns a new MaterializeChannelOperation from a given name. +// The name must be that of a previously created MaterializeChannelOperation, possibly from a different process. +func (c *streamsGRPCClient) MaterializeChannelOperation(name string) *MaterializeChannelOperation { + return &MaterializeChannelOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// MaterializeChannelOperation returns a new MaterializeChannelOperation from a given name. +// The name must be that of a previously created MaterializeChannelOperation, possibly from a different process. +func (c *streamsRESTClient) MaterializeChannelOperation(name string) *MaterializeChannelOperation { + override := fmt.Sprintf("/v1/%s", name) + return &MaterializeChannelOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateClusterOperation returns a new UpdateClusterOperation from a given name. +// The name must be that of a previously created UpdateClusterOperation, possibly from a different process. +func (c *streamsGRPCClient) UpdateClusterOperation(name string) *UpdateClusterOperation { + return &UpdateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateClusterOperation returns a new UpdateClusterOperation from a given name. +// The name must be that of a previously created UpdateClusterOperation, possibly from a different process. +func (c *streamsRESTClient) UpdateClusterOperation(name string) *UpdateClusterOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateClusterOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateEventOperation returns a new UpdateEventOperation from a given name. +// The name must be that of a previously created UpdateEventOperation, possibly from a different process. +func (c *streamsGRPCClient) UpdateEventOperation(name string) *UpdateEventOperation { + return &UpdateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateEventOperation returns a new UpdateEventOperation from a given name. +// The name must be that of a previously created UpdateEventOperation, possibly from a different process. +func (c *streamsRESTClient) UpdateEventOperation(name string) *UpdateEventOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateEventOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateSeriesOperation returns a new UpdateSeriesOperation from a given name. +// The name must be that of a previously created UpdateSeriesOperation, possibly from a different process. +func (c *streamsGRPCClient) UpdateSeriesOperation(name string) *UpdateSeriesOperation { + return &UpdateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateSeriesOperation returns a new UpdateSeriesOperation from a given name. +// The name must be that of a previously created UpdateSeriesOperation, possibly from a different process. +func (c *streamsRESTClient) UpdateSeriesOperation(name string) *UpdateSeriesOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateSeriesOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateStreamOperation returns a new UpdateStreamOperation from a given name. +// The name must be that of a previously created UpdateStreamOperation, possibly from a different process. +func (c *streamsGRPCClient) UpdateStreamOperation(name string) *UpdateStreamOperation { + return &UpdateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateStreamOperation returns a new UpdateStreamOperation from a given name. +// The name must be that of a previously created UpdateStreamOperation, possibly from a different process. +func (c *streamsRESTClient) UpdateStreamOperation(name string) *UpdateStreamOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateStreamOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/visionai/apiv1/streams_client_example_test.go b/visionai/apiv1/streams_client_example_test.go new file mode 100644 index 00000000000..73ad405ea41 --- /dev/null +++ b/visionai/apiv1/streams_client_example_test.go @@ -0,0 +1,823 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewStreamsClient() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewStreamsRESTClient() { + 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 := visionai.NewStreamsRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleStreamsClient_CreateCluster() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateClusterRequest. + } + op, err := c.CreateCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_CreateEvent() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateEventRequest. + } + op, err := c.CreateEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_CreateSeries() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSeriesRequest. + } + op, err := c.CreateSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_CreateStream() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateStreamRequest. + } + op, err := c.CreateStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_DeleteCluster() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteClusterRequest. + } + op, err := c.DeleteCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleStreamsClient_DeleteEvent() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteEventRequest. + } + op, err := c.DeleteEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleStreamsClient_DeleteSeries() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSeriesRequest. + } + op, err := c.DeleteSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleStreamsClient_DeleteStream() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteStreamRequest. + } + op, err := c.DeleteStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleStreamsClient_GenerateStreamHlsToken() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateStreamHlsTokenRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateStreamHlsTokenRequest. + } + resp, err := c.GenerateStreamHlsToken(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_GetCluster() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetClusterRequest. + } + resp, err := c.GetCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_GetEvent() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetEventRequest. + } + resp, err := c.GetEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_GetSeries() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSeriesRequest. + } + resp, err := c.GetSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_GetStream() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetStreamRequest. + } + resp, err := c.GetStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_GetStreamThumbnail() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetStreamThumbnailRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetStreamThumbnailRequest. + } + op, err := c.GetStreamThumbnail(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_ListClusters() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListClustersRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListClustersRequest. + } + it := c.ListClusters(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamsClient_ListEvents() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListEventsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListEventsRequest. + } + it := c.ListEvents(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamsClient_ListSeries() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSeriesRequest. + } + it := c.ListSeries(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamsClient_ListStreams() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListStreamsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListStreamsRequest. + } + it := c.ListStreams(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleStreamsClient_MaterializeChannel() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.MaterializeChannelRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#MaterializeChannelRequest. + } + op, err := c.MaterializeChannel(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_UpdateCluster() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateClusterRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateClusterRequest. + } + op, err := c.UpdateCluster(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_UpdateEvent() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateEventRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateEventRequest. + } + op, err := c.UpdateEvent(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_UpdateSeries() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSeriesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSeriesRequest. + } + op, err := c.UpdateSeries(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_UpdateStream() { + 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 := visionai.NewStreamsClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateStreamRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateStreamRequest. + } + op, err := c.UpdateStream(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleStreamsClient_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 := visionai.NewStreamsClient(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 ExampleStreamsClient_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 := visionai.NewStreamsClient(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 ExampleStreamsClient_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 := visionai.NewStreamsClient(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 ExampleStreamsClient_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 := visionai.NewStreamsClient(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/visionai/apiv1/version.go b/visionai/apiv1/version.go new file mode 100644 index 00000000000..6f70b898579 --- /dev/null +++ b/visionai/apiv1/version.go @@ -0,0 +1,23 @@ +// Copyright 2024 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 gapicgen. DO NOT EDIT. + +package visionai + +import "cloud.google.com/go/visionai/internal" + +func init() { + versionClient = internal.Version +} diff --git a/visionai/apiv1/visionaipb/annotations.pb.go b/visionai/apiv1/visionaipb/annotations.pb.go new file mode 100755 index 00000000000..57718b8a45b --- /dev/null +++ b/visionai/apiv1/visionaipb/annotations.pb.go @@ -0,0 +1,4457 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/annotations.proto + +package visionaipb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + structpb "google.golang.org/protobuf/types/known/structpb" + 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) +) + +// Enum describing all possible types of a stream annotation. +type StreamAnnotationType int32 + +const ( + // Type UNSPECIFIED. + StreamAnnotationType_STREAM_ANNOTATION_TYPE_UNSPECIFIED StreamAnnotationType = 0 + // active_zone annotation defines a polygon on top of the content from an + // image/video based stream, following processing will only focus on the + // content inside the active zone. + StreamAnnotationType_STREAM_ANNOTATION_TYPE_ACTIVE_ZONE StreamAnnotationType = 1 + // crossing_line annotation defines a polyline on top of the content from an + // image/video based Vision AI stream, events happening across the line will + // be captured. For example, the counts of people who goes acroos the line + // in Occupancy Analytic Processor. + StreamAnnotationType_STREAM_ANNOTATION_TYPE_CROSSING_LINE StreamAnnotationType = 2 +) + +// Enum value maps for StreamAnnotationType. +var ( + StreamAnnotationType_name = map[int32]string{ + 0: "STREAM_ANNOTATION_TYPE_UNSPECIFIED", + 1: "STREAM_ANNOTATION_TYPE_ACTIVE_ZONE", + 2: "STREAM_ANNOTATION_TYPE_CROSSING_LINE", + } + StreamAnnotationType_value = map[string]int32{ + "STREAM_ANNOTATION_TYPE_UNSPECIFIED": 0, + "STREAM_ANNOTATION_TYPE_ACTIVE_ZONE": 1, + "STREAM_ANNOTATION_TYPE_CROSSING_LINE": 2, + } +) + +func (x StreamAnnotationType) Enum() *StreamAnnotationType { + p := new(StreamAnnotationType) + *p = x + return p +} + +func (x StreamAnnotationType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (StreamAnnotationType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_annotations_proto_enumTypes[0].Descriptor() +} + +func (StreamAnnotationType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_annotations_proto_enumTypes[0] +} + +func (x StreamAnnotationType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use StreamAnnotationType.Descriptor instead. +func (StreamAnnotationType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0} +} + +// Output format for Personal Protective Equipment Detection Operator. +type PersonalProtectiveEquipmentDetectionOutput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Current timestamp. + CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"` + // A list of DetectedPersons. + DetectedPersons []*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson `protobuf:"bytes,2,rep,name=detected_persons,json=detectedPersons,proto3" json:"detected_persons,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 PersonalProtectiveEquipmentDetectionOutput.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput) GetCurrentTime() *timestamppb.Timestamp { + if x != nil { + return x.CurrentTime + } + return nil +} + +func (x *PersonalProtectiveEquipmentDetectionOutput) GetDetectedPersons() []*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson { + if x != nil { + return x.DetectedPersons + } + return nil +} + +// Prediction output format for Generic Object Detection. +type ObjectDetectionPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Current timestamp. + CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"` + // A list of identified boxes. + IdentifiedBoxes []*ObjectDetectionPredictionResult_IdentifiedBox `protobuf:"bytes,2,rep,name=identified_boxes,json=identifiedBoxes,proto3" json:"identified_boxes,omitempty"` +} + +func (x *ObjectDetectionPredictionResult) Reset() { + *x = ObjectDetectionPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ObjectDetectionPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ObjectDetectionPredictionResult) ProtoMessage() {} + +func (x *ObjectDetectionPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 ObjectDetectionPredictionResult.ProtoReflect.Descriptor instead. +func (*ObjectDetectionPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1} +} + +func (x *ObjectDetectionPredictionResult) GetCurrentTime() *timestamppb.Timestamp { + if x != nil { + return x.CurrentTime + } + return nil +} + +func (x *ObjectDetectionPredictionResult) GetIdentifiedBoxes() []*ObjectDetectionPredictionResult_IdentifiedBox { + if x != nil { + return x.IdentifiedBoxes + } + return nil +} + +// Prediction output format for Image Object Detection. +type ImageObjectDetectionPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource IDs of the AnnotationSpecs that had been identified, ordered + // by the confidence score descendingly. It is the id segment instead of full + // resource name. + Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"` + // The display names of the AnnotationSpecs that had been identified, order + // matches the IDs. + DisplayNames []string `protobuf:"bytes,2,rep,name=display_names,json=displayNames,proto3" json:"display_names,omitempty"` + // The Model's confidences in correctness of the predicted IDs, higher value + // means higher confidence. Order matches the Ids. + Confidences []float32 `protobuf:"fixed32,3,rep,packed,name=confidences,proto3" json:"confidences,omitempty"` + // Bounding boxes, i.e. the rectangles over the image, that pinpoint + // the found AnnotationSpecs. Given in order that matches the IDs. Each + // bounding box is an array of 4 numbers `xMin`, `xMax`, `yMin`, and + // `yMax`, which represent the extremal coordinates of the box. They are + // relative to the image size, and the point 0,0 is in the top left + // of the image. + Bboxes []*structpb.ListValue `protobuf:"bytes,4,rep,name=bboxes,proto3" json:"bboxes,omitempty"` +} + +func (x *ImageObjectDetectionPredictionResult) Reset() { + *x = ImageObjectDetectionPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageObjectDetectionPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageObjectDetectionPredictionResult) ProtoMessage() {} + +func (x *ImageObjectDetectionPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 ImageObjectDetectionPredictionResult.ProtoReflect.Descriptor instead. +func (*ImageObjectDetectionPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{2} +} + +func (x *ImageObjectDetectionPredictionResult) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + +func (x *ImageObjectDetectionPredictionResult) GetDisplayNames() []string { + if x != nil { + return x.DisplayNames + } + return nil +} + +func (x *ImageObjectDetectionPredictionResult) GetConfidences() []float32 { + if x != nil { + return x.Confidences + } + return nil +} + +func (x *ImageObjectDetectionPredictionResult) GetBboxes() []*structpb.ListValue { + if x != nil { + return x.Bboxes + } + return nil +} + +// Prediction output format for Image and Text Classification. +type ClassificationPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource IDs of the AnnotationSpecs that had been identified. + Ids []int64 `protobuf:"varint,1,rep,packed,name=ids,proto3" json:"ids,omitempty"` + // The display names of the AnnotationSpecs that had been identified, order + // matches the IDs. + DisplayNames []string `protobuf:"bytes,2,rep,name=display_names,json=displayNames,proto3" json:"display_names,omitempty"` + // The Model's confidences in correctness of the predicted IDs, higher value + // means higher confidence. Order matches the Ids. + Confidences []float32 `protobuf:"fixed32,3,rep,packed,name=confidences,proto3" json:"confidences,omitempty"` +} + +func (x *ClassificationPredictionResult) Reset() { + *x = ClassificationPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClassificationPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClassificationPredictionResult) ProtoMessage() {} + +func (x *ClassificationPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 ClassificationPredictionResult.ProtoReflect.Descriptor instead. +func (*ClassificationPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{3} +} + +func (x *ClassificationPredictionResult) GetIds() []int64 { + if x != nil { + return x.Ids + } + return nil +} + +func (x *ClassificationPredictionResult) GetDisplayNames() []string { + if x != nil { + return x.DisplayNames + } + return nil +} + +func (x *ClassificationPredictionResult) GetConfidences() []float32 { + if x != nil { + return x.Confidences + } + return nil +} + +// Prediction output format for Image Segmentation. +type ImageSegmentationPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A PNG image where each pixel in the mask represents the category in which + // the pixel in the original image was predicted to belong to. The size of + // this image will be the same as the original image. The mapping between the + // AnntoationSpec and the color can be found in model's metadata. The model + // will choose the most likely category and if none of the categories reach + // the confidence threshold, the pixel will be marked as background. + CategoryMask string `protobuf:"bytes,1,opt,name=category_mask,json=categoryMask,proto3" json:"category_mask,omitempty"` + // A one channel image which is encoded as an 8bit lossless PNG. The size of + // the image will be the same as the original image. For a specific pixel, + // darker color means less confidence in correctness of the cateogry in the + // categoryMask for the corresponding pixel. Black means no confidence and + // white means complete confidence. + ConfidenceMask string `protobuf:"bytes,2,opt,name=confidence_mask,json=confidenceMask,proto3" json:"confidence_mask,omitempty"` +} + +func (x *ImageSegmentationPredictionResult) Reset() { + *x = ImageSegmentationPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageSegmentationPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageSegmentationPredictionResult) ProtoMessage() {} + +func (x *ImageSegmentationPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 ImageSegmentationPredictionResult.ProtoReflect.Descriptor instead. +func (*ImageSegmentationPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{4} +} + +func (x *ImageSegmentationPredictionResult) GetCategoryMask() string { + if x != nil { + return x.CategoryMask + } + return "" +} + +func (x *ImageSegmentationPredictionResult) GetConfidenceMask() string { + if x != nil { + return x.ConfidenceMask + } + return "" +} + +// Prediction output format for Video Action Recognition. +type VideoActionRecognitionPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The beginning, inclusive, of the video's time segment in which the + // actions have been identified. + SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"` + // The end, inclusive, of the video's time segment in which the actions have + // been identified. Particularly, if the end is the same as the start, it + // means the identification happens on a specific video frame. + SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"` + // All of the actions identified in the time range. + Actions []*VideoActionRecognitionPredictionResult_IdentifiedAction `protobuf:"bytes,3,rep,name=actions,proto3" json:"actions,omitempty"` +} + +func (x *VideoActionRecognitionPredictionResult) Reset() { + *x = VideoActionRecognitionPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoActionRecognitionPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoActionRecognitionPredictionResult) ProtoMessage() {} + +func (x *VideoActionRecognitionPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 VideoActionRecognitionPredictionResult.ProtoReflect.Descriptor instead. +func (*VideoActionRecognitionPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{5} +} + +func (x *VideoActionRecognitionPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentStartTime + } + return nil +} + +func (x *VideoActionRecognitionPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentEndTime + } + return nil +} + +func (x *VideoActionRecognitionPredictionResult) GetActions() []*VideoActionRecognitionPredictionResult_IdentifiedAction { + if x != nil { + return x.Actions + } + return nil +} + +// Prediction output format for Video Object Tracking. +type VideoObjectTrackingPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The beginning, inclusive, of the video's time segment in which the + // current identifications happens. + SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"` + // The end, inclusive, of the video's time segment in which the current + // identifications happen. Particularly, if the end is the same as the start, + // it means the identifications happen on a specific video frame. + SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"` + // All of the objects detected in the specified time range. + Objects []*VideoObjectTrackingPredictionResult_DetectedObject `protobuf:"bytes,3,rep,name=objects,proto3" json:"objects,omitempty"` +} + +func (x *VideoObjectTrackingPredictionResult) Reset() { + *x = VideoObjectTrackingPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoObjectTrackingPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoObjectTrackingPredictionResult) ProtoMessage() {} + +func (x *VideoObjectTrackingPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 VideoObjectTrackingPredictionResult.ProtoReflect.Descriptor instead. +func (*VideoObjectTrackingPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6} +} + +func (x *VideoObjectTrackingPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentStartTime + } + return nil +} + +func (x *VideoObjectTrackingPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentEndTime + } + return nil +} + +func (x *VideoObjectTrackingPredictionResult) GetObjects() []*VideoObjectTrackingPredictionResult_DetectedObject { + if x != nil { + return x.Objects + } + return nil +} + +// Prediction output format for Video Classification. +type VideoClassificationPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The beginning, inclusive, of the video's time segment in which the + // classifications have been identified. + SegmentStartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=segment_start_time,json=segmentStartTime,proto3" json:"segment_start_time,omitempty"` + // The end, inclusive, of the video's time segment in which the + // classifications have been identified. Particularly, if the end is the same + // as the start, it means the identification happens on a specific video + // frame. + SegmentEndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=segment_end_time,json=segmentEndTime,proto3" json:"segment_end_time,omitempty"` + // All of the classifications identified in the time range. + Classifications []*VideoClassificationPredictionResult_IdentifiedClassification `protobuf:"bytes,3,rep,name=classifications,proto3" json:"classifications,omitempty"` +} + +func (x *VideoClassificationPredictionResult) Reset() { + *x = VideoClassificationPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoClassificationPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoClassificationPredictionResult) ProtoMessage() {} + +func (x *VideoClassificationPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 VideoClassificationPredictionResult.ProtoReflect.Descriptor instead. +func (*VideoClassificationPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{7} +} + +func (x *VideoClassificationPredictionResult) GetSegmentStartTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentStartTime + } + return nil +} + +func (x *VideoClassificationPredictionResult) GetSegmentEndTime() *timestamppb.Timestamp { + if x != nil { + return x.SegmentEndTime + } + return nil +} + +func (x *VideoClassificationPredictionResult) GetClassifications() []*VideoClassificationPredictionResult_IdentifiedClassification { + if x != nil { + return x.Classifications + } + return nil +} + +// The prediction result proto for occupancy counting. +type OccupancyCountingPredictionResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Current timestamp. + CurrentTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=current_time,json=currentTime,proto3" json:"current_time,omitempty"` + // A list of identified boxes. + IdentifiedBoxes []*OccupancyCountingPredictionResult_IdentifiedBox `protobuf:"bytes,2,rep,name=identified_boxes,json=identifiedBoxes,proto3" json:"identified_boxes,omitempty"` + // Detection statistics. + Stats *OccupancyCountingPredictionResult_Stats `protobuf:"bytes,3,opt,name=stats,proto3" json:"stats,omitempty"` + // Track related information. All the tracks that are live at this timestamp. + // It only exists if tracking is enabled. + TrackInfo []*OccupancyCountingPredictionResult_TrackInfo `protobuf:"bytes,4,rep,name=track_info,json=trackInfo,proto3" json:"track_info,omitempty"` + // Dwell time related information. All the tracks that are live in a given + // zone with a start and end dwell time timestamp + DwellTimeInfo []*OccupancyCountingPredictionResult_DwellTimeInfo `protobuf:"bytes,5,rep,name=dwell_time_info,json=dwellTimeInfo,proto3" json:"dwell_time_info,omitempty"` + // The presentation timestamp of the frame. + Pts *int64 `protobuf:"varint,6,opt,name=pts,proto3,oneof" json:"pts,omitempty"` +} + +func (x *OccupancyCountingPredictionResult) Reset() { + *x = OccupancyCountingPredictionResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 OccupancyCountingPredictionResult.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8} +} + +func (x *OccupancyCountingPredictionResult) GetCurrentTime() *timestamppb.Timestamp { + if x != nil { + return x.CurrentTime + } + return nil +} + +func (x *OccupancyCountingPredictionResult) GetIdentifiedBoxes() []*OccupancyCountingPredictionResult_IdentifiedBox { + if x != nil { + return x.IdentifiedBoxes + } + return nil +} + +func (x *OccupancyCountingPredictionResult) GetStats() *OccupancyCountingPredictionResult_Stats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *OccupancyCountingPredictionResult) GetTrackInfo() []*OccupancyCountingPredictionResult_TrackInfo { + if x != nil { + return x.TrackInfo + } + return nil +} + +func (x *OccupancyCountingPredictionResult) GetDwellTimeInfo() []*OccupancyCountingPredictionResult_DwellTimeInfo { + if x != nil { + return x.DwellTimeInfo + } + return nil +} + +func (x *OccupancyCountingPredictionResult) GetPts() int64 { + if x != nil && x.Pts != nil { + return *x.Pts + } + return 0 +} + +// message about annotations about Vision AI stream resource. +type StreamAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to AnnotationPayload: + // + // *StreamAnnotation_ActiveZone + // *StreamAnnotation_CrossingLine + AnnotationPayload isStreamAnnotation_AnnotationPayload `protobuf_oneof:"annotation_payload"` + // ID of the annotation. It must be unique when used in the certain context. + // For example, all the annotations to one input streams of a Vision AI + // application. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // User-friendly name for the annotation. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // The Vision AI stream resource name. + SourceStream string `protobuf:"bytes,3,opt,name=source_stream,json=sourceStream,proto3" json:"source_stream,omitempty"` + // The actual type of Annotation. + Type StreamAnnotationType `protobuf:"varint,4,opt,name=type,proto3,enum=google.cloud.visionai.v1.StreamAnnotationType" json:"type,omitempty"` +} + +func (x *StreamAnnotation) Reset() { + *x = StreamAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAnnotation) ProtoMessage() {} + +func (x *StreamAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 StreamAnnotation.ProtoReflect.Descriptor instead. +func (*StreamAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{9} +} + +func (m *StreamAnnotation) GetAnnotationPayload() isStreamAnnotation_AnnotationPayload { + if m != nil { + return m.AnnotationPayload + } + return nil +} + +func (x *StreamAnnotation) GetActiveZone() *NormalizedPolygon { + if x, ok := x.GetAnnotationPayload().(*StreamAnnotation_ActiveZone); ok { + return x.ActiveZone + } + return nil +} + +func (x *StreamAnnotation) GetCrossingLine() *NormalizedPolyline { + if x, ok := x.GetAnnotationPayload().(*StreamAnnotation_CrossingLine); ok { + return x.CrossingLine + } + return nil +} + +func (x *StreamAnnotation) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *StreamAnnotation) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *StreamAnnotation) GetSourceStream() string { + if x != nil { + return x.SourceStream + } + return "" +} + +func (x *StreamAnnotation) GetType() StreamAnnotationType { + if x != nil { + return x.Type + } + return StreamAnnotationType_STREAM_ANNOTATION_TYPE_UNSPECIFIED +} + +type isStreamAnnotation_AnnotationPayload interface { + isStreamAnnotation_AnnotationPayload() +} + +type StreamAnnotation_ActiveZone struct { + // Annotation for type ACTIVE_ZONE + ActiveZone *NormalizedPolygon `protobuf:"bytes,5,opt,name=active_zone,json=activeZone,proto3,oneof"` +} + +type StreamAnnotation_CrossingLine struct { + // Annotation for type CROSSING_LINE + CrossingLine *NormalizedPolyline `protobuf:"bytes,6,opt,name=crossing_line,json=crossingLine,proto3,oneof"` +} + +func (*StreamAnnotation_ActiveZone) isStreamAnnotation_AnnotationPayload() {} + +func (*StreamAnnotation_CrossingLine) isStreamAnnotation_AnnotationPayload() {} + +// A wrapper of repeated StreamAnnotation. +type StreamAnnotations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Multiple annotations. + StreamAnnotations []*StreamAnnotation `protobuf:"bytes,1,rep,name=stream_annotations,json=streamAnnotations,proto3" json:"stream_annotations,omitempty"` +} + +func (x *StreamAnnotations) Reset() { + *x = StreamAnnotations{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamAnnotations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamAnnotations) ProtoMessage() {} + +func (x *StreamAnnotations) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 StreamAnnotations.ProtoReflect.Descriptor instead. +func (*StreamAnnotations) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{10} +} + +func (x *StreamAnnotations) GetStreamAnnotations() []*StreamAnnotation { + if x != nil { + return x.StreamAnnotations + } + return nil +} + +// Normalized Polygon. +type NormalizedPolygon struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The bounding polygon normalized vertices. Top left corner of the image + // will be [0, 0]. + NormalizedVertices []*NormalizedVertex `protobuf:"bytes,1,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"` +} + +func (x *NormalizedPolygon) Reset() { + *x = NormalizedPolygon{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NormalizedPolygon) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NormalizedPolygon) ProtoMessage() {} + +func (x *NormalizedPolygon) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 NormalizedPolygon.ProtoReflect.Descriptor instead. +func (*NormalizedPolygon) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{11} +} + +func (x *NormalizedPolygon) GetNormalizedVertices() []*NormalizedVertex { + if x != nil { + return x.NormalizedVertices + } + return nil +} + +// Normalized Pplyline, which represents a curve consisting of connected +// straight-line segments. +type NormalizedPolyline struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A sequence of vertices connected by straight lines. + NormalizedVertices []*NormalizedVertex `protobuf:"bytes,1,rep,name=normalized_vertices,json=normalizedVertices,proto3" json:"normalized_vertices,omitempty"` +} + +func (x *NormalizedPolyline) Reset() { + *x = NormalizedPolyline{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NormalizedPolyline) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NormalizedPolyline) ProtoMessage() {} + +func (x *NormalizedPolyline) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 NormalizedPolyline.ProtoReflect.Descriptor instead. +func (*NormalizedPolyline) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{12} +} + +func (x *NormalizedPolyline) GetNormalizedVertices() []*NormalizedVertex { + if x != nil { + return x.NormalizedVertices + } + return nil +} + +// A vertex represents a 2D point in the image. +// NOTE: the normalized vertex coordinates are relative to the original image +// and range from 0 to 1. +type NormalizedVertex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // X coordinate. + X float32 `protobuf:"fixed32,1,opt,name=x,proto3" json:"x,omitempty"` + // Y coordinate. + Y float32 `protobuf:"fixed32,2,opt,name=y,proto3" json:"y,omitempty"` +} + +func (x *NormalizedVertex) Reset() { + *x = NormalizedVertex{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NormalizedVertex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NormalizedVertex) ProtoMessage() {} + +func (x *NormalizedVertex) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 NormalizedVertex.ProtoReflect.Descriptor instead. +func (*NormalizedVertex) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{13} +} + +func (x *NormalizedVertex) GetX() float32 { + if x != nil { + return x.X + } + return 0 +} + +func (x *NormalizedVertex) GetY() float32 { + if x != nil { + return x.Y + } + return 0 +} + +// Message of essential metadata of App Platform. +// This message is usually attached to a certain processor output annotation for +// customer to identify the source of the data. +type AppPlatformMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The application resource name. + Application string `protobuf:"bytes,1,opt,name=application,proto3" json:"application,omitempty"` + // The instance resource id. Instance is the nested resource of application + // under collection 'instances'. + InstanceId string `protobuf:"bytes,2,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + // The node name of the application graph. + Node string `protobuf:"bytes,3,opt,name=node,proto3" json:"node,omitempty"` + // The referred processor resource name of the application node. + Processor string `protobuf:"bytes,4,opt,name=processor,proto3" json:"processor,omitempty"` +} + +func (x *AppPlatformMetadata) Reset() { + *x = AppPlatformMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformMetadata) ProtoMessage() {} + +func (x *AppPlatformMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 AppPlatformMetadata.ProtoReflect.Descriptor instead. +func (*AppPlatformMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{14} +} + +func (x *AppPlatformMetadata) GetApplication() string { + if x != nil { + return x.Application + } + return "" +} + +func (x *AppPlatformMetadata) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *AppPlatformMetadata) GetNode() string { + if x != nil { + return x.Node + } + return "" +} + +func (x *AppPlatformMetadata) GetProcessor() string { + if x != nil { + return x.Processor + } + return "" +} + +// For any cloud function based customer processing logic, customer's cloud +// function is expected to receive AppPlatformCloudFunctionRequest as request +// and send back AppPlatformCloudFunctionResponse as response. +// Message of request from AppPlatform to Cloud Function. +type AppPlatformCloudFunctionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The metadata of the AppPlatform for customer to identify the source of the + // payload. + AppPlatformMetadata *AppPlatformMetadata `protobuf:"bytes,1,opt,name=app_platform_metadata,json=appPlatformMetadata,proto3" json:"app_platform_metadata,omitempty"` + // The actual annotations to be processed by the customized Cloud Function. + Annotations []*AppPlatformCloudFunctionRequest_StructedInputAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *AppPlatformCloudFunctionRequest) Reset() { + *x = AppPlatformCloudFunctionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformCloudFunctionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformCloudFunctionRequest) ProtoMessage() {} + +func (x *AppPlatformCloudFunctionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 AppPlatformCloudFunctionRequest.ProtoReflect.Descriptor instead. +func (*AppPlatformCloudFunctionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{15} +} + +func (x *AppPlatformCloudFunctionRequest) GetAppPlatformMetadata() *AppPlatformMetadata { + if x != nil { + return x.AppPlatformMetadata + } + return nil +} + +func (x *AppPlatformCloudFunctionRequest) GetAnnotations() []*AppPlatformCloudFunctionRequest_StructedInputAnnotation { + if x != nil { + return x.Annotations + } + return nil +} + +// Message of the response from customer's Cloud Function to AppPlatform. +type AppPlatformCloudFunctionResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The modified annotations that is returned back to AppPlatform. + // If the annotations fields are empty, then those annotations will be dropped + // by AppPlatform. + Annotations []*AppPlatformCloudFunctionResponse_StructedOutputAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` + // If set to true, AppPlatform will use original annotations instead of + // dropping them, even if it is empty in the annotations filed. + AnnotationPassthrough bool `protobuf:"varint,3,opt,name=annotation_passthrough,json=annotationPassthrough,proto3" json:"annotation_passthrough,omitempty"` + // The event notifications that is returned back to AppPlatform. Typically it + // will then be configured to be consumed/forwared to a operator that handles + // events, such as Pub/Sub operator. + Events []*AppPlatformEventBody `protobuf:"bytes,4,rep,name=events,proto3" json:"events,omitempty"` +} + +func (x *AppPlatformCloudFunctionResponse) Reset() { + *x = AppPlatformCloudFunctionResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformCloudFunctionResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformCloudFunctionResponse) ProtoMessage() {} + +func (x *AppPlatformCloudFunctionResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 AppPlatformCloudFunctionResponse.ProtoReflect.Descriptor instead. +func (*AppPlatformCloudFunctionResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{16} +} + +func (x *AppPlatformCloudFunctionResponse) GetAnnotations() []*AppPlatformCloudFunctionResponse_StructedOutputAnnotation { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *AppPlatformCloudFunctionResponse) GetAnnotationPassthrough() bool { + if x != nil { + return x.AnnotationPassthrough + } + return false +} + +func (x *AppPlatformCloudFunctionResponse) GetEvents() []*AppPlatformEventBody { + if x != nil { + return x.Events + } + return nil +} + +// Message of content of appPlatform event +type AppPlatformEventBody struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Human readable string of the event like "There are more than 6 people in + // the scene". or "Shelf is empty!". + EventMessage string `protobuf:"bytes,1,opt,name=event_message,json=eventMessage,proto3" json:"event_message,omitempty"` + // For the case of Pub/Sub, it will be stored in the message attributes. + // ​​pubsub.proto + Payload *structpb.Struct `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + // User defined Event Id, used to classify event, within a delivery interval, + // events from the same application instance with the same id will be + // de-duplicated & only first one will be sent out. Empty event_id will be + // treated as "". + EventId string `protobuf:"bytes,3,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` +} + +func (x *AppPlatformEventBody) Reset() { + *x = AppPlatformEventBody{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformEventBody) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformEventBody) ProtoMessage() {} + +func (x *AppPlatformEventBody) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 AppPlatformEventBody.ProtoReflect.Descriptor instead. +func (*AppPlatformEventBody) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{17} +} + +func (x *AppPlatformEventBody) GetEventMessage() string { + if x != nil { + return x.EventMessage + } + return "" +} + +func (x *AppPlatformEventBody) GetPayload() *structpb.Struct { + if x != nil { + return x.Payload + } + return nil +} + +func (x *AppPlatformEventBody) GetEventId() string { + if x != nil { + return x.EventId + } + return "" +} + +// The entity info for annotations from person detection prediction result. +type PersonalProtectiveEquipmentDetectionOutput_PersonEntity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Entity id. + PersonEntityId int64 `protobuf:"varint,1,opt,name=person_entity_id,json=personEntityId,proto3" json:"person_entity_id,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_PersonEntity{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_PersonEntity) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 PersonalProtectiveEquipmentDetectionOutput_PersonEntity.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_PersonEntity) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonEntity) GetPersonEntityId() int64 { + if x != nil { + return x.PersonEntityId + } + return 0 +} + +// The entity info for annotations from PPE detection prediction result. +type PersonalProtectiveEquipmentDetectionOutput_PPEEntity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Label id. + PpeLabelId int64 `protobuf:"varint,1,opt,name=ppe_label_id,json=ppeLabelId,proto3" json:"ppe_label_id,omitempty"` + // Human readable string of the label (Examples: helmet, glove, mask). + PpeLabelString string `protobuf:"bytes,2,opt,name=ppe_label_string,json=ppeLabelString,proto3" json:"ppe_label_string,omitempty"` + // Human readable string of the super category label (Examples: head_cover, + // hands_cover, face_cover). + PpeSupercategoryLabelString string `protobuf:"bytes,3,opt,name=ppe_supercategory_label_string,json=ppeSupercategoryLabelString,proto3" json:"ppe_supercategory_label_string,omitempty"` + // Entity id. + PpeEntityId int64 `protobuf:"varint,4,opt,name=ppe_entity_id,json=ppeEntityId,proto3" json:"ppe_entity_id,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_PPEEntity{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_PPEEntity) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 PersonalProtectiveEquipmentDetectionOutput_PPEEntity.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_PPEEntity) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeLabelId() int64 { + if x != nil { + return x.PpeLabelId + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeLabelString() string { + if x != nil { + return x.PpeLabelString + } + return "" +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeSupercategoryLabelString() string { + if x != nil { + return x.PpeSupercategoryLabelString + } + return "" +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEEntity) GetPpeEntityId() int64 { + if x != nil { + return x.PpeEntityId + } + return 0 +} + +// Bounding Box in the normalized coordinates. +type PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Min in x coordinate. + Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"` + // Min in y coordinate. + Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"` + // Width of the bounding box. + Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"` + // Height of the bounding box. + Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_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 PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 2} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetXmin() float32 { + if x != nil { + return x.Xmin + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetYmin() float32 { + if x != nil { + return x.Ymin + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetWidth() float32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox) GetHeight() float32 { + if x != nil { + return x.Height + } + return 0 +} + +// PersonIdentified box contains the location and the entity info of the +// person. +type PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id for this box. + BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"` + // Bounding Box in the normalized coordinates. + NormalizedBoundingBox *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"` + // Confidence score associated with this box. + ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` + // Person entity info. + PersonEntity *PersonalProtectiveEquipmentDetectionOutput_PersonEntity `protobuf:"bytes,4,opt,name=person_entity,json=personEntity,proto3" json:"person_entity,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[21] + 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 PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 3} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetBoxId() int64 { + if x != nil { + return x.BoxId + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetNormalizedBoundingBox() *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox { + if x != nil { + return x.NormalizedBoundingBox + } + return nil +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetConfidenceScore() float32 { + if x != nil { + return x.ConfidenceScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox) GetPersonEntity() *PersonalProtectiveEquipmentDetectionOutput_PersonEntity { + if x != nil { + return x.PersonEntity + } + return nil +} + +// PPEIdentified box contains the location and the entity info of the PPE. +type PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id for this box. + BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"` + // Bounding Box in the normalized coordinates. + NormalizedBoundingBox *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"` + // Confidence score associated with this box. + ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` + // PPE entity info. + PpeEntity *PersonalProtectiveEquipmentDetectionOutput_PPEEntity `protobuf:"bytes,4,opt,name=ppe_entity,json=ppeEntity,proto3" json:"ppe_entity,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[22] + 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 PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 4} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetBoxId() int64 { + if x != nil { + return x.BoxId + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetNormalizedBoundingBox() *PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox { + if x != nil { + return x.NormalizedBoundingBox + } + return nil +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetConfidenceScore() float32 { + if x != nil { + return x.ConfidenceScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox) GetPpeEntity() *PersonalProtectiveEquipmentDetectionOutput_PPEEntity { + if x != nil { + return x.PpeEntity + } + return nil +} + +// Detected Person contains the detected person and their associated +// ppes and their protecting information. +type PersonalProtectiveEquipmentDetectionOutput_DetectedPerson struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The id of detected person. + PersonId int64 `protobuf:"varint,1,opt,name=person_id,json=personId,proto3" json:"person_id,omitempty"` + // The info of detected person identified box. + DetectedPersonIdentifiedBox *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox `protobuf:"bytes,2,opt,name=detected_person_identified_box,json=detectedPersonIdentifiedBox,proto3" json:"detected_person_identified_box,omitempty"` + // The info of detected person associated ppe identified boxes. + DetectedPpeIdentifiedBoxes []*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox `protobuf:"bytes,3,rep,name=detected_ppe_identified_boxes,json=detectedPpeIdentifiedBoxes,proto3" json:"detected_ppe_identified_boxes,omitempty"` + // Coverage score for each body part. + // Coverage score for face. + FaceCoverageScore *float32 `protobuf:"fixed32,4,opt,name=face_coverage_score,json=faceCoverageScore,proto3,oneof" json:"face_coverage_score,omitempty"` + // Coverage score for eyes. + EyesCoverageScore *float32 `protobuf:"fixed32,5,opt,name=eyes_coverage_score,json=eyesCoverageScore,proto3,oneof" json:"eyes_coverage_score,omitempty"` + // Coverage score for head. + HeadCoverageScore *float32 `protobuf:"fixed32,6,opt,name=head_coverage_score,json=headCoverageScore,proto3,oneof" json:"head_coverage_score,omitempty"` + // Coverage score for hands. + HandsCoverageScore *float32 `protobuf:"fixed32,7,opt,name=hands_coverage_score,json=handsCoverageScore,proto3,oneof" json:"hands_coverage_score,omitempty"` + // Coverage score for body. + BodyCoverageScore *float32 `protobuf:"fixed32,8,opt,name=body_coverage_score,json=bodyCoverageScore,proto3,oneof" json:"body_coverage_score,omitempty"` + // Coverage score for feet. + FeetCoverageScore *float32 `protobuf:"fixed32,9,opt,name=feet_coverage_score,json=feetCoverageScore,proto3,oneof" json:"feet_coverage_score,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) Reset() { + *x = PersonalProtectiveEquipmentDetectionOutput_DetectedPerson{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[23] + 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 PersonalProtectiveEquipmentDetectionOutput_DetectedPerson.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{0, 5} +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetPersonId() int64 { + if x != nil { + return x.PersonId + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetDetectedPersonIdentifiedBox() *PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox { + if x != nil { + return x.DetectedPersonIdentifiedBox + } + return nil +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetDetectedPpeIdentifiedBoxes() []*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox { + if x != nil { + return x.DetectedPpeIdentifiedBoxes + } + return nil +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetFaceCoverageScore() float32 { + if x != nil && x.FaceCoverageScore != nil { + return *x.FaceCoverageScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetEyesCoverageScore() float32 { + if x != nil && x.EyesCoverageScore != nil { + return *x.EyesCoverageScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetHeadCoverageScore() float32 { + if x != nil && x.HeadCoverageScore != nil { + return *x.HeadCoverageScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetHandsCoverageScore() float32 { + if x != nil && x.HandsCoverageScore != nil { + return *x.HandsCoverageScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetBodyCoverageScore() float32 { + if x != nil && x.BodyCoverageScore != nil { + return *x.BodyCoverageScore + } + return 0 +} + +func (x *PersonalProtectiveEquipmentDetectionOutput_DetectedPerson) GetFeetCoverageScore() float32 { + if x != nil && x.FeetCoverageScore != nil { + return *x.FeetCoverageScore + } + return 0 +} + +// The entity info for annotations from object detection prediction result. +type ObjectDetectionPredictionResult_Entity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Label id. + LabelId int64 `protobuf:"varint,1,opt,name=label_id,json=labelId,proto3" json:"label_id,omitempty"` + // Human readable string of the label. + LabelString string `protobuf:"bytes,2,opt,name=label_string,json=labelString,proto3" json:"label_string,omitempty"` +} + +func (x *ObjectDetectionPredictionResult_Entity) Reset() { + *x = ObjectDetectionPredictionResult_Entity{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ObjectDetectionPredictionResult_Entity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ObjectDetectionPredictionResult_Entity) ProtoMessage() {} + +func (x *ObjectDetectionPredictionResult_Entity) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[24] + 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 ObjectDetectionPredictionResult_Entity.ProtoReflect.Descriptor instead. +func (*ObjectDetectionPredictionResult_Entity) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *ObjectDetectionPredictionResult_Entity) GetLabelId() int64 { + if x != nil { + return x.LabelId + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_Entity) GetLabelString() string { + if x != nil { + return x.LabelString + } + return "" +} + +// Identified box contains location and the entity of the object. +type ObjectDetectionPredictionResult_IdentifiedBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id for this box. + BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"` + // Bounding Box in the normalized coordinates. + NormalizedBoundingBox *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"` + // Confidence score associated with this box. + ConfidenceScore float32 `protobuf:"fixed32,3,opt,name=confidence_score,json=confidenceScore,proto3" json:"confidence_score,omitempty"` + // Entity of this box. + Entity *ObjectDetectionPredictionResult_Entity `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"` +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) Reset() { + *x = ObjectDetectionPredictionResult_IdentifiedBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ObjectDetectionPredictionResult_IdentifiedBox) ProtoMessage() {} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[25] + 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 ObjectDetectionPredictionResult_IdentifiedBox.ProtoReflect.Descriptor instead. +func (*ObjectDetectionPredictionResult_IdentifiedBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 1} +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetBoxId() int64 { + if x != nil { + return x.BoxId + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetNormalizedBoundingBox() *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox { + if x != nil { + return x.NormalizedBoundingBox + } + return nil +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetConfidenceScore() float32 { + if x != nil { + return x.ConfidenceScore + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox) GetEntity() *ObjectDetectionPredictionResult_Entity { + if x != nil { + return x.Entity + } + return nil +} + +// Bounding Box in the normalized coordinates. +type ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Min in x coordinate. + Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"` + // Min in y coordinate. + Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"` + // Width of the bounding box. + Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"` + // Height of the bounding box. + Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) Reset() { + *x = ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoMessage() {} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[26] + 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 ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox.ProtoReflect.Descriptor instead. +func (*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{1, 1, 0} +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetXmin() float32 { + if x != nil { + return x.Xmin + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetYmin() float32 { + if x != nil { + return x.Ymin + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetWidth() float32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetHeight() float32 { + if x != nil { + return x.Height + } + return 0 +} + +// Each IdentifiedAction is one particular identification of an action +// specified with the AnnotationSpec id, display_name and the associated +// confidence score. +type VideoActionRecognitionPredictionResult_IdentifiedAction struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource ID of the AnnotationSpec that had been identified. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The display name of the AnnotationSpec that had been identified. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // The Model's confidence in correction of this identification, higher + // value means higher confidence. + Confidence float32 `protobuf:"fixed32,3,opt,name=confidence,proto3" json:"confidence,omitempty"` +} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) Reset() { + *x = VideoActionRecognitionPredictionResult_IdentifiedAction{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoActionRecognitionPredictionResult_IdentifiedAction) ProtoMessage() {} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[27] + 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 VideoActionRecognitionPredictionResult_IdentifiedAction.ProtoReflect.Descriptor instead. +func (*VideoActionRecognitionPredictionResult_IdentifiedAction) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *VideoActionRecognitionPredictionResult_IdentifiedAction) GetConfidence() float32 { + if x != nil { + return x.Confidence + } + return 0 +} + +// Boundingbox for detected object. I.e. the rectangle over the video frame +// pinpointing the found AnnotationSpec. The coordinates are relative to the +// frame size, and the point 0,0 is in the top left of the frame. +type VideoObjectTrackingPredictionResult_BoundingBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The leftmost coordinate of the bounding box. + XMin float32 `protobuf:"fixed32,1,opt,name=x_min,json=xMin,proto3" json:"x_min,omitempty"` + // The rightmost coordinate of the bounding box. + XMax float32 `protobuf:"fixed32,2,opt,name=x_max,json=xMax,proto3" json:"x_max,omitempty"` + // The topmost coordinate of the bounding box. + YMin float32 `protobuf:"fixed32,3,opt,name=y_min,json=yMin,proto3" json:"y_min,omitempty"` + // The bottommost coordinate of the bounding box. + YMax float32 `protobuf:"fixed32,4,opt,name=y_max,json=yMax,proto3" json:"y_max,omitempty"` +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) Reset() { + *x = VideoObjectTrackingPredictionResult_BoundingBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoObjectTrackingPredictionResult_BoundingBox) ProtoMessage() {} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[28] + 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 VideoObjectTrackingPredictionResult_BoundingBox.ProtoReflect.Descriptor instead. +func (*VideoObjectTrackingPredictionResult_BoundingBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetXMin() float32 { + if x != nil { + return x.XMin + } + return 0 +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetXMax() float32 { + if x != nil { + return x.XMax + } + return 0 +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetYMin() float32 { + if x != nil { + return x.YMin + } + return 0 +} + +func (x *VideoObjectTrackingPredictionResult_BoundingBox) GetYMax() float32 { + if x != nil { + return x.YMax + } + return 0 +} + +// Each DetectedObject is one particular identification of an object +// specified with the AnnotationSpec id and display_name, the bounding box, +// the associated confidence score and the corresponding track_id. +type VideoObjectTrackingPredictionResult_DetectedObject struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource ID of the AnnotationSpec that had been identified. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The display name of the AnnotationSpec that had been identified. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Boundingbox. + BoundingBox *VideoObjectTrackingPredictionResult_BoundingBox `protobuf:"bytes,3,opt,name=bounding_box,json=boundingBox,proto3" json:"bounding_box,omitempty"` + // The Model's confidence in correction of this identification, higher + // value means higher confidence. + Confidence float32 `protobuf:"fixed32,4,opt,name=confidence,proto3" json:"confidence,omitempty"` + // The same object may be identified on muitiple frames which are typical + // adjacent. The set of frames where a particular object has been detected + // form a track. This track_id can be used to trace down all frames for an + // detected object. + TrackId int64 `protobuf:"varint,5,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) Reset() { + *x = VideoObjectTrackingPredictionResult_DetectedObject{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoObjectTrackingPredictionResult_DetectedObject) ProtoMessage() {} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[29] + 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 VideoObjectTrackingPredictionResult_DetectedObject.ProtoReflect.Descriptor instead. +func (*VideoObjectTrackingPredictionResult_DetectedObject) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{6, 1} +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetBoundingBox() *VideoObjectTrackingPredictionResult_BoundingBox { + if x != nil { + return x.BoundingBox + } + return nil +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetConfidence() float32 { + if x != nil { + return x.Confidence + } + return 0 +} + +func (x *VideoObjectTrackingPredictionResult_DetectedObject) GetTrackId() int64 { + if x != nil { + return x.TrackId + } + return 0 +} + +// Each IdentifiedClassification is one particular identification of an +// classification specified with the AnnotationSpec id and display_name, +// and the associated confidence score. +type VideoClassificationPredictionResult_IdentifiedClassification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource ID of the AnnotationSpec that had been identified. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The display name of the AnnotationSpec that had been identified. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // The Model's confidence in correction of this identification, higher + // value means higher confidence. + Confidence float32 `protobuf:"fixed32,3,opt,name=confidence,proto3" json:"confidence,omitempty"` +} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) Reset() { + *x = VideoClassificationPredictionResult_IdentifiedClassification{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoClassificationPredictionResult_IdentifiedClassification) ProtoMessage() {} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[30] + 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 VideoClassificationPredictionResult_IdentifiedClassification.ProtoReflect.Descriptor instead. +func (*VideoClassificationPredictionResult_IdentifiedClassification) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *VideoClassificationPredictionResult_IdentifiedClassification) GetConfidence() float32 { + if x != nil { + return x.Confidence + } + return 0 +} + +// The entity info for annotations from occupancy counting operator. +type OccupancyCountingPredictionResult_Entity struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Label id. + LabelId int64 `protobuf:"varint,1,opt,name=label_id,json=labelId,proto3" json:"label_id,omitempty"` + // Human readable string of the label. + LabelString string `protobuf:"bytes,2,opt,name=label_string,json=labelString,proto3" json:"label_string,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Entity) Reset() { + *x = OccupancyCountingPredictionResult_Entity{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Entity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Entity) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Entity) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[31] + 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 OccupancyCountingPredictionResult_Entity.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Entity) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *OccupancyCountingPredictionResult_Entity) GetLabelId() int64 { + if x != nil { + return x.LabelId + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_Entity) GetLabelString() string { + if x != nil { + return x.LabelString + } + return "" +} + +// Identified box contains location and the entity of the object. +type OccupancyCountingPredictionResult_IdentifiedBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id for this box. + BoxId int64 `protobuf:"varint,1,opt,name=box_id,json=boxId,proto3" json:"box_id,omitempty"` + // Bounding Box in the normalized coordinates. + NormalizedBoundingBox *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox `protobuf:"bytes,2,opt,name=normalized_bounding_box,json=normalizedBoundingBox,proto3" json:"normalized_bounding_box,omitempty"` + // Confidence score associated with this box. + Score float32 `protobuf:"fixed32,3,opt,name=score,proto3" json:"score,omitempty"` + // Entity of this box. + Entity *OccupancyCountingPredictionResult_Entity `protobuf:"bytes,4,opt,name=entity,proto3" json:"entity,omitempty"` + // An unique id to identify a track. It should be consistent across frames. + // It only exists if tracking is enabled. + TrackId int64 `protobuf:"varint,5,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) Reset() { + *x = OccupancyCountingPredictionResult_IdentifiedBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_IdentifiedBox) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[32] + 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 OccupancyCountingPredictionResult_IdentifiedBox.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_IdentifiedBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 1} +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetBoxId() int64 { + if x != nil { + return x.BoxId + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetNormalizedBoundingBox() *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox { + if x != nil { + return x.NormalizedBoundingBox + } + return nil +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetScore() float32 { + if x != nil { + return x.Score + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetEntity() *OccupancyCountingPredictionResult_Entity { + if x != nil { + return x.Entity + } + return nil +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox) GetTrackId() int64 { + if x != nil { + return x.TrackId + } + return 0 +} + +// The statistics info for annotations from occupancy counting operator. +type OccupancyCountingPredictionResult_Stats struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Counts of the full frame. + FullFrameCount []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,1,rep,name=full_frame_count,json=fullFrameCount,proto3" json:"full_frame_count,omitempty"` + // Crossing line counts. + CrossingLineCounts []*OccupancyCountingPredictionResult_Stats_CrossingLineCount `protobuf:"bytes,2,rep,name=crossing_line_counts,json=crossingLineCounts,proto3" json:"crossing_line_counts,omitempty"` + // Active zone counts. + ActiveZoneCounts []*OccupancyCountingPredictionResult_Stats_ActiveZoneCount `protobuf:"bytes,3,rep,name=active_zone_counts,json=activeZoneCounts,proto3" json:"active_zone_counts,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Stats) Reset() { + *x = OccupancyCountingPredictionResult_Stats{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Stats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Stats) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Stats) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[33] + 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 OccupancyCountingPredictionResult_Stats.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Stats) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2} +} + +func (x *OccupancyCountingPredictionResult_Stats) GetFullFrameCount() []*OccupancyCountingPredictionResult_Stats_ObjectCount { + if x != nil { + return x.FullFrameCount + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats) GetCrossingLineCounts() []*OccupancyCountingPredictionResult_Stats_CrossingLineCount { + if x != nil { + return x.CrossingLineCounts + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats) GetActiveZoneCounts() []*OccupancyCountingPredictionResult_Stats_ActiveZoneCount { + if x != nil { + return x.ActiveZoneCounts + } + return nil +} + +// The track info for annotations from occupancy counting operator. +type OccupancyCountingPredictionResult_TrackInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id to identify a track. It should be consistent across frames. + TrackId string `protobuf:"bytes,1,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` + // Start timestamp of this track. + StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_TrackInfo) Reset() { + *x = OccupancyCountingPredictionResult_TrackInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_TrackInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_TrackInfo) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_TrackInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[34] + 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 OccupancyCountingPredictionResult_TrackInfo.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_TrackInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 3} +} + +func (x *OccupancyCountingPredictionResult_TrackInfo) GetTrackId() string { + if x != nil { + return x.TrackId + } + return "" +} + +func (x *OccupancyCountingPredictionResult_TrackInfo) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +// The dwell time info for annotations from occupancy counting operator. +type OccupancyCountingPredictionResult_DwellTimeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // An unique id to identify a track. It should be consistent across frames. + TrackId string `protobuf:"bytes,1,opt,name=track_id,json=trackId,proto3" json:"track_id,omitempty"` + // The unique id for the zone in which the object is dwelling/waiting. + ZoneId string `protobuf:"bytes,2,opt,name=zone_id,json=zoneId,proto3" json:"zone_id,omitempty"` + // The beginning time when a dwelling object has been identified in a zone. + DwellStartTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=dwell_start_time,json=dwellStartTime,proto3" json:"dwell_start_time,omitempty"` + // The end time when a dwelling object has exited in a zone. + DwellEndTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=dwell_end_time,json=dwellEndTime,proto3" json:"dwell_end_time,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) Reset() { + *x = OccupancyCountingPredictionResult_DwellTimeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_DwellTimeInfo) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[35] + 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 OccupancyCountingPredictionResult_DwellTimeInfo.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_DwellTimeInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 4} +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetTrackId() string { + if x != nil { + return x.TrackId + } + return "" +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetZoneId() string { + if x != nil { + return x.ZoneId + } + return "" +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetDwellStartTime() *timestamppb.Timestamp { + if x != nil { + return x.DwellStartTime + } + return nil +} + +func (x *OccupancyCountingPredictionResult_DwellTimeInfo) GetDwellEndTime() *timestamppb.Timestamp { + if x != nil { + return x.DwellEndTime + } + return nil +} + +// Bounding Box in the normalized coordinates. +type OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Min in x coordinate. + Xmin float32 `protobuf:"fixed32,1,opt,name=xmin,proto3" json:"xmin,omitempty"` + // Min in y coordinate. + Ymin float32 `protobuf:"fixed32,2,opt,name=ymin,proto3" json:"ymin,omitempty"` + // Width of the bounding box. + Width float32 `protobuf:"fixed32,3,opt,name=width,proto3" json:"width,omitempty"` + // Height of the bounding box. + Height float32 `protobuf:"fixed32,4,opt,name=height,proto3" json:"height,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) Reset() { + *x = OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[36] + 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 OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 1, 0} +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetXmin() float32 { + if x != nil { + return x.Xmin + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetYmin() float32 { + if x != nil { + return x.Ymin + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetWidth() float32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox) GetHeight() float32 { + if x != nil { + return x.Height + } + return 0 +} + +// The object info and instant count for annotations from occupancy counting +// operator. +type OccupancyCountingPredictionResult_Stats_ObjectCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Entity of this object. + Entity *OccupancyCountingPredictionResult_Entity `protobuf:"bytes,1,opt,name=entity,proto3" json:"entity,omitempty"` + // Count of the object. + Count int32 `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) Reset() { + *x = OccupancyCountingPredictionResult_Stats_ObjectCount{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Stats_ObjectCount) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[37] + 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 OccupancyCountingPredictionResult_Stats_ObjectCount.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Stats_ObjectCount) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 0} +} + +func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) GetEntity() *OccupancyCountingPredictionResult_Entity { + if x != nil { + return x.Entity + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_ObjectCount) GetCount() int32 { + if x != nil { + return x.Count + } + return 0 +} + +// The object info and accumulated count for annotations from occupancy +// counting operator. +type OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The start time of the accumulated count. + StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The object count for the accumulated count. + ObjectCount *OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,opt,name=object_count,json=objectCount,proto3" json:"object_count,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) Reset() { + *x = OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[38] + 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 OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 1} +} + +func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount) GetObjectCount() *OccupancyCountingPredictionResult_Stats_ObjectCount { + if x != nil { + return x.ObjectCount + } + return nil +} + +// Message for Crossing line count. +type OccupancyCountingPredictionResult_Stats_CrossingLineCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Line annotation from the user. + Annotation *StreamAnnotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` + // The direction that follows the right hand rule. + PositiveDirectionCounts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,rep,name=positive_direction_counts,json=positiveDirectionCounts,proto3" json:"positive_direction_counts,omitempty"` + // The direction that is opposite to the right hand rule. + NegativeDirectionCounts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,3,rep,name=negative_direction_counts,json=negativeDirectionCounts,proto3" json:"negative_direction_counts,omitempty"` + // The accumulated positive count. + AccumulatedPositiveDirectionCounts []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount `protobuf:"bytes,4,rep,name=accumulated_positive_direction_counts,json=accumulatedPositiveDirectionCounts,proto3" json:"accumulated_positive_direction_counts,omitempty"` + // The accumulated negative count. + AccumulatedNegativeDirectionCounts []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount `protobuf:"bytes,5,rep,name=accumulated_negative_direction_counts,json=accumulatedNegativeDirectionCounts,proto3" json:"accumulated_negative_direction_counts,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) Reset() { + *x = OccupancyCountingPredictionResult_Stats_CrossingLineCount{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Stats_CrossingLineCount) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[39] + 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 OccupancyCountingPredictionResult_Stats_CrossingLineCount.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Stats_CrossingLineCount) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 2} +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAnnotation() *StreamAnnotation { + if x != nil { + return x.Annotation + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetPositiveDirectionCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount { + if x != nil { + return x.PositiveDirectionCounts + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetNegativeDirectionCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount { + if x != nil { + return x.NegativeDirectionCounts + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAccumulatedPositiveDirectionCounts() []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount { + if x != nil { + return x.AccumulatedPositiveDirectionCounts + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_CrossingLineCount) GetAccumulatedNegativeDirectionCounts() []*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount { + if x != nil { + return x.AccumulatedNegativeDirectionCounts + } + return nil +} + +// Message for the active zone count. +type OccupancyCountingPredictionResult_Stats_ActiveZoneCount struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Active zone annotation from the user. + Annotation *StreamAnnotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` + // Counts in the zone. + Counts []*OccupancyCountingPredictionResult_Stats_ObjectCount `protobuf:"bytes,2,rep,name=counts,proto3" json:"counts,omitempty"` +} + +func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) Reset() { + *x = OccupancyCountingPredictionResult_Stats_ActiveZoneCount{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountingPredictionResult_Stats_ActiveZoneCount) ProtoMessage() {} + +func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[40] + 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 OccupancyCountingPredictionResult_Stats_ActiveZoneCount.ProtoReflect.Descriptor instead. +func (*OccupancyCountingPredictionResult_Stats_ActiveZoneCount) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{8, 2, 3} +} + +func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) GetAnnotation() *StreamAnnotation { + if x != nil { + return x.Annotation + } + return nil +} + +func (x *OccupancyCountingPredictionResult_Stats_ActiveZoneCount) GetCounts() []*OccupancyCountingPredictionResult_Stats_ObjectCount { + if x != nil { + return x.Counts + } + return nil +} + +// A general annotation message that uses struct format to represent different +// concrete annotation protobufs. +type AppPlatformCloudFunctionRequest_StructedInputAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The ingestion time of the current annotation. + IngestionTimeMicros int64 `protobuf:"varint,1,opt,name=ingestion_time_micros,json=ingestionTimeMicros,proto3" json:"ingestion_time_micros,omitempty"` + // The struct format of the actual annotation. + Annotation *structpb.Struct `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"` +} + +func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) Reset() { + *x = AppPlatformCloudFunctionRequest_StructedInputAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformCloudFunctionRequest_StructedInputAnnotation) ProtoMessage() {} + +func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[41] + 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 AppPlatformCloudFunctionRequest_StructedInputAnnotation.ProtoReflect.Descriptor instead. +func (*AppPlatformCloudFunctionRequest_StructedInputAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{15, 0} +} + +func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) GetIngestionTimeMicros() int64 { + if x != nil { + return x.IngestionTimeMicros + } + return 0 +} + +func (x *AppPlatformCloudFunctionRequest_StructedInputAnnotation) GetAnnotation() *structpb.Struct { + if x != nil { + return x.Annotation + } + return nil +} + +// A general annotation message that uses struct format to represent different +// concrete annotation protobufs. +type AppPlatformCloudFunctionResponse_StructedOutputAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The struct format of the actual annotation. + Annotation *structpb.Struct `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` +} + +func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) Reset() { + *x = AppPlatformCloudFunctionResponse_StructedOutputAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AppPlatformCloudFunctionResponse_StructedOutputAnnotation) ProtoMessage() {} + +func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_annotations_proto_msgTypes[42] + 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 AppPlatformCloudFunctionResponse_StructedOutputAnnotation.ProtoReflect.Descriptor instead. +func (*AppPlatformCloudFunctionResponse_StructedOutputAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP(), []int{16, 0} +} + +func (x *AppPlatformCloudFunctionResponse_StructedOutputAnnotation) GetAnnotation() *structpb.Struct { + if x != nil { + return x.Annotation + } + return nil +} + +var File_google_cloud_visionai_v1_annotations_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_annotations_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 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, 0xd5, 0x10, 0x0a, 0x2a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, + 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x7e, 0x0a, 0x10, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, + 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, + 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, + 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x2e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x73, 0x1a, 0x38, 0x0a, 0x0c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, 0x1a, 0xc0, 0x01, + 0x0a, 0x09, 0x50, 0x50, 0x45, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x20, 0x0a, 0x0c, 0x70, + 0x70, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x70, 0x70, 0x65, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x28, 0x0a, + 0x10, 0x70, 0x70, 0x65, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x70, 0x65, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x43, 0x0a, 0x1e, 0x70, 0x70, 0x65, 0x5f, 0x73, + 0x75, 0x70, 0x65, 0x72, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x1b, 0x70, 0x70, 0x65, 0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x0d, + 0x70, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0b, 0x70, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x64, + 0x1a, 0x6d, 0x0a, 0x15, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x6d, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, 0x6d, 0x69, + 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, + 0xe4, 0x02, 0x0a, 0x13, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x92, + 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, + 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x15, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x76, + 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x1a, 0xd8, 0x02, 0x0a, 0x10, 0x50, 0x50, 0x45, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, 0x0a, 0x06, 0x62, + 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x6f, 0x78, + 0x49, 0x64, 0x12, 0x92, 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, + 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, + 0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, + 0x72, 0x65, 0x12, 0x6d, 0x0a, 0x0a, 0x70, 0x70, 0x65, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, 0x50, 0x50, 0x45, + 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x09, 0x70, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x1a, 0xb9, 0x06, 0x0a, 0x0e, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, + 0x64, 0x12, 0x9d, 0x01, 0x0a, 0x1e, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, + 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x42, 0x6f, 0x78, 0x52, 0x1b, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, + 0x78, 0x12, 0x98, 0x01, 0x0a, 0x1d, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x70, + 0x70, 0x65, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, 0x6f, + 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2e, + 0x50, 0x50, 0x45, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, + 0x52, 0x1a, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x50, 0x70, 0x65, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x13, + 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x11, 0x66, 0x61, 0x63, + 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x13, 0x65, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, + 0x52, 0x11, 0x65, 0x79, 0x65, 0x73, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, + 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x11, 0x68, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x68, + 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x12, 0x68, 0x61, 0x6e, + 0x64, 0x73, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, + 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, + 0x04, 0x52, 0x11, 0x62, 0x6f, 0x64, 0x79, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x66, 0x65, 0x65, 0x74, 0x5f, + 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x11, 0x66, 0x65, 0x65, 0x74, 0x43, 0x6f, 0x76, 0x65, + 0x72, 0x61, 0x67, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x65, 0x79, 0x65, 0x73, 0x5f, 0x63, 0x6f, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x66, 0x65, 0x65, 0x74, 0x5f, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x22, 0xd1, 0x05, + 0x0a, 0x1f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x72, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x62, + 0x6f, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x42, 0x6f, 0x78, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x6f, 0x78, 0x65, 0x73, 0x1a, 0x46, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0xb2, 0x03, 0x0a, + 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, + 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x95, 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, + 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, + 0x6e, 0x63, 0x65, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x1a, 0x6d, 0x0a, 0x15, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x78, + 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, + 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x06, 0x62, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x06, 0x62, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x1e, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x64, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x03, 0x69, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x71, 0x0a, 0x21, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x27, 0x0a, 0x0f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x8c, 0x03, 0x0a, 0x26, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x48, 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 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, + 0x52, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x6b, 0x0a, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x65, 0x0a, + 0x10, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, + 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x22, 0xef, 0x04, 0x0a, 0x23, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, 0x0a, 0x12, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 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, 0x52, 0x0e, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x66, 0x0a, 0x07, + 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4c, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x6f, 0x62, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x1a, 0x61, 0x0a, 0x0b, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x42, 0x6f, 0x78, 0x12, 0x13, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x69, 0x6e, 0x12, 0x13, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x61, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x4d, 0x61, 0x78, 0x12, 0x13, 0x0a, + 0x05, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, 0x4d, + 0x69, 0x6e, 0x12, 0x13, 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x04, 0x79, 0x4d, 0x61, 0x78, 0x1a, 0xec, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a, + 0x0c, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x0b, + 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, + 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x22, 0xa7, 0x03, 0x0a, 0x23, 0x56, 0x69, 0x64, 0x65, 0x6f, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x48, + 0x0a, 0x12, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 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, 0x52, 0x0e, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x56, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x1a, 0x6d, 0x0a, 0x18, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x22, 0xd3, 0x17, 0x0a, 0x21, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3d, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x74, 0x0a, 0x10, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, + 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x52, 0x0f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x41, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x73, 0x12, 0x64, 0x0a, 0x0a, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x71, 0x0a, 0x0f, 0x64, 0x77, + 0x65, 0x6c, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x49, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x2e, 0x44, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, + 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, + 0x03, 0x70, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x03, 0x70, 0x74, + 0x73, 0x88, 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x19, + 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x1a, 0xbc, 0x03, 0x0a, + 0x0d, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x6f, 0x78, 0x12, 0x15, + 0x0a, 0x06, 0x62, 0x6f, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, + 0x62, 0x6f, 0x78, 0x49, 0x64, 0x12, 0x97, 0x01, 0x0a, 0x17, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, + 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x5f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, + 0x6f, 0x78, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x52, 0x15, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, + 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, + 0x79, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x1a, 0x6d, 0x0a, 0x15, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x42, 0x6f, 0x75, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x04, 0x78, 0x6d, 0x69, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x6d, 0x69, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x79, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x1a, 0xef, 0x0c, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x10, 0x66, 0x75, 0x6c, 0x6c, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, + 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, + 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x0e, + 0x66, 0x75, 0x6c, 0x6c, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x85, + 0x01, 0x0a, 0x14, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, + 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, + 0x2e, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x12, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x7f, 0x0a, 0x12, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, + 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x10, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x7f, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x5a, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xc5, 0x01, 0x0a, 0x16, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x70, + 0x0a, 0x0c, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x1a, 0xd3, 0x05, 0x0a, 0x11, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x89, 0x01, 0x0a, 0x19, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x5f, + 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x17, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x89, + 0x01, 0x0a, 0x19, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, + 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x52, 0x17, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x25, 0x61, + 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x76, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x22, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, + 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x25, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6e, 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, + 0x65, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x58, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x22, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4e, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x76, 0x65, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0xc4, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x61, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x61, 0x0a, + 0x09, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, + 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x1a, 0xcb, 0x01, 0x0a, 0x0d, 0x44, 0x77, 0x65, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x49, 0x64, 0x12, 0x17, 0x0a, + 0x07, 0x7a, 0x6f, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x7a, 0x6f, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x10, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x0e, 0x64, 0x77, + 0x65, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0e, + 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 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, + 0x52, 0x0c, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x70, 0x74, 0x73, 0x22, 0xe9, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4e, 0x0a, 0x0b, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x0a, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x53, 0x0a, 0x0d, 0x63, + 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, + 0x48, 0x00, 0x52, 0x0c, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x6e, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x42, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x22, 0x6e, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x59, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x11, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0x70, 0x0a, 0x11, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, + 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x13, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x52, 0x12, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, 0x74, + 0x69, 0x63, 0x65, 0x73, 0x22, 0x71, 0x0a, 0x12, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x5b, 0x0a, 0x13, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x52, 0x12, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, + 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x10, 0x4e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x01, 0x79, 0x22, 0x8a, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x22, 0x82, 0x03, 0x0a, 0x1f, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x61, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x5f, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x13, 0x61, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x73, 0x0a, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0x86, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x15, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, + 0x69, 0x63, 0x72, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x69, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x73, + 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x52, 0x0a, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xed, 0x02, 0x0a, 0x20, 0x41, 0x70, + 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, + 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x75, + 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, + 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, 0x0a, 0x16, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x61, 0x73, 0x73, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x12, 0x46, 0x0a, 0x06, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x53, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 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, 0x52, 0x0a, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x41, 0x70, + 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x6f, + 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x31, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 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, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x49, 0x64, 0x2a, 0x90, 0x01, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, + 0x0a, 0x22, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, + 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x5a, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x28, + 0x0a, 0x24, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x4f, 0x53, 0x53, 0x49, 0x4e, + 0x47, 0x5f, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x42, 0xc0, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, + 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_annotations_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_annotations_proto_rawDescData = file_google_cloud_visionai_v1_annotations_proto_rawDesc +) + +func file_google_cloud_visionai_v1_annotations_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_annotations_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_annotations_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_annotations_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_annotations_proto_rawDescData +} + +var file_google_cloud_visionai_v1_annotations_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_visionai_v1_annotations_proto_msgTypes = make([]protoimpl.MessageInfo, 43) +var file_google_cloud_visionai_v1_annotations_proto_goTypes = []interface{}{ + (StreamAnnotationType)(0), // 0: google.cloud.visionai.v1.StreamAnnotationType + (*PersonalProtectiveEquipmentDetectionOutput)(nil), // 1: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput + (*ObjectDetectionPredictionResult)(nil), // 2: google.cloud.visionai.v1.ObjectDetectionPredictionResult + (*ImageObjectDetectionPredictionResult)(nil), // 3: google.cloud.visionai.v1.ImageObjectDetectionPredictionResult + (*ClassificationPredictionResult)(nil), // 4: google.cloud.visionai.v1.ClassificationPredictionResult + (*ImageSegmentationPredictionResult)(nil), // 5: google.cloud.visionai.v1.ImageSegmentationPredictionResult + (*VideoActionRecognitionPredictionResult)(nil), // 6: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult + (*VideoObjectTrackingPredictionResult)(nil), // 7: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult + (*VideoClassificationPredictionResult)(nil), // 8: google.cloud.visionai.v1.VideoClassificationPredictionResult + (*OccupancyCountingPredictionResult)(nil), // 9: google.cloud.visionai.v1.OccupancyCountingPredictionResult + (*StreamAnnotation)(nil), // 10: google.cloud.visionai.v1.StreamAnnotation + (*StreamAnnotations)(nil), // 11: google.cloud.visionai.v1.StreamAnnotations + (*NormalizedPolygon)(nil), // 12: google.cloud.visionai.v1.NormalizedPolygon + (*NormalizedPolyline)(nil), // 13: google.cloud.visionai.v1.NormalizedPolyline + (*NormalizedVertex)(nil), // 14: google.cloud.visionai.v1.NormalizedVertex + (*AppPlatformMetadata)(nil), // 15: google.cloud.visionai.v1.AppPlatformMetadata + (*AppPlatformCloudFunctionRequest)(nil), // 16: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest + (*AppPlatformCloudFunctionResponse)(nil), // 17: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse + (*AppPlatformEventBody)(nil), // 18: google.cloud.visionai.v1.AppPlatformEventBody + (*PersonalProtectiveEquipmentDetectionOutput_PersonEntity)(nil), // 19: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonEntity + (*PersonalProtectiveEquipmentDetectionOutput_PPEEntity)(nil), // 20: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEEntity + (*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox)(nil), // 21: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox + (*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox)(nil), // 22: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox + (*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox)(nil), // 23: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox + (*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson)(nil), // 24: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson + (*ObjectDetectionPredictionResult_Entity)(nil), // 25: google.cloud.visionai.v1.ObjectDetectionPredictionResult.Entity + (*ObjectDetectionPredictionResult_IdentifiedBox)(nil), // 26: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox + (*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox)(nil), // 27: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.NormalizedBoundingBox + (*VideoActionRecognitionPredictionResult_IdentifiedAction)(nil), // 28: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.IdentifiedAction + (*VideoObjectTrackingPredictionResult_BoundingBox)(nil), // 29: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.BoundingBox + (*VideoObjectTrackingPredictionResult_DetectedObject)(nil), // 30: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject + (*VideoClassificationPredictionResult_IdentifiedClassification)(nil), // 31: google.cloud.visionai.v1.VideoClassificationPredictionResult.IdentifiedClassification + (*OccupancyCountingPredictionResult_Entity)(nil), // 32: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity + (*OccupancyCountingPredictionResult_IdentifiedBox)(nil), // 33: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox + (*OccupancyCountingPredictionResult_Stats)(nil), // 34: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats + (*OccupancyCountingPredictionResult_TrackInfo)(nil), // 35: google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo + (*OccupancyCountingPredictionResult_DwellTimeInfo)(nil), // 36: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo + (*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox)(nil), // 37: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.NormalizedBoundingBox + (*OccupancyCountingPredictionResult_Stats_ObjectCount)(nil), // 38: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + (*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount)(nil), // 39: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount + (*OccupancyCountingPredictionResult_Stats_CrossingLineCount)(nil), // 40: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount + (*OccupancyCountingPredictionResult_Stats_ActiveZoneCount)(nil), // 41: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount + (*AppPlatformCloudFunctionRequest_StructedInputAnnotation)(nil), // 42: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation + (*AppPlatformCloudFunctionResponse_StructedOutputAnnotation)(nil), // 43: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation + (*timestamppb.Timestamp)(nil), // 44: google.protobuf.Timestamp + (*structpb.ListValue)(nil), // 45: google.protobuf.ListValue + (*structpb.Struct)(nil), // 46: google.protobuf.Struct +} +var file_google_cloud_visionai_v1_annotations_proto_depIdxs = []int32{ + 44, // 0: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.current_time:type_name -> google.protobuf.Timestamp + 24, // 1: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.detected_persons:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson + 44, // 2: google.cloud.visionai.v1.ObjectDetectionPredictionResult.current_time:type_name -> google.protobuf.Timestamp + 26, // 3: google.cloud.visionai.v1.ObjectDetectionPredictionResult.identified_boxes:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox + 45, // 4: google.cloud.visionai.v1.ImageObjectDetectionPredictionResult.bboxes:type_name -> google.protobuf.ListValue + 44, // 5: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp + 44, // 6: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp + 28, // 7: google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.actions:type_name -> google.cloud.visionai.v1.VideoActionRecognitionPredictionResult.IdentifiedAction + 44, // 8: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp + 44, // 9: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp + 30, // 10: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.objects:type_name -> google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject + 44, // 11: google.cloud.visionai.v1.VideoClassificationPredictionResult.segment_start_time:type_name -> google.protobuf.Timestamp + 44, // 12: google.cloud.visionai.v1.VideoClassificationPredictionResult.segment_end_time:type_name -> google.protobuf.Timestamp + 31, // 13: google.cloud.visionai.v1.VideoClassificationPredictionResult.classifications:type_name -> google.cloud.visionai.v1.VideoClassificationPredictionResult.IdentifiedClassification + 44, // 14: google.cloud.visionai.v1.OccupancyCountingPredictionResult.current_time:type_name -> google.protobuf.Timestamp + 33, // 15: google.cloud.visionai.v1.OccupancyCountingPredictionResult.identified_boxes:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox + 34, // 16: google.cloud.visionai.v1.OccupancyCountingPredictionResult.stats:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats + 35, // 17: google.cloud.visionai.v1.OccupancyCountingPredictionResult.track_info:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo + 36, // 18: google.cloud.visionai.v1.OccupancyCountingPredictionResult.dwell_time_info:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo + 12, // 19: google.cloud.visionai.v1.StreamAnnotation.active_zone:type_name -> google.cloud.visionai.v1.NormalizedPolygon + 13, // 20: google.cloud.visionai.v1.StreamAnnotation.crossing_line:type_name -> google.cloud.visionai.v1.NormalizedPolyline + 0, // 21: google.cloud.visionai.v1.StreamAnnotation.type:type_name -> google.cloud.visionai.v1.StreamAnnotationType + 10, // 22: google.cloud.visionai.v1.StreamAnnotations.stream_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation + 14, // 23: google.cloud.visionai.v1.NormalizedPolygon.normalized_vertices:type_name -> google.cloud.visionai.v1.NormalizedVertex + 14, // 24: google.cloud.visionai.v1.NormalizedPolyline.normalized_vertices:type_name -> google.cloud.visionai.v1.NormalizedVertex + 15, // 25: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.app_platform_metadata:type_name -> google.cloud.visionai.v1.AppPlatformMetadata + 42, // 26: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.annotations:type_name -> google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation + 43, // 27: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.annotations:type_name -> google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation + 18, // 28: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.events:type_name -> google.cloud.visionai.v1.AppPlatformEventBody + 46, // 29: google.cloud.visionai.v1.AppPlatformEventBody.payload:type_name -> google.protobuf.Struct + 21, // 30: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox + 19, // 31: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox.person_entity:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonEntity + 21, // 32: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.NormalizedBoundingBox + 20, // 33: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox.ppe_entity:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEEntity + 22, // 34: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson.detected_person_identified_box:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PersonIdentifiedBox + 23, // 35: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.DetectedPerson.detected_ppe_identified_boxes:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionOutput.PPEIdentifiedBox + 27, // 36: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.NormalizedBoundingBox + 25, // 37: google.cloud.visionai.v1.ObjectDetectionPredictionResult.IdentifiedBox.entity:type_name -> google.cloud.visionai.v1.ObjectDetectionPredictionResult.Entity + 29, // 38: google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.DetectedObject.bounding_box:type_name -> google.cloud.visionai.v1.VideoObjectTrackingPredictionResult.BoundingBox + 37, // 39: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.normalized_bounding_box:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.NormalizedBoundingBox + 32, // 40: google.cloud.visionai.v1.OccupancyCountingPredictionResult.IdentifiedBox.entity:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity + 38, // 41: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.full_frame_count:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + 40, // 42: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.crossing_line_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount + 41, // 43: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.active_zone_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount + 44, // 44: google.cloud.visionai.v1.OccupancyCountingPredictionResult.TrackInfo.start_time:type_name -> google.protobuf.Timestamp + 44, // 45: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo.dwell_start_time:type_name -> google.protobuf.Timestamp + 44, // 46: google.cloud.visionai.v1.OccupancyCountingPredictionResult.DwellTimeInfo.dwell_end_time:type_name -> google.protobuf.Timestamp + 32, // 47: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount.entity:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Entity + 44, // 48: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount.start_time:type_name -> google.protobuf.Timestamp + 38, // 49: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount.object_count:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + 10, // 50: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.annotation:type_name -> google.cloud.visionai.v1.StreamAnnotation + 38, // 51: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.positive_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + 38, // 52: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.negative_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + 39, // 53: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.accumulated_positive_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount + 39, // 54: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.CrossingLineCount.accumulated_negative_direction_counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.AccumulatedObjectCount + 10, // 55: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount.annotation:type_name -> google.cloud.visionai.v1.StreamAnnotation + 38, // 56: google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ActiveZoneCount.counts:type_name -> google.cloud.visionai.v1.OccupancyCountingPredictionResult.Stats.ObjectCount + 46, // 57: google.cloud.visionai.v1.AppPlatformCloudFunctionRequest.StructedInputAnnotation.annotation:type_name -> google.protobuf.Struct + 46, // 58: google.cloud.visionai.v1.AppPlatformCloudFunctionResponse.StructedOutputAnnotation.annotation:type_name -> google.protobuf.Struct + 59, // [59:59] is the sub-list for method output_type + 59, // [59:59] is the sub-list for method input_type + 59, // [59:59] is the sub-list for extension type_name + 59, // [59:59] is the sub-list for extension extendee + 0, // [0:59] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_annotations_proto_init() } +func file_google_cloud_visionai_v1_annotations_proto_init() { + if File_google_cloud_visionai_v1_annotations_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_annotations_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ObjectDetectionPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageObjectDetectionPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClassificationPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageSegmentationPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoActionRecognitionPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoObjectTrackingPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoClassificationPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamAnnotations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NormalizedPolygon); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NormalizedPolyline); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NormalizedVertex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformCloudFunctionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformCloudFunctionResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformEventBody); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PersonEntity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PPEEntity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_NormalizedBoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PersonIdentifiedBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_PPEIdentifiedBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionOutput_DetectedPerson); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ObjectDetectionPredictionResult_Entity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ObjectDetectionPredictionResult_IdentifiedBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ObjectDetectionPredictionResult_IdentifiedBox_NormalizedBoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoActionRecognitionPredictionResult_IdentifiedAction); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoObjectTrackingPredictionResult_BoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoObjectTrackingPredictionResult_DetectedObject); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoClassificationPredictionResult_IdentifiedClassification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Entity); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_IdentifiedBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Stats); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_TrackInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_DwellTimeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_IdentifiedBox_NormalizedBoundingBox); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Stats_ObjectCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Stats_AccumulatedObjectCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Stats_CrossingLineCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountingPredictionResult_Stats_ActiveZoneCount); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformCloudFunctionRequest_StructedInputAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AppPlatformCloudFunctionResponse_StructedOutputAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[8].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_annotations_proto_msgTypes[9].OneofWrappers = []interface{}{ + (*StreamAnnotation_ActiveZone)(nil), + (*StreamAnnotation_CrossingLine)(nil), + } + file_google_cloud_visionai_v1_annotations_proto_msgTypes[23].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_annotations_proto_rawDesc, + NumEnums: 1, + NumMessages: 43, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_annotations_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_annotations_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_annotations_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_annotations_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_annotations_proto = out.File + file_google_cloud_visionai_v1_annotations_proto_rawDesc = nil + file_google_cloud_visionai_v1_annotations_proto_goTypes = nil + file_google_cloud_visionai_v1_annotations_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/common.pb.go b/visionai/apiv1/visionaipb/common.pb.go new file mode 100755 index 00000000000..4dd74683270 --- /dev/null +++ b/visionai/apiv1/visionaipb/common.pb.go @@ -0,0 +1,573 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/common.proto + +package visionaipb + +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) +) + +// The current state of the cluster. +type Cluster_State int32 + +const ( + // Not set. + Cluster_STATE_UNSPECIFIED Cluster_State = 0 + // The PROVISIONING state indicates the cluster is being created. + Cluster_PROVISIONING Cluster_State = 1 + // The RUNNING state indicates the cluster has been created and is fully + // usable. + Cluster_RUNNING Cluster_State = 2 + // The STOPPING state indicates the cluster is being deleted. + Cluster_STOPPING Cluster_State = 3 + // The ERROR state indicates the cluster is unusable. It will be + // automatically deleted. + Cluster_ERROR Cluster_State = 4 +) + +// Enum value maps for Cluster_State. +var ( + Cluster_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "PROVISIONING", + 2: "RUNNING", + 3: "STOPPING", + 4: "ERROR", + } + Cluster_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "PROVISIONING": 1, + "RUNNING": 2, + "STOPPING": 3, + "ERROR": 4, + } +) + +func (x Cluster_State) Enum() *Cluster_State { + p := new(Cluster_State) + *p = x + return p +} + +func (x Cluster_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Cluster_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_common_proto_enumTypes[0].Descriptor() +} + +func (Cluster_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_common_proto_enumTypes[0] +} + +func (x Cluster_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Cluster_State.Descriptor instead. +func (Cluster_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_common_proto_rawDescGZIP(), []int{0, 0} +} + +// Message describing the Cluster object. +type Cluster struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations to allow clients to store small amounts of arbitrary data. + Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Output only. The DNS name of the data plane service + DataplaneServiceEndpoint string `protobuf:"bytes,6,opt,name=dataplane_service_endpoint,json=dataplaneServiceEndpoint,proto3" json:"dataplane_service_endpoint,omitempty"` + // Output only. The current state of the cluster. + State Cluster_State `protobuf:"varint,7,opt,name=state,proto3,enum=google.cloud.visionai.v1.Cluster_State" json:"state,omitempty"` + // Output only. The private service connection service target name. + PscTarget string `protobuf:"bytes,8,opt,name=psc_target,json=pscTarget,proto3" json:"psc_target,omitempty"` +} + +func (x *Cluster) Reset() { + *x = Cluster{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Cluster) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Cluster) ProtoMessage() {} + +func (x *Cluster) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_common_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 Cluster.ProtoReflect.Descriptor instead. +func (*Cluster) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_common_proto_rawDescGZIP(), []int{0} +} + +func (x *Cluster) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Cluster) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Cluster) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Cluster) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Cluster) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Cluster) GetDataplaneServiceEndpoint() string { + if x != nil { + return x.DataplaneServiceEndpoint + } + return "" +} + +func (x *Cluster) GetState() Cluster_State { + if x != nil { + return x.State + } + return Cluster_STATE_UNSPECIFIED +} + +func (x *Cluster) GetPscTarget() string { + if x != nil { + return x.PscTarget + } + return "" +} + +// Represents the metadata of the long-running operation. +type OperationMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. The time the operation was created. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The time the operation finished running. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Output only. Server-defined resource path for the target of the operation. + Target string `protobuf:"bytes,3,opt,name=target,proto3" json:"target,omitempty"` + // Output only. Name of the verb executed by the operation. + Verb string `protobuf:"bytes,4,opt,name=verb,proto3" json:"verb,omitempty"` + // Output only. Human-readable status of the operation, if any. + StatusMessage string `protobuf:"bytes,5,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // Output only. Identifies whether the user has requested cancellation + // of the operation. Operations that have successfully been cancelled + // have [Operation.error][] value with a + // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to + // `Code.CANCELLED`. + RequestedCancellation bool `protobuf:"varint,6,opt,name=requested_cancellation,json=requestedCancellation,proto3" json:"requested_cancellation,omitempty"` + // Output only. API version used to start the operation. + ApiVersion string `protobuf:"bytes,7,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"` +} + +func (x *OperationMetadata) Reset() { + *x = OperationMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperationMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperationMetadata) ProtoMessage() {} + +func (x *OperationMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_common_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 OperationMetadata.ProtoReflect.Descriptor instead. +func (*OperationMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_common_proto_rawDescGZIP(), []int{1} +} + +func (x *OperationMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *OperationMetadata) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +func (x *OperationMetadata) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +func (x *OperationMetadata) GetVerb() string { + if x != nil { + return x.Verb + } + return "" +} + +func (x *OperationMetadata) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *OperationMetadata) GetRequestedCancellation() bool { + if x != nil { + return x.RequestedCancellation + } + return false +} + +func (x *OperationMetadata) GetApiVersion() string { + if x != nil { + return x.ApiVersion + } + return "" +} + +// The Google Cloud Storage location for the input content. +type GcsSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. References to a Google Cloud Storage paths. + Uris []string `protobuf:"bytes,1,rep,name=uris,proto3" json:"uris,omitempty"` +} + +func (x *GcsSource) Reset() { + *x = GcsSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GcsSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GcsSource) ProtoMessage() {} + +func (x *GcsSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_common_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 GcsSource.ProtoReflect.Descriptor instead. +func (*GcsSource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_common_proto_rawDescGZIP(), []int{2} +} + +func (x *GcsSource) GetUris() []string { + if x != nil { + return x.Uris + } + return nil +} + +var File_google_cloud_visionai_v1_common_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_common_proto_rawDesc = []byte{ + 0x0a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0xa3, + 0x06, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x54, + 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x41, 0x0a, 0x1a, 0x64, 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, + 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x18, 0x64, + 0x61, 0x74, 0x61, 0x70, 0x6c, 0x61, 0x6e, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x70, + 0x73, 0x63, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x73, 0x63, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x56, 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, 0x10, 0x0a, 0x0c, 0x50, 0x52, + 0x4f, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x54, 0x4f, + 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x04, 0x3a, 0x60, 0xea, 0x41, 0x5d, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x3a, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x7d, 0x22, 0xd5, 0x02, 0x0a, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 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, 0x3a, 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, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x74, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x76, 0x65, 0x72, 0x62, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x76, 0x65, 0x72, 0x62, 0x12, 0x2a, + 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x16, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x69, 0x5f, 0x76, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x0a, 0x61, 0x70, 0x69, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x24, 0x0a, 0x09, + 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x17, 0x0a, 0x04, 0x75, 0x72, 0x69, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x75, 0x72, + 0x69, 0x73, 0x42, 0xbb, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, + 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, + 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, + 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_common_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_common_proto_rawDescData = file_google_cloud_visionai_v1_common_proto_rawDesc +) + +func file_google_cloud_visionai_v1_common_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_common_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_common_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_common_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_common_proto_rawDescData +} + +var file_google_cloud_visionai_v1_common_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_visionai_v1_common_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_google_cloud_visionai_v1_common_proto_goTypes = []interface{}{ + (Cluster_State)(0), // 0: google.cloud.visionai.v1.Cluster.State + (*Cluster)(nil), // 1: google.cloud.visionai.v1.Cluster + (*OperationMetadata)(nil), // 2: google.cloud.visionai.v1.OperationMetadata + (*GcsSource)(nil), // 3: google.cloud.visionai.v1.GcsSource + nil, // 4: google.cloud.visionai.v1.Cluster.LabelsEntry + nil, // 5: google.cloud.visionai.v1.Cluster.AnnotationsEntry + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp +} +var file_google_cloud_visionai_v1_common_proto_depIdxs = []int32{ + 6, // 0: google.cloud.visionai.v1.Cluster.create_time:type_name -> google.protobuf.Timestamp + 6, // 1: google.cloud.visionai.v1.Cluster.update_time:type_name -> google.protobuf.Timestamp + 4, // 2: google.cloud.visionai.v1.Cluster.labels:type_name -> google.cloud.visionai.v1.Cluster.LabelsEntry + 5, // 3: google.cloud.visionai.v1.Cluster.annotations:type_name -> google.cloud.visionai.v1.Cluster.AnnotationsEntry + 0, // 4: google.cloud.visionai.v1.Cluster.state:type_name -> google.cloud.visionai.v1.Cluster.State + 6, // 5: google.cloud.visionai.v1.OperationMetadata.create_time:type_name -> google.protobuf.Timestamp + 6, // 6: google.cloud.visionai.v1.OperationMetadata.end_time:type_name -> google.protobuf.Timestamp + 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_visionai_v1_common_proto_init() } +func file_google_cloud_visionai_v1_common_proto_init() { + if File_google_cloud_visionai_v1_common_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_common_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Cluster); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_common_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperationMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_common_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GcsSource); 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_visionai_v1_common_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_common_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_common_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_common_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_common_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_common_proto = out.File + file_google_cloud_visionai_v1_common_proto_rawDesc = nil + file_google_cloud_visionai_v1_common_proto_goTypes = nil + file_google_cloud_visionai_v1_common_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/health_service.pb.go b/visionai/apiv1/visionaipb/health_service.pb.go new file mode 100755 index 00000000000..7d5a7d436b6 --- /dev/null +++ b/visionai/apiv1/visionaipb/health_service.pb.go @@ -0,0 +1,454 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/health_service.proto + +package visionaipb + +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" +) + +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) +) + +// HealthCheckRequest is the request message for Check. +type HealthCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent of the resource. + Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` +} + +func (x *HealthCheckRequest) Reset() { + *x = HealthCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_health_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheckRequest) ProtoMessage() {} + +func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_health_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 HealthCheckRequest.ProtoReflect.Descriptor instead. +func (*HealthCheckRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_health_service_proto_rawDescGZIP(), []int{0} +} + +func (x *HealthCheckRequest) GetCluster() string { + if x != nil { + return x.Cluster + } + return "" +} + +// HealthCheckResponse is the response message for Check. +type HealthCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Indicates whether the cluster is in healthy state or not. + Healthy bool `protobuf:"varint,1,opt,name=healthy,proto3" json:"healthy,omitempty"` + // Reason of why the cluster is in unhealthy state. + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` + // Other information of the cluster client may be interested. + ClusterInfo *ClusterInfo `protobuf:"bytes,3,opt,name=cluster_info,json=clusterInfo,proto3" json:"cluster_info,omitempty"` +} + +func (x *HealthCheckResponse) Reset() { + *x = HealthCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_health_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HealthCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HealthCheckResponse) ProtoMessage() {} + +func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_health_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 HealthCheckResponse.ProtoReflect.Descriptor instead. +func (*HealthCheckResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_health_service_proto_rawDescGZIP(), []int{1} +} + +func (x *HealthCheckResponse) GetHealthy() bool { + if x != nil { + return x.Healthy + } + return false +} + +func (x *HealthCheckResponse) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *HealthCheckResponse) GetClusterInfo() *ClusterInfo { + if x != nil { + return x.ClusterInfo + } + return nil +} + +type ClusterInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The number of active streams in the cluster. + StreamsCount int32 `protobuf:"varint,1,opt,name=streams_count,json=streamsCount,proto3" json:"streams_count,omitempty"` + // The number of active processes in the cluster. + ProcessesCount int32 `protobuf:"varint,2,opt,name=processes_count,json=processesCount,proto3" json:"processes_count,omitempty"` +} + +func (x *ClusterInfo) Reset() { + *x = ClusterInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_health_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClusterInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClusterInfo) ProtoMessage() {} + +func (x *ClusterInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_health_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 ClusterInfo.ProtoReflect.Descriptor instead. +func (*ClusterInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_health_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ClusterInfo) GetStreamsCount() int32 { + if x != nil { + return x.StreamsCount + } + return 0 +} + +func (x *ClusterInfo) GetProcessesCount() int32 { + if x != nil { + return x.ProcessesCount + } + return 0 +} + +var File_google_cloud_visionai_v1_health_service_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_health_service_proto_rawDesc = []byte{ + 0x0a, 0x2d, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 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, 0x22, 0x54, 0x0a, 0x12, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3e, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x24, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x22, 0x91, 0x01, 0x0a, 0x13, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x48, 0x0a, 0x0c, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x5b, 0x0a, 0x0b, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x32, 0x93, 0x02, 0x0a, 0x12, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xaf, 0x01, 0x0a, 0x0b, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x4b, 0xca, 0x41, 0x17, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0xc7, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, + 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, + 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_health_service_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_health_service_proto_rawDescData = file_google_cloud_visionai_v1_health_service_proto_rawDesc +) + +func file_google_cloud_visionai_v1_health_service_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_health_service_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_health_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_health_service_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_health_service_proto_rawDescData +} + +var file_google_cloud_visionai_v1_health_service_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_google_cloud_visionai_v1_health_service_proto_goTypes = []interface{}{ + (*HealthCheckRequest)(nil), // 0: google.cloud.visionai.v1.HealthCheckRequest + (*HealthCheckResponse)(nil), // 1: google.cloud.visionai.v1.HealthCheckResponse + (*ClusterInfo)(nil), // 2: google.cloud.visionai.v1.ClusterInfo +} +var file_google_cloud_visionai_v1_health_service_proto_depIdxs = []int32{ + 2, // 0: google.cloud.visionai.v1.HealthCheckResponse.cluster_info:type_name -> google.cloud.visionai.v1.ClusterInfo + 0, // 1: google.cloud.visionai.v1.HealthCheckService.HealthCheck:input_type -> google.cloud.visionai.v1.HealthCheckRequest + 1, // 2: google.cloud.visionai.v1.HealthCheckService.HealthCheck:output_type -> google.cloud.visionai.v1.HealthCheckResponse + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_health_service_proto_init() } +func file_google_cloud_visionai_v1_health_service_proto_init() { + if File_google_cloud_visionai_v1_health_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_health_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HealthCheckRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_health_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HealthCheckResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_health_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClusterInfo); 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_visionai_v1_health_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_health_service_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_health_service_proto_depIdxs, + MessageInfos: file_google_cloud_visionai_v1_health_service_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_health_service_proto = out.File + file_google_cloud_visionai_v1_health_service_proto_rawDesc = nil + file_google_cloud_visionai_v1_health_service_proto_goTypes = nil + file_google_cloud_visionai_v1_health_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 + +// HealthCheckServiceClient is the client API for HealthCheckService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type HealthCheckServiceClient interface { + // HealthCheck method checks the health status of the cluster. + HealthCheck(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) +} + +type healthCheckServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewHealthCheckServiceClient(cc grpc.ClientConnInterface) HealthCheckServiceClient { + return &healthCheckServiceClient{cc} +} + +func (c *healthCheckServiceClient) HealthCheck(ctx context.Context, in *HealthCheckRequest, opts ...grpc.CallOption) (*HealthCheckResponse, error) { + out := new(HealthCheckResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.HealthCheckService/HealthCheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// HealthCheckServiceServer is the server API for HealthCheckService service. +type HealthCheckServiceServer interface { + // HealthCheck method checks the health status of the cluster. + HealthCheck(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) +} + +// UnimplementedHealthCheckServiceServer can be embedded to have forward compatible implementations. +type UnimplementedHealthCheckServiceServer struct { +} + +func (*UnimplementedHealthCheckServiceServer) HealthCheck(context.Context, *HealthCheckRequest) (*HealthCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method HealthCheck not implemented") +} + +func RegisterHealthCheckServiceServer(s *grpc.Server, srv HealthCheckServiceServer) { + s.RegisterService(&_HealthCheckService_serviceDesc, srv) +} + +func _HealthCheckService_HealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HealthCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HealthCheckServiceServer).HealthCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.HealthCheckService/HealthCheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HealthCheckServiceServer).HealthCheck(ctx, req.(*HealthCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _HealthCheckService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.HealthCheckService", + HandlerType: (*HealthCheckServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "HealthCheck", + Handler: _HealthCheckService_HealthCheck_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/visionai/v1/health_service.proto", +} diff --git a/visionai/apiv1/visionaipb/lva.pb.go b/visionai/apiv1/visionaipb/lva.pb.go new file mode 100755 index 00000000000..32281b5debd --- /dev/null +++ b/visionai/apiv1/visionaipb/lva.pb.go @@ -0,0 +1,1426 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/lva.proto + +package visionaipb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" +) + +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) +) + +// RunMode represents the mode to launch the Process on. +type RunMode int32 + +const ( + // Mode is unspecified. + RunMode_RUN_MODE_UNSPECIFIED RunMode = 0 + // Live mode. Meaning the Process is launched to handle live video + // source, and possible packet drops are expected. + RunMode_LIVE RunMode = 1 + // Submission mode. Meaning the Process is launched to handle bounded video + // files, with no packet drop. Completion status is tracked. + RunMode_SUBMISSION RunMode = 2 +) + +// Enum value maps for RunMode. +var ( + RunMode_name = map[int32]string{ + 0: "RUN_MODE_UNSPECIFIED", + 1: "LIVE", + 2: "SUBMISSION", + } + RunMode_value = map[string]int32{ + "RUN_MODE_UNSPECIFIED": 0, + "LIVE": 1, + "SUBMISSION": 2, + } +) + +func (x RunMode) Enum() *RunMode { + p := new(RunMode) + *p = x + return p +} + +func (x RunMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RunMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_lva_proto_enumTypes[0].Descriptor() +} + +func (RunMode) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_lva_proto_enumTypes[0] +} + +func (x RunMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RunMode.Descriptor instead. +func (RunMode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{0} +} + +// State represents the running status of the Process. +type RunStatus_State int32 + +const ( + // State is unspecified. + RunStatus_STATE_UNSPECIFIED RunStatus_State = 0 + // INITIALIZING means the Process is scheduled but yet ready to handle + // real traffic. + RunStatus_INITIALIZING RunStatus_State = 1 + // RUNNING means the Process is up running and handling traffic. + RunStatus_RUNNING RunStatus_State = 2 + // COMPLETED means the Process has completed the processing, especially + // for non-streaming use case. + RunStatus_COMPLETED RunStatus_State = 3 + // FAILED means the Process failed to complete the processing. + RunStatus_FAILED RunStatus_State = 4 + // PENDING means the Process is created but yet to be scheduled. + RunStatus_PENDING RunStatus_State = 5 +) + +// Enum value maps for RunStatus_State. +var ( + RunStatus_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "INITIALIZING", + 2: "RUNNING", + 3: "COMPLETED", + 4: "FAILED", + 5: "PENDING", + } + RunStatus_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "INITIALIZING": 1, + "RUNNING": 2, + "COMPLETED": 3, + "FAILED": 4, + "PENDING": 5, + } +) + +func (x RunStatus_State) Enum() *RunStatus_State { + p := new(RunStatus_State) + *p = x + return p +} + +func (x RunStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (RunStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_lva_proto_enumTypes[1].Descriptor() +} + +func (RunStatus_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_lva_proto_enumTypes[1] +} + +func (x RunStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use RunStatus_State.Descriptor instead. +func (RunStatus_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{5, 0} +} + +// Defines the interface of an Operator. +// +// Arguments to an operator are input/output streams that are getting +// processesed/returned while attributes are fixed configuration parameters. +type OperatorDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of this operator. + // + // Tentatively [A-Z][a-zA-Z0-9]*, e.g., BboxCounter, PetDetector, + // PetDetector1. + Operator string `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + // Declares input arguments. + InputArgs []*OperatorDefinition_ArgumentDefinition `protobuf:"bytes,2,rep,name=input_args,json=inputArgs,proto3" json:"input_args,omitempty"` + // Declares output arguments. + OutputArgs []*OperatorDefinition_ArgumentDefinition `protobuf:"bytes,3,rep,name=output_args,json=outputArgs,proto3" json:"output_args,omitempty"` + // Declares the attributes. + Attributes []*OperatorDefinition_AttributeDefinition `protobuf:"bytes,4,rep,name=attributes,proto3" json:"attributes,omitempty"` + // The resources for running the operator. + Resources *ResourceSpecification `protobuf:"bytes,5,opt,name=resources,proto3" json:"resources,omitempty"` + // Short description of the operator. + ShortDescription string `protobuf:"bytes,6,opt,name=short_description,json=shortDescription,proto3" json:"short_description,omitempty"` + // Full description of the operator. + Description string `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *OperatorDefinition) Reset() { + *x = OperatorDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperatorDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperatorDefinition) ProtoMessage() {} + +func (x *OperatorDefinition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 OperatorDefinition.ProtoReflect.Descriptor instead. +func (*OperatorDefinition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{0} +} + +func (x *OperatorDefinition) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *OperatorDefinition) GetInputArgs() []*OperatorDefinition_ArgumentDefinition { + if x != nil { + return x.InputArgs + } + return nil +} + +func (x *OperatorDefinition) GetOutputArgs() []*OperatorDefinition_ArgumentDefinition { + if x != nil { + return x.OutputArgs + } + return nil +} + +func (x *OperatorDefinition) GetAttributes() []*OperatorDefinition_AttributeDefinition { + if x != nil { + return x.Attributes + } + return nil +} + +func (x *OperatorDefinition) GetResources() *ResourceSpecification { + if x != nil { + return x.Resources + } + return nil +} + +func (x *OperatorDefinition) GetShortDescription() string { + if x != nil { + return x.ShortDescription + } + return "" +} + +func (x *OperatorDefinition) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// ResourceSpec collects a set of resources that can +// be used to specify requests and requirements. +// +// Note: Highly experimental as this can be runtime dependent. +// Can use the "extras" field to experiment first before trying +// to abstract it. +type ResourceSpecification struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // CPU specification. + // + // Examples: + // "100m", "0.5", "1", "2", ... correspond to + // 0.1, half, 1, or 2 cpus. + // + // Leave empty to let the system decide. + // + // Note that this does *not* determine the cpu vender/make, + // or its underlying clock speed and specific SIMD features. + // It is only the amount time it requires in timeslicing. + Cpu string `protobuf:"bytes,1,opt,name=cpu,proto3" json:"cpu,omitempty"` + // CPU limit. + // + // Examples: + // "100m", "0.5", "1", "2", ... correspond to + // 0.1, half, 1, or 2 cpus. + // + // Leave empty to indicate no limit. + CpuLimits string `protobuf:"bytes,5,opt,name=cpu_limits,json=cpuLimits,proto3" json:"cpu_limits,omitempty"` + // Memory specification (in bytes). + // + // Examples: + // "128974848", "129e6", "129M", "123Mi", ... correspond to + // 128974848 bytes, 129000000 bytes, 129 mebibytes, 123 megabytes. + // + // Leave empty to let the system decide. + Memory string `protobuf:"bytes,2,opt,name=memory,proto3" json:"memory,omitempty"` + // Memory usage limits. + // + // Examples: + // "128974848", "129e6", "129M", "123Mi", ... correspond to + // 128974848 bytes, 129000000 bytes, 129 mebibytes, 123 megabytes. + // + // Leave empty to indicate no limit. + MemoryLimits string `protobuf:"bytes,6,opt,name=memory_limits,json=memoryLimits,proto3" json:"memory_limits,omitempty"` + // Number of gpus. + Gpus int32 `protobuf:"varint,3,opt,name=gpus,proto3" json:"gpus,omitempty"` + // The maximum latency that this operator may use to process an element. + // + // If non positive, then a system default will be used. + // Operator developers should arrange for the system compute resources to be + // aligned with this latency budget; e.g. if you want a ML model to produce + // results within 500ms, then you should make sure you request enough + // cpu/gpu/memory to achieve that. + LatencyBudgetMs int32 `protobuf:"varint,4,opt,name=latency_budget_ms,json=latencyBudgetMs,proto3" json:"latency_budget_ms,omitempty"` +} + +func (x *ResourceSpecification) Reset() { + *x = ResourceSpecification{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceSpecification) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceSpecification) ProtoMessage() {} + +func (x *ResourceSpecification) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ResourceSpecification.ProtoReflect.Descriptor instead. +func (*ResourceSpecification) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{1} +} + +func (x *ResourceSpecification) GetCpu() string { + if x != nil { + return x.Cpu + } + return "" +} + +func (x *ResourceSpecification) GetCpuLimits() string { + if x != nil { + return x.CpuLimits + } + return "" +} + +func (x *ResourceSpecification) GetMemory() string { + if x != nil { + return x.Memory + } + return "" +} + +func (x *ResourceSpecification) GetMemoryLimits() string { + if x != nil { + return x.MemoryLimits + } + return "" +} + +func (x *ResourceSpecification) GetGpus() int32 { + if x != nil { + return x.Gpus + } + return 0 +} + +func (x *ResourceSpecification) GetLatencyBudgetMs() int32 { + if x != nil { + return x.LatencyBudgetMs + } + return 0 +} + +// Represents an actual value of an operator attribute. +type AttributeValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Attribute value. + // + // Types that are assignable to Value: + // + // *AttributeValue_I + // *AttributeValue_F + // *AttributeValue_B + // *AttributeValue_S + Value isAttributeValue_Value `protobuf_oneof:"value"` +} + +func (x *AttributeValue) Reset() { + *x = AttributeValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AttributeValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AttributeValue) ProtoMessage() {} + +func (x *AttributeValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AttributeValue.ProtoReflect.Descriptor instead. +func (*AttributeValue) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{2} +} + +func (m *AttributeValue) GetValue() isAttributeValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *AttributeValue) GetI() int64 { + if x, ok := x.GetValue().(*AttributeValue_I); ok { + return x.I + } + return 0 +} + +func (x *AttributeValue) GetF() float32 { + if x, ok := x.GetValue().(*AttributeValue_F); ok { + return x.F + } + return 0 +} + +func (x *AttributeValue) GetB() bool { + if x, ok := x.GetValue().(*AttributeValue_B); ok { + return x.B + } + return false +} + +func (x *AttributeValue) GetS() []byte { + if x, ok := x.GetValue().(*AttributeValue_S); ok { + return x.S + } + return nil +} + +type isAttributeValue_Value interface { + isAttributeValue_Value() +} + +type AttributeValue_I struct { + // int. + I int64 `protobuf:"varint,1,opt,name=i,proto3,oneof"` +} + +type AttributeValue_F struct { + // float. + F float32 `protobuf:"fixed32,2,opt,name=f,proto3,oneof"` +} + +type AttributeValue_B struct { + // bool. + B bool `protobuf:"varint,3,opt,name=b,proto3,oneof"` +} + +type AttributeValue_S struct { + // string. + S []byte `protobuf:"bytes,4,opt,name=s,proto3,oneof"` +} + +func (*AttributeValue_I) isAttributeValue_Value() {} + +func (*AttributeValue_F) isAttributeValue_Value() {} + +func (*AttributeValue_B) isAttributeValue_Value() {} + +func (*AttributeValue_S) isAttributeValue_Value() {} + +// Defines an Analyzer. +// +// An analyzer processes data from its input streams using the logic defined in +// the Operator that it represents. Of course, it produces data for the output +// streams declared in the Operator. +type AnalyzerDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of this analyzer. + // + // Tentatively [a-z][a-z0-9]*(_[a-z0-9]+)*. + Analyzer string `protobuf:"bytes,1,opt,name=analyzer,proto3" json:"analyzer,omitempty"` + // The name of the operator that this analyzer runs. + // + // Must match the name of a supported operator. + Operator string `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + // Input streams. + Inputs []*AnalyzerDefinition_StreamInput `protobuf:"bytes,3,rep,name=inputs,proto3" json:"inputs,omitempty"` + // The attribute values that this analyzer applies to the operator. + // + // Supply a mapping between the attribute names and the actual value you wish + // to apply. If an attribute name is omitted, then it will take a + // preconfigured default value. + Attrs map[string]*AttributeValue `protobuf:"bytes,4,rep,name=attrs,proto3" json:"attrs,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Debug options. + DebugOptions *AnalyzerDefinition_DebugOptions `protobuf:"bytes,5,opt,name=debug_options,json=debugOptions,proto3" json:"debug_options,omitempty"` + // Operator option. + OperatorOption *AnalyzerDefinition_OperatorOption `protobuf:"bytes,6,opt,name=operator_option,json=operatorOption,proto3" json:"operator_option,omitempty"` +} + +func (x *AnalyzerDefinition) Reset() { + *x = AnalyzerDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzerDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzerDefinition) ProtoMessage() {} + +func (x *AnalyzerDefinition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AnalyzerDefinition.ProtoReflect.Descriptor instead. +func (*AnalyzerDefinition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{3} +} + +func (x *AnalyzerDefinition) GetAnalyzer() string { + if x != nil { + return x.Analyzer + } + return "" +} + +func (x *AnalyzerDefinition) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *AnalyzerDefinition) GetInputs() []*AnalyzerDefinition_StreamInput { + if x != nil { + return x.Inputs + } + return nil +} + +func (x *AnalyzerDefinition) GetAttrs() map[string]*AttributeValue { + if x != nil { + return x.Attrs + } + return nil +} + +func (x *AnalyzerDefinition) GetDebugOptions() *AnalyzerDefinition_DebugOptions { + if x != nil { + return x.DebugOptions + } + return nil +} + +func (x *AnalyzerDefinition) GetOperatorOption() *AnalyzerDefinition_OperatorOption { + if x != nil { + return x.OperatorOption + } + return nil +} + +// Defines a full analysis. +// +// This is a description of the overall live analytics pipeline. +// You may think of this as an edge list representation of a multigraph. +// +// This may be directly authored by a human in protobuf textformat, or it may be +// generated by a programming API (perhaps Python or JavaScript depending on +// context). +type AnalysisDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Analyzer definitions. + Analyzers []*AnalyzerDefinition `protobuf:"bytes,1,rep,name=analyzers,proto3" json:"analyzers,omitempty"` +} + +func (x *AnalysisDefinition) Reset() { + *x = AnalysisDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalysisDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalysisDefinition) ProtoMessage() {} + +func (x *AnalysisDefinition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AnalysisDefinition.ProtoReflect.Descriptor instead. +func (*AnalysisDefinition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{4} +} + +func (x *AnalysisDefinition) GetAnalyzers() []*AnalyzerDefinition { + if x != nil { + return x.Analyzers + } + return nil +} + +// Message describing the status of the Process. +type RunStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The state of the Process. + State RunStatus_State `protobuf:"varint,1,opt,name=state,proto3,enum=google.cloud.visionai.v1.RunStatus_State" json:"state,omitempty"` + // The reason of becoming the state. + Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"` +} + +func (x *RunStatus) Reset() { + *x = RunStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RunStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunStatus) ProtoMessage() {} + +func (x *RunStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 RunStatus.ProtoReflect.Descriptor instead. +func (*RunStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{5} +} + +func (x *RunStatus) GetState() RunStatus_State { + if x != nil { + return x.State + } + return RunStatus_STATE_UNSPECIFIED +} + +func (x *RunStatus) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +// Defines an argument to an operator. +// +// Used for both inputs and outputs. +type OperatorDefinition_ArgumentDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the argument. + // + // Tentatively [a-z]([_a-z0-9]*[a-z0-9])?, e.g., video, audio, + // high_fps_frame. + Argument string `protobuf:"bytes,1,opt,name=argument,proto3" json:"argument,omitempty"` + // The data type of the argument. + // + // This should match the textual representation of a stream/Packet type. + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *OperatorDefinition_ArgumentDefinition) Reset() { + *x = OperatorDefinition_ArgumentDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperatorDefinition_ArgumentDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperatorDefinition_ArgumentDefinition) ProtoMessage() {} + +func (x *OperatorDefinition_ArgumentDefinition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 OperatorDefinition_ArgumentDefinition.ProtoReflect.Descriptor instead. +func (*OperatorDefinition_ArgumentDefinition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *OperatorDefinition_ArgumentDefinition) GetArgument() string { + if x != nil { + return x.Argument + } + return "" +} + +func (x *OperatorDefinition_ArgumentDefinition) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +// Defines an attribute of an operator. +type OperatorDefinition_AttributeDefinition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the attribute. + // + // Tentatively [a-z]([_a-z0-9]*[a-z0-9])?, e.g., max_frames_per_video, + // resize_height. + Attribute string `protobuf:"bytes,1,opt,name=attribute,proto3" json:"attribute,omitempty"` + // The type of this attribute. + // + // See attribute_value.proto for possibilities. + Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + // The default value for the attribute. + DefaultValue *AttributeValue `protobuf:"bytes,3,opt,name=default_value,json=defaultValue,proto3" json:"default_value,omitempty"` +} + +func (x *OperatorDefinition_AttributeDefinition) Reset() { + *x = OperatorDefinition_AttributeDefinition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperatorDefinition_AttributeDefinition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperatorDefinition_AttributeDefinition) ProtoMessage() {} + +func (x *OperatorDefinition_AttributeDefinition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 OperatorDefinition_AttributeDefinition.ProtoReflect.Descriptor instead. +func (*OperatorDefinition_AttributeDefinition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{0, 1} +} + +func (x *OperatorDefinition_AttributeDefinition) GetAttribute() string { + if x != nil { + return x.Attribute + } + return "" +} + +func (x *OperatorDefinition_AttributeDefinition) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *OperatorDefinition_AttributeDefinition) GetDefaultValue() *AttributeValue { + if x != nil { + return x.DefaultValue + } + return nil +} + +// The inputs to this analyzer. +// +// We accept input name references of the following form: +// : +// +// Example: +// +// Suppose you had an operator named "SomeOp" that has 2 output +// arguments, the first of which is named "foo" and the second of which is +// named "bar", and an operator named "MyOp" that accepts 2 inputs. +// +// Also suppose that there is an analyzer named "some-analyzer" that is +// running "SomeOp" and another analyzer named "my-analyzer" running "MyOp". +// +// To indicate that "my-analyzer" is to consume "some-analyzer"'s "foo" +// output as its first input and "some-analyzer"'s "bar" output as its +// second input, you can set this field to the following: +// input = ["some-analyzer:foo", "some-analyzer:bar"] +type AnalyzerDefinition_StreamInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the stream input (as discussed above). + Input string `protobuf:"bytes,1,opt,name=input,proto3" json:"input,omitempty"` +} + +func (x *AnalyzerDefinition_StreamInput) Reset() { + *x = AnalyzerDefinition_StreamInput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzerDefinition_StreamInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzerDefinition_StreamInput) ProtoMessage() {} + +func (x *AnalyzerDefinition_StreamInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AnalyzerDefinition_StreamInput.ProtoReflect.Descriptor instead. +func (*AnalyzerDefinition_StreamInput) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{3, 0} +} + +func (x *AnalyzerDefinition_StreamInput) GetInput() string { + if x != nil { + return x.Input + } + return "" +} + +// Options available for debugging purposes only. +type AnalyzerDefinition_DebugOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Environment variables. + EnvironmentVariables map[string]string `protobuf:"bytes,1,rep,name=environment_variables,json=environmentVariables,proto3" json:"environment_variables,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AnalyzerDefinition_DebugOptions) Reset() { + *x = AnalyzerDefinition_DebugOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzerDefinition_DebugOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzerDefinition_DebugOptions) ProtoMessage() {} + +func (x *AnalyzerDefinition_DebugOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AnalyzerDefinition_DebugOptions.ProtoReflect.Descriptor instead. +func (*AnalyzerDefinition_DebugOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{3, 1} +} + +func (x *AnalyzerDefinition_DebugOptions) GetEnvironmentVariables() map[string]string { + if x != nil { + return x.EnvironmentVariables + } + return nil +} + +// Option related to the operator. +type AnalyzerDefinition_OperatorOption struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Tag of the operator. + Tag string `protobuf:"bytes,1,opt,name=tag,proto3" json:"tag,omitempty"` + // Registry of the operator. e.g. public, dev. + Registry string `protobuf:"bytes,2,opt,name=registry,proto3" json:"registry,omitempty"` +} + +func (x *AnalyzerDefinition_OperatorOption) Reset() { + *x = AnalyzerDefinition_OperatorOption{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzerDefinition_OperatorOption) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzerDefinition_OperatorOption) ProtoMessage() {} + +func (x *AnalyzerDefinition_OperatorOption) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 AnalyzerDefinition_OperatorOption.ProtoReflect.Descriptor instead. +func (*AnalyzerDefinition_OperatorOption) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_proto_rawDescGZIP(), []int{3, 2} +} + +func (x *AnalyzerDefinition_OperatorOption) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *AnalyzerDefinition_OperatorOption) GetRegistry() string { + if x != nil { + return x.Registry + } + return "" +} + +var File_google_cloud_visionai_v1_lva_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_lva_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x76, 0x61, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x22, 0xd1, + 0x05, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x5e, 0x0a, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x41, 0x72, 0x67, + 0x73, 0x12, 0x60, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x72, 0x67, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, + 0x72, 0x67, 0x73, 0x12, 0x60, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x1a, 0x44, 0x0a, 0x12, 0x41, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x44, + 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x72, 0x67, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x96, 0x01, 0x0a, 0x13, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, + 0x63, 0x70, 0x75, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x63, 0x70, 0x75, 0x12, 0x1d, + 0x0a, 0x0a, 0x63, 0x70, 0x75, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x70, 0x75, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x5f, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x65, + 0x6d, 0x6f, 0x72, 0x79, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x70, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x67, 0x70, 0x75, 0x73, 0x12, 0x2a, + 0x0a, 0x11, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x62, 0x75, 0x64, 0x67, 0x65, 0x74, + 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6c, 0x61, 0x74, 0x65, 0x6e, + 0x63, 0x79, 0x42, 0x75, 0x64, 0x67, 0x65, 0x74, 0x4d, 0x73, 0x22, 0x59, 0x0a, 0x0e, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x0e, 0x0a, 0x01, + 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x01, 0x69, 0x12, 0x0e, 0x0a, 0x01, + 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x01, 0x66, 0x12, 0x0e, 0x0a, 0x01, + 0x62, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x01, 0x62, 0x12, 0x0e, 0x0a, 0x01, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x01, 0x73, 0x42, 0x07, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xe1, 0x06, 0x0a, 0x12, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x06, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x05, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, + 0x61, 0x74, 0x74, 0x72, 0x73, 0x12, 0x5e, 0x0a, 0x0d, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x44, 0x65, 0x62, 0x75, 0x67, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0c, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x64, 0x0a, 0x0f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, + 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x23, 0x0a, 0x0b, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x1a, 0xe2, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x62, 0x75, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x88, 0x01, 0x0a, 0x15, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x53, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x44, 0x65, 0x62, 0x75, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x6e, 0x76, + 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0x47, 0x0a, 0x19, + 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, + 0x62, 0x6c, 0x65, 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, 0x1a, 0x3e, 0x0a, 0x0e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x72, 0x79, 0x1a, 0x62, 0x0a, 0x0a, 0x41, 0x74, 0x74, 0x72, 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, 0x3e, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x12, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x4a, 0x0a, 0x09, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x09, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x72, 0x73, 0x22, 0xcb, 0x01, 0x0a, 0x09, + 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x22, 0x65, 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, 0x10, 0x0a, 0x0c, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x49, 0x5a, 0x49, + 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, + 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, + 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x2a, 0x3d, 0x0a, 0x07, 0x52, 0x75, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x55, 0x4e, 0x5f, 0x4d, 0x4f, 0x44, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x4c, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x55, 0x42, 0x4d, + 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x42, 0xb8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x4c, 0x76, 0x61, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, + 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_lva_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_lva_proto_rawDescData = file_google_cloud_visionai_v1_lva_proto_rawDesc +) + +func file_google_cloud_visionai_v1_lva_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_lva_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_lva_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_lva_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_lva_proto_rawDescData +} + +var file_google_cloud_visionai_v1_lva_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_google_cloud_visionai_v1_lva_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_google_cloud_visionai_v1_lva_proto_goTypes = []interface{}{ + (RunMode)(0), // 0: google.cloud.visionai.v1.RunMode + (RunStatus_State)(0), // 1: google.cloud.visionai.v1.RunStatus.State + (*OperatorDefinition)(nil), // 2: google.cloud.visionai.v1.OperatorDefinition + (*ResourceSpecification)(nil), // 3: google.cloud.visionai.v1.ResourceSpecification + (*AttributeValue)(nil), // 4: google.cloud.visionai.v1.AttributeValue + (*AnalyzerDefinition)(nil), // 5: google.cloud.visionai.v1.AnalyzerDefinition + (*AnalysisDefinition)(nil), // 6: google.cloud.visionai.v1.AnalysisDefinition + (*RunStatus)(nil), // 7: google.cloud.visionai.v1.RunStatus + (*OperatorDefinition_ArgumentDefinition)(nil), // 8: google.cloud.visionai.v1.OperatorDefinition.ArgumentDefinition + (*OperatorDefinition_AttributeDefinition)(nil), // 9: google.cloud.visionai.v1.OperatorDefinition.AttributeDefinition + (*AnalyzerDefinition_StreamInput)(nil), // 10: google.cloud.visionai.v1.AnalyzerDefinition.StreamInput + (*AnalyzerDefinition_DebugOptions)(nil), // 11: google.cloud.visionai.v1.AnalyzerDefinition.DebugOptions + (*AnalyzerDefinition_OperatorOption)(nil), // 12: google.cloud.visionai.v1.AnalyzerDefinition.OperatorOption + nil, // 13: google.cloud.visionai.v1.AnalyzerDefinition.AttrsEntry + nil, // 14: google.cloud.visionai.v1.AnalyzerDefinition.DebugOptions.EnvironmentVariablesEntry +} +var file_google_cloud_visionai_v1_lva_proto_depIdxs = []int32{ + 8, // 0: google.cloud.visionai.v1.OperatorDefinition.input_args:type_name -> google.cloud.visionai.v1.OperatorDefinition.ArgumentDefinition + 8, // 1: google.cloud.visionai.v1.OperatorDefinition.output_args:type_name -> google.cloud.visionai.v1.OperatorDefinition.ArgumentDefinition + 9, // 2: google.cloud.visionai.v1.OperatorDefinition.attributes:type_name -> google.cloud.visionai.v1.OperatorDefinition.AttributeDefinition + 3, // 3: google.cloud.visionai.v1.OperatorDefinition.resources:type_name -> google.cloud.visionai.v1.ResourceSpecification + 10, // 4: google.cloud.visionai.v1.AnalyzerDefinition.inputs:type_name -> google.cloud.visionai.v1.AnalyzerDefinition.StreamInput + 13, // 5: google.cloud.visionai.v1.AnalyzerDefinition.attrs:type_name -> google.cloud.visionai.v1.AnalyzerDefinition.AttrsEntry + 11, // 6: google.cloud.visionai.v1.AnalyzerDefinition.debug_options:type_name -> google.cloud.visionai.v1.AnalyzerDefinition.DebugOptions + 12, // 7: google.cloud.visionai.v1.AnalyzerDefinition.operator_option:type_name -> google.cloud.visionai.v1.AnalyzerDefinition.OperatorOption + 5, // 8: google.cloud.visionai.v1.AnalysisDefinition.analyzers:type_name -> google.cloud.visionai.v1.AnalyzerDefinition + 1, // 9: google.cloud.visionai.v1.RunStatus.state:type_name -> google.cloud.visionai.v1.RunStatus.State + 4, // 10: google.cloud.visionai.v1.OperatorDefinition.AttributeDefinition.default_value:type_name -> google.cloud.visionai.v1.AttributeValue + 14, // 11: google.cloud.visionai.v1.AnalyzerDefinition.DebugOptions.environment_variables:type_name -> google.cloud.visionai.v1.AnalyzerDefinition.DebugOptions.EnvironmentVariablesEntry + 4, // 12: google.cloud.visionai.v1.AnalyzerDefinition.AttrsEntry.value:type_name -> google.cloud.visionai.v1.AttributeValue + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] 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_visionai_v1_lva_proto_init() } +func file_google_cloud_visionai_v1_lva_proto_init() { + if File_google_cloud_visionai_v1_lva_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_lva_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperatorDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceSpecification); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AttributeValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzerDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalysisDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RunStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperatorDefinition_ArgumentDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperatorDefinition_AttributeDefinition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzerDefinition_StreamInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzerDefinition_DebugOptions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzerDefinition_OperatorOption); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_lva_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*AttributeValue_I)(nil), + (*AttributeValue_F)(nil), + (*AttributeValue_B)(nil), + (*AttributeValue_S)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_lva_proto_rawDesc, + NumEnums: 2, + NumMessages: 13, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_lva_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_lva_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_lva_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_lva_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_lva_proto = out.File + file_google_cloud_visionai_v1_lva_proto_rawDesc = nil + file_google_cloud_visionai_v1_lva_proto_goTypes = nil + file_google_cloud_visionai_v1_lva_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/lva_resources.pb.go b/visionai/apiv1/visionaipb/lva_resources.pb.go new file mode 100755 index 00000000000..6c2a72d68db --- /dev/null +++ b/visionai/apiv1/visionaipb/lva_resources.pb.go @@ -0,0 +1,664 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/lva_resources.proto + +package visionaipb + +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) +) + +// Message describing the Operator object. +type Operator struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The definition of the operator. + OperatorDefinition *OperatorDefinition `protobuf:"bytes,5,opt,name=operator_definition,json=operatorDefinition,proto3" json:"operator_definition,omitempty"` + // The link to the docker image of the operator. + DockerImage string `protobuf:"bytes,6,opt,name=docker_image,json=dockerImage,proto3" json:"docker_image,omitempty"` +} + +func (x *Operator) Reset() { + *x = Operator{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Operator) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Operator) ProtoMessage() {} + +func (x *Operator) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_resources_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 Operator.ProtoReflect.Descriptor instead. +func (*Operator) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *Operator) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Operator) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Operator) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Operator) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Operator) GetOperatorDefinition() *OperatorDefinition { + if x != nil { + return x.OperatorDefinition + } + return nil +} + +func (x *Operator) GetDockerImage() string { + if x != nil { + return x.DockerImage + } + return "" +} + +// Message describing the Analysis object. +type Analysis struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The definition of the analysis. + AnalysisDefinition *AnalysisDefinition `protobuf:"bytes,5,opt,name=analysis_definition,json=analysisDefinition,proto3" json:"analysis_definition,omitempty"` + // Map from the input parameter in the definition to the real stream. + // E.g., suppose you had a stream source operator named "input-0" and you try + // to receive from the real stream "stream-0". You can add the following + // mapping: [input-0: stream-0]. + InputStreamsMapping map[string]string `protobuf:"bytes,6,rep,name=input_streams_mapping,json=inputStreamsMapping,proto3" json:"input_streams_mapping,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Map from the output parameter in the definition to the real stream. + // E.g., suppose you had a stream sink operator named "output-0" and you try + // to send to the real stream "stream-0". You can add the following + // mapping: [output-0: stream-0]. + OutputStreamsMapping map[string]string `protobuf:"bytes,7,rep,name=output_streams_mapping,json=outputStreamsMapping,proto3" json:"output_streams_mapping,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Boolean flag to indicate whether you would like to disable the ability + // to automatically start a Process when new event happening in the input + // Stream. If you would like to start a Process manually, the field needs + // to be set to true. + DisableEventWatch bool `protobuf:"varint,8,opt,name=disable_event_watch,json=disableEventWatch,proto3" json:"disable_event_watch,omitempty"` +} + +func (x *Analysis) Reset() { + *x = Analysis{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Analysis) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Analysis) ProtoMessage() {} + +func (x *Analysis) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_resources_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 Analysis.ProtoReflect.Descriptor instead. +func (*Analysis) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *Analysis) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Analysis) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Analysis) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Analysis) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Analysis) GetAnalysisDefinition() *AnalysisDefinition { + if x != nil { + return x.AnalysisDefinition + } + return nil +} + +func (x *Analysis) GetInputStreamsMapping() map[string]string { + if x != nil { + return x.InputStreamsMapping + } + return nil +} + +func (x *Analysis) GetOutputStreamsMapping() map[string]string { + if x != nil { + return x.OutputStreamsMapping + } + return nil +} + +func (x *Analysis) GetDisableEventWatch() bool { + if x != nil { + return x.DisableEventWatch + } + return false +} + +// Message describing the Process object. +type Process struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Required. Reference to an existing Analysis resource. + Analysis string `protobuf:"bytes,4,opt,name=analysis,proto3" json:"analysis,omitempty"` + // Optional. Attribute overrides of the Analyzers. + // Format for each single override item: + // "{analyzer_name}:{attribute_key}={value}" + AttributeOverrides []string `protobuf:"bytes,5,rep,name=attribute_overrides,json=attributeOverrides,proto3" json:"attribute_overrides,omitempty"` + // Optional. Status of the Process. + RunStatus *RunStatus `protobuf:"bytes,6,opt,name=run_status,json=runStatus,proto3" json:"run_status,omitempty"` + // Optional. Run mode of the Process. + RunMode RunMode `protobuf:"varint,7,opt,name=run_mode,json=runMode,proto3,enum=google.cloud.visionai.v1.RunMode" json:"run_mode,omitempty"` + // Optional. Event ID of the input/output streams. + // This is useful when you have a StreamSource/StreamSink operator in the + // Analysis, and you want to manually specify the Event to read from/write to. + EventId string `protobuf:"bytes,8,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` + // Optional. Optional: Batch ID of the Process. + BatchId string `protobuf:"bytes,9,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"` + // Optional. Optional: The number of retries for a process in submission mode + // the system should try before declaring failure. By default, no retry will + // be performed. + RetryCount int32 `protobuf:"varint,10,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"` +} + +func (x *Process) Reset() { + *x = Process{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Process) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Process) ProtoMessage() {} + +func (x *Process) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_resources_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 Process.ProtoReflect.Descriptor instead. +func (*Process) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *Process) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Process) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Process) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Process) GetAnalysis() string { + if x != nil { + return x.Analysis + } + return "" +} + +func (x *Process) GetAttributeOverrides() []string { + if x != nil { + return x.AttributeOverrides + } + return nil +} + +func (x *Process) GetRunStatus() *RunStatus { + if x != nil { + return x.RunStatus + } + return nil +} + +func (x *Process) GetRunMode() RunMode { + if x != nil { + return x.RunMode + } + return RunMode_RUN_MODE_UNSPECIFIED +} + +func (x *Process) GetEventId() string { + if x != nil { + return x.EventId + } + return "" +} + +func (x *Process) GetBatchId() string { + if x != nil { + return x.BatchId + } + return "" +} + +func (x *Process) GetRetryCount() int32 { + if x != nil { + return x.RetryCount + } + return 0 +} + +var File_google_cloud_visionai_v1_lva_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_lva_resources_proto_rawDesc = []byte{ + 0x0a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x76, 0x61, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x22, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6c, + 0x76, 0x61, 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, 0x8c, 0x04, 0x0a, 0x08, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 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, 0x46, + 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x13, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x65, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x5f, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, + 0x6b, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 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, 0x63, 0xea, 0x41, 0x60, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x7d, 0x22, 0xa1, 0x07, 0x0a, 0x08, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 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, 0x46, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x5d, 0x0a, 0x13, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x6f, 0x0a, 0x15, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x13, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x4d, 0x61, + 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x72, 0x0a, 0x16, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x6d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x14, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x73, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x74, 0x63, 0x68, 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, 0x1a, 0x46, 0x0a, 0x18, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 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, 0x1a, 0x47, 0x0a, 0x19, + 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x4d, 0x61, 0x70, + 0x70, 0x69, 0x6e, 0x67, 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, 0x75, 0xea, 0x41, 0x72, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x4e, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, + 0x73, 0x2f, 0x7b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x7d, 0x22, 0x85, 0x05, 0x0a, + 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x44, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x08, 0x61, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x34, 0x0a, 0x13, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x12, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, + 0x72, 0x75, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x75, 0x6e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x08, 0x72, 0x75, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x72, 0x75, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x72, + 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x74, + 0xea, 0x41, 0x71, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x4e, 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, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x7d, 0x42, 0xc1, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x4c, 0x76, 0x61, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_lva_resources_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_lva_resources_proto_rawDescData = file_google_cloud_visionai_v1_lva_resources_proto_rawDesc +) + +func file_google_cloud_visionai_v1_lva_resources_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_lva_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_lva_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_lva_resources_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_lva_resources_proto_rawDescData +} + +var file_google_cloud_visionai_v1_lva_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_google_cloud_visionai_v1_lva_resources_proto_goTypes = []interface{}{ + (*Operator)(nil), // 0: google.cloud.visionai.v1.Operator + (*Analysis)(nil), // 1: google.cloud.visionai.v1.Analysis + (*Process)(nil), // 2: google.cloud.visionai.v1.Process + nil, // 3: google.cloud.visionai.v1.Operator.LabelsEntry + nil, // 4: google.cloud.visionai.v1.Analysis.LabelsEntry + nil, // 5: google.cloud.visionai.v1.Analysis.InputStreamsMappingEntry + nil, // 6: google.cloud.visionai.v1.Analysis.OutputStreamsMappingEntry + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (*OperatorDefinition)(nil), // 8: google.cloud.visionai.v1.OperatorDefinition + (*AnalysisDefinition)(nil), // 9: google.cloud.visionai.v1.AnalysisDefinition + (*RunStatus)(nil), // 10: google.cloud.visionai.v1.RunStatus + (RunMode)(0), // 11: google.cloud.visionai.v1.RunMode +} +var file_google_cloud_visionai_v1_lva_resources_proto_depIdxs = []int32{ + 7, // 0: google.cloud.visionai.v1.Operator.create_time:type_name -> google.protobuf.Timestamp + 7, // 1: google.cloud.visionai.v1.Operator.update_time:type_name -> google.protobuf.Timestamp + 3, // 2: google.cloud.visionai.v1.Operator.labels:type_name -> google.cloud.visionai.v1.Operator.LabelsEntry + 8, // 3: google.cloud.visionai.v1.Operator.operator_definition:type_name -> google.cloud.visionai.v1.OperatorDefinition + 7, // 4: google.cloud.visionai.v1.Analysis.create_time:type_name -> google.protobuf.Timestamp + 7, // 5: google.cloud.visionai.v1.Analysis.update_time:type_name -> google.protobuf.Timestamp + 4, // 6: google.cloud.visionai.v1.Analysis.labels:type_name -> google.cloud.visionai.v1.Analysis.LabelsEntry + 9, // 7: google.cloud.visionai.v1.Analysis.analysis_definition:type_name -> google.cloud.visionai.v1.AnalysisDefinition + 5, // 8: google.cloud.visionai.v1.Analysis.input_streams_mapping:type_name -> google.cloud.visionai.v1.Analysis.InputStreamsMappingEntry + 6, // 9: google.cloud.visionai.v1.Analysis.output_streams_mapping:type_name -> google.cloud.visionai.v1.Analysis.OutputStreamsMappingEntry + 7, // 10: google.cloud.visionai.v1.Process.create_time:type_name -> google.protobuf.Timestamp + 7, // 11: google.cloud.visionai.v1.Process.update_time:type_name -> google.protobuf.Timestamp + 10, // 12: google.cloud.visionai.v1.Process.run_status:type_name -> google.cloud.visionai.v1.RunStatus + 11, // 13: google.cloud.visionai.v1.Process.run_mode:type_name -> google.cloud.visionai.v1.RunMode + 14, // [14:14] is the sub-list for method output_type + 14, // [14:14] 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_visionai_v1_lva_resources_proto_init() } +func file_google_cloud_visionai_v1_lva_resources_proto_init() { + if File_google_cloud_visionai_v1_lva_resources_proto != nil { + return + } + file_google_cloud_visionai_v1_lva_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Operator); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Analysis); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Process); 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_visionai_v1_lva_resources_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_lva_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_lva_resources_proto_depIdxs, + MessageInfos: file_google_cloud_visionai_v1_lva_resources_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_lva_resources_proto = out.File + file_google_cloud_visionai_v1_lva_resources_proto_rawDesc = nil + file_google_cloud_visionai_v1_lva_resources_proto_goTypes = nil + file_google_cloud_visionai_v1_lva_resources_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/lva_service.pb.go b/visionai/apiv1/visionaipb/lva_service.pb.go new file mode 100755 index 00000000000..6e95249ec3f --- /dev/null +++ b/visionai/apiv1/visionaipb/lva_service.pb.go @@ -0,0 +1,3672 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/lva_service.proto + +package visionaipb + +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) +) + +// The enum of the types of the Registry. +type Registry int32 + +const ( + // Registry is unspecified. + Registry_REGISTRY_UNSPECIFIED Registry = 0 + // Public Registry containing the public Operators released by Google. + Registry_PUBLIC Registry = 1 + // Private Registry containing the local registered operators. + Registry_PRIVATE Registry = 2 +) + +// Enum value maps for Registry. +var ( + Registry_name = map[int32]string{ + 0: "REGISTRY_UNSPECIFIED", + 1: "PUBLIC", + 2: "PRIVATE", + } + Registry_value = map[string]int32{ + "REGISTRY_UNSPECIFIED": 0, + "PUBLIC": 1, + "PRIVATE": 2, + } +) + +func (x Registry) Enum() *Registry { + p := new(Registry) + *p = x + return p +} + +func (x Registry) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Registry) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_lva_service_proto_enumTypes[0].Descriptor() +} + +func (Registry) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_lva_service_proto_enumTypes[0] +} + +func (x Registry) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Registry.Descriptor instead. +func (Registry) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{0} +} + +// Message for requesting list of Operators. +type ListOperatorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListOperatorsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListOperatorsRequest) Reset() { + *x = ListOperatorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListOperatorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOperatorsRequest) ProtoMessage() {} + +func (x *ListOperatorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListOperatorsRequest.ProtoReflect.Descriptor instead. +func (*ListOperatorsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ListOperatorsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListOperatorsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListOperatorsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListOperatorsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListOperatorsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Operators. +type ListOperatorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Operator + Operators []*Operator `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListOperatorsResponse) Reset() { + *x = ListOperatorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListOperatorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListOperatorsResponse) ProtoMessage() {} + +func (x *ListOperatorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListOperatorsResponse.ProtoReflect.Descriptor instead. +func (*ListOperatorsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListOperatorsResponse) GetOperators() []*Operator { + if x != nil { + return x.Operators + } + return nil +} + +func (x *ListOperatorsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListOperatorsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Operator. +type GetOperatorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetOperatorRequest) Reset() { + *x = GetOperatorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetOperatorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetOperatorRequest) ProtoMessage() {} + +func (x *GetOperatorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 GetOperatorRequest.ProtoReflect.Descriptor instead. +func (*GetOperatorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetOperatorRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Operator. +type CreateOperatorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + OperatorId string `protobuf:"bytes,2,opt,name=operator_id,json=operatorId,proto3" json:"operator_id,omitempty"` + // Required. The resource being created. + Operator *Operator `protobuf:"bytes,3,opt,name=operator,proto3" json:"operator,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateOperatorRequest) Reset() { + *x = CreateOperatorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateOperatorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateOperatorRequest) ProtoMessage() {} + +func (x *CreateOperatorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 CreateOperatorRequest.ProtoReflect.Descriptor instead. +func (*CreateOperatorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateOperatorRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateOperatorRequest) GetOperatorId() string { + if x != nil { + return x.OperatorId + } + return "" +} + +func (x *CreateOperatorRequest) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *CreateOperatorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Operator. +type UpdateOperatorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Operator resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated + Operator *Operator `protobuf:"bytes,2,opt,name=operator,proto3" json:"operator,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateOperatorRequest) Reset() { + *x = UpdateOperatorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateOperatorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateOperatorRequest) ProtoMessage() {} + +func (x *UpdateOperatorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 UpdateOperatorRequest.ProtoReflect.Descriptor instead. +func (*UpdateOperatorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateOperatorRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateOperatorRequest) GetOperator() *Operator { + if x != nil { + return x.Operator + } + return nil +} + +func (x *UpdateOperatorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Operator +type DeleteOperatorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteOperatorRequest) Reset() { + *x = DeleteOperatorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteOperatorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteOperatorRequest) ProtoMessage() {} + +func (x *DeleteOperatorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 DeleteOperatorRequest.ProtoReflect.Descriptor instead. +func (*DeleteOperatorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteOperatorRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteOperatorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Analyses +type ListAnalysesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListAnalysesRequest + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListAnalysesRequest) Reset() { + *x = ListAnalysesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnalysesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnalysesRequest) ProtoMessage() {} + +func (x *ListAnalysesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListAnalysesRequest.ProtoReflect.Descriptor instead. +func (*ListAnalysesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{6} +} + +func (x *ListAnalysesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListAnalysesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListAnalysesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListAnalysesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListAnalysesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Analyses +type ListAnalysesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Analysis + Analyses []*Analysis `protobuf:"bytes,1,rep,name=analyses,proto3" json:"analyses,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListAnalysesResponse) Reset() { + *x = ListAnalysesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnalysesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnalysesResponse) ProtoMessage() {} + +func (x *ListAnalysesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListAnalysesResponse.ProtoReflect.Descriptor instead. +func (*ListAnalysesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListAnalysesResponse) GetAnalyses() []*Analysis { + if x != nil { + return x.Analyses + } + return nil +} + +func (x *ListAnalysesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListAnalysesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting an Analysis. +type GetAnalysisRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetAnalysisRequest) Reset() { + *x = GetAnalysisRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnalysisRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnalysisRequest) ProtoMessage() {} + +func (x *GetAnalysisRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 GetAnalysisRequest.ProtoReflect.Descriptor instead. +func (*GetAnalysisRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{8} +} + +func (x *GetAnalysisRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating an Analysis. +type CreateAnalysisRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + AnalysisId string `protobuf:"bytes,2,opt,name=analysis_id,json=analysisId,proto3" json:"analysis_id,omitempty"` + // Required. The resource being created. + Analysis *Analysis `protobuf:"bytes,3,opt,name=analysis,proto3" json:"analysis,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateAnalysisRequest) Reset() { + *x = CreateAnalysisRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAnalysisRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAnalysisRequest) ProtoMessage() {} + +func (x *CreateAnalysisRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 CreateAnalysisRequest.ProtoReflect.Descriptor instead. +func (*CreateAnalysisRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateAnalysisRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateAnalysisRequest) GetAnalysisId() string { + if x != nil { + return x.AnalysisId + } + return "" +} + +func (x *CreateAnalysisRequest) GetAnalysis() *Analysis { + if x != nil { + return x.Analysis + } + return nil +} + +func (x *CreateAnalysisRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating an Analysis. +type UpdateAnalysisRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Analysis resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Analysis *Analysis `protobuf:"bytes,2,opt,name=analysis,proto3" json:"analysis,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateAnalysisRequest) Reset() { + *x = UpdateAnalysisRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAnalysisRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAnalysisRequest) ProtoMessage() {} + +func (x *UpdateAnalysisRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 UpdateAnalysisRequest.ProtoReflect.Descriptor instead. +func (*UpdateAnalysisRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateAnalysisRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateAnalysisRequest) GetAnalysis() *Analysis { + if x != nil { + return x.Analysis + } + return nil +} + +func (x *UpdateAnalysisRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting an Analysis. +type DeleteAnalysisRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteAnalysisRequest) Reset() { + *x = DeleteAnalysisRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAnalysisRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAnalysisRequest) ProtoMessage() {} + +func (x *DeleteAnalysisRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 DeleteAnalysisRequest.ProtoReflect.Descriptor instead. +func (*DeleteAnalysisRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteAnalysisRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteAnalysisRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Processes. +type ListProcessesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListProcessesRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListProcessesRequest) Reset() { + *x = ListProcessesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProcessesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProcessesRequest) ProtoMessage() {} + +func (x *ListProcessesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListProcessesRequest.ProtoReflect.Descriptor instead. +func (*ListProcessesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{12} +} + +func (x *ListProcessesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListProcessesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListProcessesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListProcessesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListProcessesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Processes. +type ListProcessesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Processes. + Processes []*Process `protobuf:"bytes,1,rep,name=processes,proto3" json:"processes,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListProcessesResponse) Reset() { + *x = ListProcessesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProcessesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProcessesResponse) ProtoMessage() {} + +func (x *ListProcessesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ListProcessesResponse.ProtoReflect.Descriptor instead. +func (*ListProcessesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{13} +} + +func (x *ListProcessesResponse) GetProcesses() []*Process { + if x != nil { + return x.Processes + } + return nil +} + +func (x *ListProcessesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListProcessesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Process. +type GetProcessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetProcessRequest) Reset() { + *x = GetProcessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProcessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProcessRequest) ProtoMessage() {} + +func (x *GetProcessRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 GetProcessRequest.ProtoReflect.Descriptor instead. +func (*GetProcessRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{14} +} + +func (x *GetProcessRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Process. +type CreateProcessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + ProcessId string `protobuf:"bytes,2,opt,name=process_id,json=processId,proto3" json:"process_id,omitempty"` + // Required. The resource being created. + Process *Process `protobuf:"bytes,3,opt,name=process,proto3" json:"process,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateProcessRequest) Reset() { + *x = CreateProcessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateProcessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateProcessRequest) ProtoMessage() {} + +func (x *CreateProcessRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 CreateProcessRequest.ProtoReflect.Descriptor instead. +func (*CreateProcessRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{15} +} + +func (x *CreateProcessRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateProcessRequest) GetProcessId() string { + if x != nil { + return x.ProcessId + } + return "" +} + +func (x *CreateProcessRequest) GetProcess() *Process { + if x != nil { + return x.Process + } + return nil +} + +func (x *CreateProcessRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Process. +type UpdateProcessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Process resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Process *Process `protobuf:"bytes,2,opt,name=process,proto3" json:"process,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateProcessRequest) Reset() { + *x = UpdateProcessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateProcessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateProcessRequest) ProtoMessage() {} + +func (x *UpdateProcessRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 UpdateProcessRequest.ProtoReflect.Descriptor instead. +func (*UpdateProcessRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{16} +} + +func (x *UpdateProcessRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateProcessRequest) GetProcess() *Process { + if x != nil { + return x.Process + } + return nil +} + +func (x *UpdateProcessRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Process. +type DeleteProcessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteProcessRequest) Reset() { + *x = DeleteProcessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteProcessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteProcessRequest) ProtoMessage() {} + +func (x *DeleteProcessRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 DeleteProcessRequest.ProtoReflect.Descriptor instead. +func (*DeleteProcessRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteProcessRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteProcessRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Request message for running the processes in a batch. +type BatchRunProcessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource shared by all processes being created. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The create process requests. + Requests []*CreateProcessRequest `protobuf:"bytes,2,rep,name=requests,proto3" json:"requests,omitempty"` + // Optional. Options for batch processes. + Options *BatchRunProcessRequest_BatchRunProcessOptions `protobuf:"bytes,3,opt,name=options,proto3" json:"options,omitempty"` + // Output only. The batch ID. + BatchId string `protobuf:"bytes,4,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"` +} + +func (x *BatchRunProcessRequest) Reset() { + *x = BatchRunProcessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunProcessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunProcessRequest) ProtoMessage() {} + +func (x *BatchRunProcessRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 BatchRunProcessRequest.ProtoReflect.Descriptor instead. +func (*BatchRunProcessRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{18} +} + +func (x *BatchRunProcessRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *BatchRunProcessRequest) GetRequests() []*CreateProcessRequest { + if x != nil { + return x.Requests + } + return nil +} + +func (x *BatchRunProcessRequest) GetOptions() *BatchRunProcessRequest_BatchRunProcessOptions { + if x != nil { + return x.Options + } + return nil +} + +func (x *BatchRunProcessRequest) GetBatchId() string { + if x != nil { + return x.BatchId + } + return "" +} + +// Response message for running the processes in a batch. +type BatchRunProcessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The batch ID. + BatchId string `protobuf:"bytes,1,opt,name=batch_id,json=batchId,proto3" json:"batch_id,omitempty"` + // Processes created. + Processes []*Process `protobuf:"bytes,2,rep,name=processes,proto3" json:"processes,omitempty"` +} + +func (x *BatchRunProcessResponse) Reset() { + *x = BatchRunProcessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunProcessResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunProcessResponse) ProtoMessage() {} + +func (x *BatchRunProcessResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 BatchRunProcessResponse.ProtoReflect.Descriptor instead. +func (*BatchRunProcessResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{19} +} + +func (x *BatchRunProcessResponse) GetBatchId() string { + if x != nil { + return x.BatchId + } + return "" +} + +func (x *BatchRunProcessResponse) GetProcesses() []*Process { + if x != nil { + return x.Processes + } + return nil +} + +// Request message for querying operator info. +type ResolveOperatorInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ResolveOperatorInfoRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The operator queries. + Queries []*OperatorQuery `protobuf:"bytes,2,rep,name=queries,proto3" json:"queries,omitempty"` +} + +func (x *ResolveOperatorInfoRequest) Reset() { + *x = ResolveOperatorInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResolveOperatorInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveOperatorInfoRequest) ProtoMessage() {} + +func (x *ResolveOperatorInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_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 ResolveOperatorInfoRequest.ProtoReflect.Descriptor instead. +func (*ResolveOperatorInfoRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{20} +} + +func (x *ResolveOperatorInfoRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ResolveOperatorInfoRequest) GetQueries() []*OperatorQuery { + if x != nil { + return x.Queries + } + return nil +} + +// OperatorQuery represents one query to a Operator. +type OperatorQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The canonical Name of the operator. e.g. OccupancyCounting. + Operator string `protobuf:"bytes,1,opt,name=operator,proto3" json:"operator,omitempty"` + // Optional. Tag of the operator. + Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` + // Optional. Registry of the operator. + Registry Registry `protobuf:"varint,3,opt,name=registry,proto3,enum=google.cloud.visionai.v1.Registry" json:"registry,omitempty"` +} + +func (x *OperatorQuery) Reset() { + *x = OperatorQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OperatorQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OperatorQuery) ProtoMessage() {} + +func (x *OperatorQuery) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[21] + 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 OperatorQuery.ProtoReflect.Descriptor instead. +func (*OperatorQuery) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{21} +} + +func (x *OperatorQuery) GetOperator() string { + if x != nil { + return x.Operator + } + return "" +} + +func (x *OperatorQuery) GetTag() string { + if x != nil { + return x.Tag + } + return "" +} + +func (x *OperatorQuery) GetRegistry() Registry { + if x != nil { + return x.Registry + } + return Registry_REGISTRY_UNSPECIFIED +} + +// Response message of ResolveOperatorInfo API. +type ResolveOperatorInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Operators with detailed information. + Operators []*Operator `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"` +} + +func (x *ResolveOperatorInfoResponse) Reset() { + *x = ResolveOperatorInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResolveOperatorInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResolveOperatorInfoResponse) ProtoMessage() {} + +func (x *ResolveOperatorInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[22] + 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 ResolveOperatorInfoResponse.ProtoReflect.Descriptor instead. +func (*ResolveOperatorInfoResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{22} +} + +func (x *ResolveOperatorInfoResponse) GetOperators() []*Operator { + if x != nil { + return x.Operators + } + return nil +} + +// Request message of ListPublicOperatorsRequest API. +type ListPublicOperatorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListPublicOperatorsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListPublicOperatorsRequest) Reset() { + *x = ListPublicOperatorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPublicOperatorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPublicOperatorsRequest) ProtoMessage() {} + +func (x *ListPublicOperatorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[23] + 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 ListPublicOperatorsRequest.ProtoReflect.Descriptor instead. +func (*ListPublicOperatorsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{23} +} + +func (x *ListPublicOperatorsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListPublicOperatorsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListPublicOperatorsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListPublicOperatorsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListPublicOperatorsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Response message of ListPublicOperators API. +type ListPublicOperatorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Operator + Operators []*Operator `protobuf:"bytes,1,rep,name=operators,proto3" json:"operators,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListPublicOperatorsResponse) Reset() { + *x = ListPublicOperatorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPublicOperatorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPublicOperatorsResponse) ProtoMessage() {} + +func (x *ListPublicOperatorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[24] + 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 ListPublicOperatorsResponse.ProtoReflect.Descriptor instead. +func (*ListPublicOperatorsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{24} +} + +func (x *ListPublicOperatorsResponse) GetOperators() []*Operator { + if x != nil { + return x.Operators + } + return nil +} + +func (x *ListPublicOperatorsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Options for batch processes. +type BatchRunProcessRequest_BatchRunProcessOptions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The retry counts per process. Default: 3. + RetryCount int32 `protobuf:"varint,1,opt,name=retry_count,json=retryCount,proto3" json:"retry_count,omitempty"` + // The batch size. Default: 5, maximum: 100. + BatchSize int32 `protobuf:"varint,2,opt,name=batch_size,json=batchSize,proto3" json:"batch_size,omitempty"` +} + +func (x *BatchRunProcessRequest_BatchRunProcessOptions) Reset() { + *x = BatchRunProcessRequest_BatchRunProcessOptions{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BatchRunProcessRequest_BatchRunProcessOptions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BatchRunProcessRequest_BatchRunProcessOptions) ProtoMessage() {} + +func (x *BatchRunProcessRequest_BatchRunProcessOptions) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_lva_service_proto_msgTypes[25] + 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 BatchRunProcessRequest_BatchRunProcessOptions.ProtoReflect.Descriptor instead. +func (*BatchRunProcessRequest_BatchRunProcessOptions) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP(), []int{18, 0} +} + +func (x *BatchRunProcessRequest_BatchRunProcessOptions) GetRetryCount() int32 { + if x != nil { + return x.RetryCount + } + return 0 +} + +func (x *BatchRunProcessRequest_BatchRunProcessOptions) GetBatchSize() int32 { + if x != nil { + return x.BatchSize + } + return 0 +} + +var File_google_cloud_visionai_v1_lva_service_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_lva_service_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x76, 0x61, 0x5f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 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, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x2c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x76, 0x61, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 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, 0xc8, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 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, 0xa3, 0x01, + 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x09, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x52, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, + 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, + 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, + 0x43, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x79, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 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, 0xa0, 0x01, 0x0a, 0x14, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 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, 0x52, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xe7, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, + 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x49, 0x64, 0x12, 0x43, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc2, 0x01, 0x0a, + 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 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, 0x43, 0x0a, 0x08, 0x61, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x79, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, + 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, + 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0xa2, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 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, 0x50, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, + 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, 0x0a, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x22, 0xbe, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 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, 0x40, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0x77, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, + 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x8c, 0x03, 0x0a, 0x16, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x4f, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x66, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x1a, + 0x58, 0x0a, 0x16, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x74, + 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, + 0x72, 0x65, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x75, 0x0a, 0x17, 0x42, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x74, 0x63, 0x68, 0x49, 0x64, 0x12, + 0x3f, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, + 0x22, 0xa7, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 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, 0x46, 0x0a, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x71, 0x75, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x0d, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x08, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x15, 0x0a, + 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x03, 0x74, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x08, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x22, 0x5f, 0x0a, 0x1b, 0x52, 0x65, 0x73, + 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x22, 0xce, 0x01, 0x0a, 0x1a, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 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, 0x87, 0x01, 0x0a, 0x1b, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x09, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x2a, 0x3d, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x79, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x47, 0x49, 0x53, 0x54, 0x52, 0x59, 0x5f, 0x55, 0x4e, + 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x50, + 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41, + 0x54, 0x45, 0x10, 0x02, 0x32, 0x8d, 0x1e, 0x0a, 0x12, 0x4c, 0x69, 0x76, 0x65, 0x56, 0x69, 0x64, + 0x65, 0x6f, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x74, 0x69, 0x63, 0x73, 0x12, 0xcc, 0x01, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x3a, 0x6c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x53, 0xda, 0x41, 0x0e, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x71, 0x75, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x3a, 0x01, 0x2a, 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, + 0x3a, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0xb0, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdf, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 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, 0x1d, 0x0a, + 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x11, 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, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2c, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, + 0x3a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0xe1, 0x01, 0x0a, 0x0e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, + 0x1d, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x14, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x08, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x32, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 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, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 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, 0x69, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 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, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb7, 0x01, 0x0a, 0x0c, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 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, + 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x65, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xea, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 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, 0x87, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x12, 0x11, 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, 0x61, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2c, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, + 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 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, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x12, 0xec, 0x01, 0x0a, + 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, + 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 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, + 0x89, 0x01, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, + 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xda, 0x41, 0x14, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x2c, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4c, 0x3a, + 0x08, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x0e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x12, 0x2f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 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, 0x73, + 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 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, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0xbb, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x49, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x38, 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, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x12, 0xa5, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x22, 0x47, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, + 0x38, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe5, 0x01, 0x0a, 0x0d, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 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, 0x84, 0x01, 0xca, 0x41, 0x1c, + 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x11, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x07, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x22, 0x38, 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, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, + 0x73, 0x12, 0xe7, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 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, 0x86, 0x01, 0xca, 0x41, 0x1c, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x2c, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, + 0x3a, 0x07, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x32, 0x40, 0x2f, 0x76, 0x31, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd4, 0x01, 0x0a, 0x0d, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 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, 0x74, 0xca, 0x41, + 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 0x3a, 0x2a, 0x38, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xf2, 0x01, 0x0a, 0x0f, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 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, 0x8d, 0x01, 0xca, 0x41, 0x2c, 0x0a, 0x17, 0x42, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x0f, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x2c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x46, 0x3a, 0x01, 0x2a, 0x22, 0x41, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x62, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6e, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 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, 0xbf, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x4c, 0x76, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, + 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_lva_service_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_lva_service_proto_rawDescData = file_google_cloud_visionai_v1_lva_service_proto_rawDesc +) + +func file_google_cloud_visionai_v1_lva_service_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_lva_service_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_lva_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_lva_service_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_lva_service_proto_rawDescData +} + +var file_google_cloud_visionai_v1_lva_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_visionai_v1_lva_service_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_google_cloud_visionai_v1_lva_service_proto_goTypes = []interface{}{ + (Registry)(0), // 0: google.cloud.visionai.v1.Registry + (*ListOperatorsRequest)(nil), // 1: google.cloud.visionai.v1.ListOperatorsRequest + (*ListOperatorsResponse)(nil), // 2: google.cloud.visionai.v1.ListOperatorsResponse + (*GetOperatorRequest)(nil), // 3: google.cloud.visionai.v1.GetOperatorRequest + (*CreateOperatorRequest)(nil), // 4: google.cloud.visionai.v1.CreateOperatorRequest + (*UpdateOperatorRequest)(nil), // 5: google.cloud.visionai.v1.UpdateOperatorRequest + (*DeleteOperatorRequest)(nil), // 6: google.cloud.visionai.v1.DeleteOperatorRequest + (*ListAnalysesRequest)(nil), // 7: google.cloud.visionai.v1.ListAnalysesRequest + (*ListAnalysesResponse)(nil), // 8: google.cloud.visionai.v1.ListAnalysesResponse + (*GetAnalysisRequest)(nil), // 9: google.cloud.visionai.v1.GetAnalysisRequest + (*CreateAnalysisRequest)(nil), // 10: google.cloud.visionai.v1.CreateAnalysisRequest + (*UpdateAnalysisRequest)(nil), // 11: google.cloud.visionai.v1.UpdateAnalysisRequest + (*DeleteAnalysisRequest)(nil), // 12: google.cloud.visionai.v1.DeleteAnalysisRequest + (*ListProcessesRequest)(nil), // 13: google.cloud.visionai.v1.ListProcessesRequest + (*ListProcessesResponse)(nil), // 14: google.cloud.visionai.v1.ListProcessesResponse + (*GetProcessRequest)(nil), // 15: google.cloud.visionai.v1.GetProcessRequest + (*CreateProcessRequest)(nil), // 16: google.cloud.visionai.v1.CreateProcessRequest + (*UpdateProcessRequest)(nil), // 17: google.cloud.visionai.v1.UpdateProcessRequest + (*DeleteProcessRequest)(nil), // 18: google.cloud.visionai.v1.DeleteProcessRequest + (*BatchRunProcessRequest)(nil), // 19: google.cloud.visionai.v1.BatchRunProcessRequest + (*BatchRunProcessResponse)(nil), // 20: google.cloud.visionai.v1.BatchRunProcessResponse + (*ResolveOperatorInfoRequest)(nil), // 21: google.cloud.visionai.v1.ResolveOperatorInfoRequest + (*OperatorQuery)(nil), // 22: google.cloud.visionai.v1.OperatorQuery + (*ResolveOperatorInfoResponse)(nil), // 23: google.cloud.visionai.v1.ResolveOperatorInfoResponse + (*ListPublicOperatorsRequest)(nil), // 24: google.cloud.visionai.v1.ListPublicOperatorsRequest + (*ListPublicOperatorsResponse)(nil), // 25: google.cloud.visionai.v1.ListPublicOperatorsResponse + (*BatchRunProcessRequest_BatchRunProcessOptions)(nil), // 26: google.cloud.visionai.v1.BatchRunProcessRequest.BatchRunProcessOptions + (*Operator)(nil), // 27: google.cloud.visionai.v1.Operator + (*fieldmaskpb.FieldMask)(nil), // 28: google.protobuf.FieldMask + (*Analysis)(nil), // 29: google.cloud.visionai.v1.Analysis + (*Process)(nil), // 30: google.cloud.visionai.v1.Process + (*longrunningpb.Operation)(nil), // 31: google.longrunning.Operation +} +var file_google_cloud_visionai_v1_lva_service_proto_depIdxs = []int32{ + 27, // 0: google.cloud.visionai.v1.ListOperatorsResponse.operators:type_name -> google.cloud.visionai.v1.Operator + 27, // 1: google.cloud.visionai.v1.CreateOperatorRequest.operator:type_name -> google.cloud.visionai.v1.Operator + 28, // 2: google.cloud.visionai.v1.UpdateOperatorRequest.update_mask:type_name -> google.protobuf.FieldMask + 27, // 3: google.cloud.visionai.v1.UpdateOperatorRequest.operator:type_name -> google.cloud.visionai.v1.Operator + 29, // 4: google.cloud.visionai.v1.ListAnalysesResponse.analyses:type_name -> google.cloud.visionai.v1.Analysis + 29, // 5: google.cloud.visionai.v1.CreateAnalysisRequest.analysis:type_name -> google.cloud.visionai.v1.Analysis + 28, // 6: google.cloud.visionai.v1.UpdateAnalysisRequest.update_mask:type_name -> google.protobuf.FieldMask + 29, // 7: google.cloud.visionai.v1.UpdateAnalysisRequest.analysis:type_name -> google.cloud.visionai.v1.Analysis + 30, // 8: google.cloud.visionai.v1.ListProcessesResponse.processes:type_name -> google.cloud.visionai.v1.Process + 30, // 9: google.cloud.visionai.v1.CreateProcessRequest.process:type_name -> google.cloud.visionai.v1.Process + 28, // 10: google.cloud.visionai.v1.UpdateProcessRequest.update_mask:type_name -> google.protobuf.FieldMask + 30, // 11: google.cloud.visionai.v1.UpdateProcessRequest.process:type_name -> google.cloud.visionai.v1.Process + 16, // 12: google.cloud.visionai.v1.BatchRunProcessRequest.requests:type_name -> google.cloud.visionai.v1.CreateProcessRequest + 26, // 13: google.cloud.visionai.v1.BatchRunProcessRequest.options:type_name -> google.cloud.visionai.v1.BatchRunProcessRequest.BatchRunProcessOptions + 30, // 14: google.cloud.visionai.v1.BatchRunProcessResponse.processes:type_name -> google.cloud.visionai.v1.Process + 22, // 15: google.cloud.visionai.v1.ResolveOperatorInfoRequest.queries:type_name -> google.cloud.visionai.v1.OperatorQuery + 0, // 16: google.cloud.visionai.v1.OperatorQuery.registry:type_name -> google.cloud.visionai.v1.Registry + 27, // 17: google.cloud.visionai.v1.ResolveOperatorInfoResponse.operators:type_name -> google.cloud.visionai.v1.Operator + 27, // 18: google.cloud.visionai.v1.ListPublicOperatorsResponse.operators:type_name -> google.cloud.visionai.v1.Operator + 24, // 19: google.cloud.visionai.v1.LiveVideoAnalytics.ListPublicOperators:input_type -> google.cloud.visionai.v1.ListPublicOperatorsRequest + 21, // 20: google.cloud.visionai.v1.LiveVideoAnalytics.ResolveOperatorInfo:input_type -> google.cloud.visionai.v1.ResolveOperatorInfoRequest + 1, // 21: google.cloud.visionai.v1.LiveVideoAnalytics.ListOperators:input_type -> google.cloud.visionai.v1.ListOperatorsRequest + 3, // 22: google.cloud.visionai.v1.LiveVideoAnalytics.GetOperator:input_type -> google.cloud.visionai.v1.GetOperatorRequest + 4, // 23: google.cloud.visionai.v1.LiveVideoAnalytics.CreateOperator:input_type -> google.cloud.visionai.v1.CreateOperatorRequest + 5, // 24: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateOperator:input_type -> google.cloud.visionai.v1.UpdateOperatorRequest + 6, // 25: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteOperator:input_type -> google.cloud.visionai.v1.DeleteOperatorRequest + 7, // 26: google.cloud.visionai.v1.LiveVideoAnalytics.ListAnalyses:input_type -> google.cloud.visionai.v1.ListAnalysesRequest + 9, // 27: google.cloud.visionai.v1.LiveVideoAnalytics.GetAnalysis:input_type -> google.cloud.visionai.v1.GetAnalysisRequest + 10, // 28: google.cloud.visionai.v1.LiveVideoAnalytics.CreateAnalysis:input_type -> google.cloud.visionai.v1.CreateAnalysisRequest + 11, // 29: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateAnalysis:input_type -> google.cloud.visionai.v1.UpdateAnalysisRequest + 12, // 30: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteAnalysis:input_type -> google.cloud.visionai.v1.DeleteAnalysisRequest + 13, // 31: google.cloud.visionai.v1.LiveVideoAnalytics.ListProcesses:input_type -> google.cloud.visionai.v1.ListProcessesRequest + 15, // 32: google.cloud.visionai.v1.LiveVideoAnalytics.GetProcess:input_type -> google.cloud.visionai.v1.GetProcessRequest + 16, // 33: google.cloud.visionai.v1.LiveVideoAnalytics.CreateProcess:input_type -> google.cloud.visionai.v1.CreateProcessRequest + 17, // 34: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateProcess:input_type -> google.cloud.visionai.v1.UpdateProcessRequest + 18, // 35: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteProcess:input_type -> google.cloud.visionai.v1.DeleteProcessRequest + 19, // 36: google.cloud.visionai.v1.LiveVideoAnalytics.BatchRunProcess:input_type -> google.cloud.visionai.v1.BatchRunProcessRequest + 25, // 37: google.cloud.visionai.v1.LiveVideoAnalytics.ListPublicOperators:output_type -> google.cloud.visionai.v1.ListPublicOperatorsResponse + 23, // 38: google.cloud.visionai.v1.LiveVideoAnalytics.ResolveOperatorInfo:output_type -> google.cloud.visionai.v1.ResolveOperatorInfoResponse + 2, // 39: google.cloud.visionai.v1.LiveVideoAnalytics.ListOperators:output_type -> google.cloud.visionai.v1.ListOperatorsResponse + 27, // 40: google.cloud.visionai.v1.LiveVideoAnalytics.GetOperator:output_type -> google.cloud.visionai.v1.Operator + 31, // 41: google.cloud.visionai.v1.LiveVideoAnalytics.CreateOperator:output_type -> google.longrunning.Operation + 31, // 42: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateOperator:output_type -> google.longrunning.Operation + 31, // 43: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteOperator:output_type -> google.longrunning.Operation + 8, // 44: google.cloud.visionai.v1.LiveVideoAnalytics.ListAnalyses:output_type -> google.cloud.visionai.v1.ListAnalysesResponse + 29, // 45: google.cloud.visionai.v1.LiveVideoAnalytics.GetAnalysis:output_type -> google.cloud.visionai.v1.Analysis + 31, // 46: google.cloud.visionai.v1.LiveVideoAnalytics.CreateAnalysis:output_type -> google.longrunning.Operation + 31, // 47: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateAnalysis:output_type -> google.longrunning.Operation + 31, // 48: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteAnalysis:output_type -> google.longrunning.Operation + 14, // 49: google.cloud.visionai.v1.LiveVideoAnalytics.ListProcesses:output_type -> google.cloud.visionai.v1.ListProcessesResponse + 30, // 50: google.cloud.visionai.v1.LiveVideoAnalytics.GetProcess:output_type -> google.cloud.visionai.v1.Process + 31, // 51: google.cloud.visionai.v1.LiveVideoAnalytics.CreateProcess:output_type -> google.longrunning.Operation + 31, // 52: google.cloud.visionai.v1.LiveVideoAnalytics.UpdateProcess:output_type -> google.longrunning.Operation + 31, // 53: google.cloud.visionai.v1.LiveVideoAnalytics.DeleteProcess:output_type -> google.longrunning.Operation + 31, // 54: google.cloud.visionai.v1.LiveVideoAnalytics.BatchRunProcess:output_type -> google.longrunning.Operation + 37, // [37:55] is the sub-list for method output_type + 19, // [19:37] 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 +} + +func init() { file_google_cloud_visionai_v1_lva_service_proto_init() } +func file_google_cloud_visionai_v1_lva_service_proto_init() { + if File_google_cloud_visionai_v1_lva_service_proto != nil { + return + } + file_google_cloud_visionai_v1_common_proto_init() + file_google_cloud_visionai_v1_lva_resources_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOperatorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListOperatorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetOperatorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateOperatorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateOperatorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteOperatorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnalysesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnalysesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnalysisRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAnalysisRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAnalysisRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAnalysisRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProcessesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProcessesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProcessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateProcessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateProcessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteProcessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunProcessRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunProcessResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResolveOperatorInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OperatorQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResolveOperatorInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPublicOperatorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPublicOperatorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_lva_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BatchRunProcessRequest_BatchRunProcessOptions); 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_visionai_v1_lva_service_proto_rawDesc, + NumEnums: 1, + NumMessages: 26, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_lva_service_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_lva_service_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_lva_service_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_lva_service_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_lva_service_proto = out.File + file_google_cloud_visionai_v1_lva_service_proto_rawDesc = nil + file_google_cloud_visionai_v1_lva_service_proto_goTypes = nil + file_google_cloud_visionai_v1_lva_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 + +// LiveVideoAnalyticsClient is the client API for LiveVideoAnalytics service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type LiveVideoAnalyticsClient interface { + // ListPublicOperators returns all the operators in public registry. + ListPublicOperators(ctx context.Context, in *ListPublicOperatorsRequest, opts ...grpc.CallOption) (*ListPublicOperatorsResponse, error) + // ResolveOperatorInfo returns the operator information based on the request. + ResolveOperatorInfo(ctx context.Context, in *ResolveOperatorInfoRequest, opts ...grpc.CallOption) (*ResolveOperatorInfoResponse, error) + // Lists Operators in a given project and location. + ListOperators(ctx context.Context, in *ListOperatorsRequest, opts ...grpc.CallOption) (*ListOperatorsResponse, error) + // Gets details of a single Operator. + GetOperator(ctx context.Context, in *GetOperatorRequest, opts ...grpc.CallOption) (*Operator, error) + // Creates a new Operator in a given project and location. + CreateOperator(ctx context.Context, in *CreateOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Operator. + UpdateOperator(ctx context.Context, in *UpdateOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Operator. + DeleteOperator(ctx context.Context, in *DeleteOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Analyses in a given project and location. + ListAnalyses(ctx context.Context, in *ListAnalysesRequest, opts ...grpc.CallOption) (*ListAnalysesResponse, error) + // Gets details of a single Analysis. + GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) + // Creates a new Analysis in a given project and location. + CreateAnalysis(ctx context.Context, in *CreateAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Analysis. + UpdateAnalysis(ctx context.Context, in *UpdateAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Analysis. + DeleteAnalysis(ctx context.Context, in *DeleteAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Processes in a given project and location. + ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error) + // Gets details of a single Process. + GetProcess(ctx context.Context, in *GetProcessRequest, opts ...grpc.CallOption) (*Process, error) + // Creates a new Process in a given project and location. + CreateProcess(ctx context.Context, in *CreateProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Process. + UpdateProcess(ctx context.Context, in *UpdateProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Process. + DeleteProcess(ctx context.Context, in *DeleteProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Run all of the processes to "completion". Max time for each process is + // the LRO time limit. + BatchRunProcess(ctx context.Context, in *BatchRunProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type liveVideoAnalyticsClient struct { + cc grpc.ClientConnInterface +} + +func NewLiveVideoAnalyticsClient(cc grpc.ClientConnInterface) LiveVideoAnalyticsClient { + return &liveVideoAnalyticsClient{cc} +} + +func (c *liveVideoAnalyticsClient) ListPublicOperators(ctx context.Context, in *ListPublicOperatorsRequest, opts ...grpc.CallOption) (*ListPublicOperatorsResponse, error) { + out := new(ListPublicOperatorsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/ListPublicOperators", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) ResolveOperatorInfo(ctx context.Context, in *ResolveOperatorInfoRequest, opts ...grpc.CallOption) (*ResolveOperatorInfoResponse, error) { + out := new(ResolveOperatorInfoResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/ResolveOperatorInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) ListOperators(ctx context.Context, in *ListOperatorsRequest, opts ...grpc.CallOption) (*ListOperatorsResponse, error) { + out := new(ListOperatorsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/ListOperators", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) GetOperator(ctx context.Context, in *GetOperatorRequest, opts ...grpc.CallOption) (*Operator, error) { + out := new(Operator) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/GetOperator", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) CreateOperator(ctx context.Context, in *CreateOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateOperator", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) UpdateOperator(ctx context.Context, in *UpdateOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateOperator", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) DeleteOperator(ctx context.Context, in *DeleteOperatorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteOperator", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) ListAnalyses(ctx context.Context, in *ListAnalysesRequest, opts ...grpc.CallOption) (*ListAnalysesResponse, error) { + out := new(ListAnalysesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/ListAnalyses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) GetAnalysis(ctx context.Context, in *GetAnalysisRequest, opts ...grpc.CallOption) (*Analysis, error) { + out := new(Analysis) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/GetAnalysis", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) CreateAnalysis(ctx context.Context, in *CreateAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateAnalysis", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) UpdateAnalysis(ctx context.Context, in *UpdateAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateAnalysis", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) DeleteAnalysis(ctx context.Context, in *DeleteAnalysisRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteAnalysis", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) ListProcesses(ctx context.Context, in *ListProcessesRequest, opts ...grpc.CallOption) (*ListProcessesResponse, error) { + out := new(ListProcessesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/ListProcesses", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) GetProcess(ctx context.Context, in *GetProcessRequest, opts ...grpc.CallOption) (*Process, error) { + out := new(Process) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/GetProcess", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) CreateProcess(ctx context.Context, in *CreateProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateProcess", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) UpdateProcess(ctx context.Context, in *UpdateProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateProcess", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) DeleteProcess(ctx context.Context, in *DeleteProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteProcess", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *liveVideoAnalyticsClient) BatchRunProcess(ctx context.Context, in *BatchRunProcessRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.LiveVideoAnalytics/BatchRunProcess", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// LiveVideoAnalyticsServer is the server API for LiveVideoAnalytics service. +type LiveVideoAnalyticsServer interface { + // ListPublicOperators returns all the operators in public registry. + ListPublicOperators(context.Context, *ListPublicOperatorsRequest) (*ListPublicOperatorsResponse, error) + // ResolveOperatorInfo returns the operator information based on the request. + ResolveOperatorInfo(context.Context, *ResolveOperatorInfoRequest) (*ResolveOperatorInfoResponse, error) + // Lists Operators in a given project and location. + ListOperators(context.Context, *ListOperatorsRequest) (*ListOperatorsResponse, error) + // Gets details of a single Operator. + GetOperator(context.Context, *GetOperatorRequest) (*Operator, error) + // Creates a new Operator in a given project and location. + CreateOperator(context.Context, *CreateOperatorRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Operator. + UpdateOperator(context.Context, *UpdateOperatorRequest) (*longrunningpb.Operation, error) + // Deletes a single Operator. + DeleteOperator(context.Context, *DeleteOperatorRequest) (*longrunningpb.Operation, error) + // Lists Analyses in a given project and location. + ListAnalyses(context.Context, *ListAnalysesRequest) (*ListAnalysesResponse, error) + // Gets details of a single Analysis. + GetAnalysis(context.Context, *GetAnalysisRequest) (*Analysis, error) + // Creates a new Analysis in a given project and location. + CreateAnalysis(context.Context, *CreateAnalysisRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Analysis. + UpdateAnalysis(context.Context, *UpdateAnalysisRequest) (*longrunningpb.Operation, error) + // Deletes a single Analysis. + DeleteAnalysis(context.Context, *DeleteAnalysisRequest) (*longrunningpb.Operation, error) + // Lists Processes in a given project and location. + ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error) + // Gets details of a single Process. + GetProcess(context.Context, *GetProcessRequest) (*Process, error) + // Creates a new Process in a given project and location. + CreateProcess(context.Context, *CreateProcessRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Process. + UpdateProcess(context.Context, *UpdateProcessRequest) (*longrunningpb.Operation, error) + // Deletes a single Process. + DeleteProcess(context.Context, *DeleteProcessRequest) (*longrunningpb.Operation, error) + // Run all of the processes to "completion". Max time for each process is + // the LRO time limit. + BatchRunProcess(context.Context, *BatchRunProcessRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedLiveVideoAnalyticsServer can be embedded to have forward compatible implementations. +type UnimplementedLiveVideoAnalyticsServer struct { +} + +func (*UnimplementedLiveVideoAnalyticsServer) ListPublicOperators(context.Context, *ListPublicOperatorsRequest) (*ListPublicOperatorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPublicOperators not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) ResolveOperatorInfo(context.Context, *ResolveOperatorInfoRequest) (*ResolveOperatorInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResolveOperatorInfo not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) ListOperators(context.Context, *ListOperatorsRequest) (*ListOperatorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListOperators not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) GetOperator(context.Context, *GetOperatorRequest) (*Operator, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetOperator not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) CreateOperator(context.Context, *CreateOperatorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateOperator not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) UpdateOperator(context.Context, *UpdateOperatorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateOperator not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) DeleteOperator(context.Context, *DeleteOperatorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteOperator not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) ListAnalyses(context.Context, *ListAnalysesRequest) (*ListAnalysesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListAnalyses not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) GetAnalysis(context.Context, *GetAnalysisRequest) (*Analysis, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAnalysis not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) CreateAnalysis(context.Context, *CreateAnalysisRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateAnalysis not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) UpdateAnalysis(context.Context, *UpdateAnalysisRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateAnalysis not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) DeleteAnalysis(context.Context, *DeleteAnalysisRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteAnalysis not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) ListProcesses(context.Context, *ListProcessesRequest) (*ListProcessesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProcesses not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) GetProcess(context.Context, *GetProcessRequest) (*Process, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProcess not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) CreateProcess(context.Context, *CreateProcessRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateProcess not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) UpdateProcess(context.Context, *UpdateProcessRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProcess not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) DeleteProcess(context.Context, *DeleteProcessRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProcess not implemented") +} +func (*UnimplementedLiveVideoAnalyticsServer) BatchRunProcess(context.Context, *BatchRunProcessRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method BatchRunProcess not implemented") +} + +func RegisterLiveVideoAnalyticsServer(s *grpc.Server, srv LiveVideoAnalyticsServer) { + s.RegisterService(&_LiveVideoAnalytics_serviceDesc, srv) +} + +func _LiveVideoAnalytics_ListPublicOperators_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPublicOperatorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).ListPublicOperators(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/ListPublicOperators", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).ListPublicOperators(ctx, req.(*ListPublicOperatorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_ResolveOperatorInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResolveOperatorInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).ResolveOperatorInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/ResolveOperatorInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).ResolveOperatorInfo(ctx, req.(*ResolveOperatorInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_ListOperators_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListOperatorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).ListOperators(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/ListOperators", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).ListOperators(ctx, req.(*ListOperatorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_GetOperator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetOperatorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).GetOperator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/GetOperator", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).GetOperator(ctx, req.(*GetOperatorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_CreateOperator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateOperatorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).CreateOperator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateOperator", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).CreateOperator(ctx, req.(*CreateOperatorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_UpdateOperator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateOperatorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).UpdateOperator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateOperator", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).UpdateOperator(ctx, req.(*UpdateOperatorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_DeleteOperator_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteOperatorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).DeleteOperator(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteOperator", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).DeleteOperator(ctx, req.(*DeleteOperatorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_ListAnalyses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAnalysesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).ListAnalyses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/ListAnalyses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).ListAnalyses(ctx, req.(*ListAnalysesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_GetAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnalysisRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).GetAnalysis(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/GetAnalysis", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).GetAnalysis(ctx, req.(*GetAnalysisRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_CreateAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAnalysisRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).CreateAnalysis(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateAnalysis", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).CreateAnalysis(ctx, req.(*CreateAnalysisRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_UpdateAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAnalysisRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).UpdateAnalysis(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateAnalysis", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).UpdateAnalysis(ctx, req.(*UpdateAnalysisRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_DeleteAnalysis_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAnalysisRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).DeleteAnalysis(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteAnalysis", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).DeleteAnalysis(ctx, req.(*DeleteAnalysisRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_ListProcesses_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListProcessesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).ListProcesses(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/ListProcesses", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).ListProcesses(ctx, req.(*ListProcessesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_GetProcess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProcessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).GetProcess(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/GetProcess", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).GetProcess(ctx, req.(*GetProcessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_CreateProcess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateProcessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).CreateProcess(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/CreateProcess", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).CreateProcess(ctx, req.(*CreateProcessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_UpdateProcess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateProcessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).UpdateProcess(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/UpdateProcess", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).UpdateProcess(ctx, req.(*UpdateProcessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_DeleteProcess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteProcessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).DeleteProcess(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/DeleteProcess", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).DeleteProcess(ctx, req.(*DeleteProcessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LiveVideoAnalytics_BatchRunProcess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BatchRunProcessRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LiveVideoAnalyticsServer).BatchRunProcess(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.LiveVideoAnalytics/BatchRunProcess", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LiveVideoAnalyticsServer).BatchRunProcess(ctx, req.(*BatchRunProcessRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _LiveVideoAnalytics_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.LiveVideoAnalytics", + HandlerType: (*LiveVideoAnalyticsServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListPublicOperators", + Handler: _LiveVideoAnalytics_ListPublicOperators_Handler, + }, + { + MethodName: "ResolveOperatorInfo", + Handler: _LiveVideoAnalytics_ResolveOperatorInfo_Handler, + }, + { + MethodName: "ListOperators", + Handler: _LiveVideoAnalytics_ListOperators_Handler, + }, + { + MethodName: "GetOperator", + Handler: _LiveVideoAnalytics_GetOperator_Handler, + }, + { + MethodName: "CreateOperator", + Handler: _LiveVideoAnalytics_CreateOperator_Handler, + }, + { + MethodName: "UpdateOperator", + Handler: _LiveVideoAnalytics_UpdateOperator_Handler, + }, + { + MethodName: "DeleteOperator", + Handler: _LiveVideoAnalytics_DeleteOperator_Handler, + }, + { + MethodName: "ListAnalyses", + Handler: _LiveVideoAnalytics_ListAnalyses_Handler, + }, + { + MethodName: "GetAnalysis", + Handler: _LiveVideoAnalytics_GetAnalysis_Handler, + }, + { + MethodName: "CreateAnalysis", + Handler: _LiveVideoAnalytics_CreateAnalysis_Handler, + }, + { + MethodName: "UpdateAnalysis", + Handler: _LiveVideoAnalytics_UpdateAnalysis_Handler, + }, + { + MethodName: "DeleteAnalysis", + Handler: _LiveVideoAnalytics_DeleteAnalysis_Handler, + }, + { + MethodName: "ListProcesses", + Handler: _LiveVideoAnalytics_ListProcesses_Handler, + }, + { + MethodName: "GetProcess", + Handler: _LiveVideoAnalytics_GetProcess_Handler, + }, + { + MethodName: "CreateProcess", + Handler: _LiveVideoAnalytics_CreateProcess_Handler, + }, + { + MethodName: "UpdateProcess", + Handler: _LiveVideoAnalytics_UpdateProcess_Handler, + }, + { + MethodName: "DeleteProcess", + Handler: _LiveVideoAnalytics_DeleteProcess_Handler, + }, + { + MethodName: "BatchRunProcess", + Handler: _LiveVideoAnalytics_BatchRunProcess_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/visionai/v1/lva_service.proto", +} diff --git a/visionai/apiv1/visionaipb/platform.pb.go b/visionai/apiv1/visionaipb/platform.pb.go new file mode 100755 index 00000000000..727b4ed30e6 --- /dev/null +++ b/visionai/apiv1/visionaipb/platform.pb.go @@ -0,0 +1,11953 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/platform.proto + +package visionaipb + +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" + durationpb "google.golang.org/protobuf/types/known/durationpb" + _ "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + 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) +) + +// All the supported model types in Vision AI App Platform. +type ModelType int32 + +const ( + // Processor Type UNSPECIFIED. + ModelType_MODEL_TYPE_UNSPECIFIED ModelType = 0 + // Model Type Image Classification. + ModelType_IMAGE_CLASSIFICATION ModelType = 1 + // Model Type Object Detection. + ModelType_OBJECT_DETECTION ModelType = 2 + // Model Type Video Classification. + ModelType_VIDEO_CLASSIFICATION ModelType = 3 + // Model Type Object Tracking. + ModelType_VIDEO_OBJECT_TRACKING ModelType = 4 + // Model Type Action Recognition. + ModelType_VIDEO_ACTION_RECOGNITION ModelType = 5 + // Model Type Occupancy Counting. + ModelType_OCCUPANCY_COUNTING ModelType = 6 + // Model Type Person Blur. + ModelType_PERSON_BLUR ModelType = 7 + // Model Type Vertex Custom. + ModelType_VERTEX_CUSTOM ModelType = 8 + // Model Type Product Recognizer. + ModelType_PRODUCT_RECOGNIZER ModelType = 9 + // Model Type Tag Recognizer. + ModelType_TAG_RECOGNIZER ModelType = 10 + // Model Type SynthID. + ModelType_SYNTH_ID ModelType = 15 +) + +// Enum value maps for ModelType. +var ( + ModelType_name = map[int32]string{ + 0: "MODEL_TYPE_UNSPECIFIED", + 1: "IMAGE_CLASSIFICATION", + 2: "OBJECT_DETECTION", + 3: "VIDEO_CLASSIFICATION", + 4: "VIDEO_OBJECT_TRACKING", + 5: "VIDEO_ACTION_RECOGNITION", + 6: "OCCUPANCY_COUNTING", + 7: "PERSON_BLUR", + 8: "VERTEX_CUSTOM", + 9: "PRODUCT_RECOGNIZER", + 10: "TAG_RECOGNIZER", + 15: "SYNTH_ID", + } + ModelType_value = map[string]int32{ + "MODEL_TYPE_UNSPECIFIED": 0, + "IMAGE_CLASSIFICATION": 1, + "OBJECT_DETECTION": 2, + "VIDEO_CLASSIFICATION": 3, + "VIDEO_OBJECT_TRACKING": 4, + "VIDEO_ACTION_RECOGNITION": 5, + "OCCUPANCY_COUNTING": 6, + "PERSON_BLUR": 7, + "VERTEX_CUSTOM": 8, + "PRODUCT_RECOGNIZER": 9, + "TAG_RECOGNIZER": 10, + "SYNTH_ID": 15, + } +) + +func (x ModelType) Enum() *ModelType { + p := new(ModelType) + *p = x + return p +} + +func (x ModelType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ModelType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[0].Descriptor() +} + +func (ModelType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[0] +} + +func (x ModelType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ModelType.Descriptor instead. +func (ModelType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{0} +} + +// Represents a hardware accelerator type. +type AcceleratorType int32 + +const ( + // Unspecified accelerator type, which means no accelerator. + AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED AcceleratorType = 0 + // Nvidia Tesla K80 GPU. + AcceleratorType_NVIDIA_TESLA_K80 AcceleratorType = 1 + // Nvidia Tesla P100 GPU. + AcceleratorType_NVIDIA_TESLA_P100 AcceleratorType = 2 + // Nvidia Tesla V100 GPU. + AcceleratorType_NVIDIA_TESLA_V100 AcceleratorType = 3 + // Nvidia Tesla P4 GPU. + AcceleratorType_NVIDIA_TESLA_P4 AcceleratorType = 4 + // Nvidia Tesla T4 GPU. + AcceleratorType_NVIDIA_TESLA_T4 AcceleratorType = 5 + // Nvidia Tesla A100 GPU. + AcceleratorType_NVIDIA_TESLA_A100 AcceleratorType = 8 + // TPU v2. + AcceleratorType_TPU_V2 AcceleratorType = 6 + // TPU v3. + AcceleratorType_TPU_V3 AcceleratorType = 7 +) + +// Enum value maps for AcceleratorType. +var ( + AcceleratorType_name = map[int32]string{ + 0: "ACCELERATOR_TYPE_UNSPECIFIED", + 1: "NVIDIA_TESLA_K80", + 2: "NVIDIA_TESLA_P100", + 3: "NVIDIA_TESLA_V100", + 4: "NVIDIA_TESLA_P4", + 5: "NVIDIA_TESLA_T4", + 8: "NVIDIA_TESLA_A100", + 6: "TPU_V2", + 7: "TPU_V3", + } + AcceleratorType_value = map[string]int32{ + "ACCELERATOR_TYPE_UNSPECIFIED": 0, + "NVIDIA_TESLA_K80": 1, + "NVIDIA_TESLA_P100": 2, + "NVIDIA_TESLA_V100": 3, + "NVIDIA_TESLA_P4": 4, + "NVIDIA_TESLA_T4": 5, + "NVIDIA_TESLA_A100": 8, + "TPU_V2": 6, + "TPU_V3": 7, + } +) + +func (x AcceleratorType) Enum() *AcceleratorType { + p := new(AcceleratorType) + *p = x + return p +} + +func (x AcceleratorType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AcceleratorType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[1].Descriptor() +} + +func (AcceleratorType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[1] +} + +func (x AcceleratorType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AcceleratorType.Descriptor instead. +func (AcceleratorType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{1} +} + +// All supported data types. +type DataType int32 + +const ( + // The default value of DataType. + DataType_DATA_TYPE_UNSPECIFIED DataType = 0 + // Video data type like H264. + DataType_VIDEO DataType = 1 + // Image data type. + DataType_IMAGE DataType = 3 + // Protobuf data type, usually used for general data blob. + DataType_PROTO DataType = 2 + // A placeholder data type, applicable for the universal input processor which + // supports any data type. This will be instantiated and replaced by a + // concrete underlying `DataType` during instance deployment. + DataType_PLACEHOLDER DataType = 4 +) + +// Enum value maps for DataType. +var ( + DataType_name = map[int32]string{ + 0: "DATA_TYPE_UNSPECIFIED", + 1: "VIDEO", + 3: "IMAGE", + 2: "PROTO", + 4: "PLACEHOLDER", + } + DataType_value = map[string]int32{ + "DATA_TYPE_UNSPECIFIED": 0, + "VIDEO": 1, + "IMAGE": 3, + "PROTO": 2, + "PLACEHOLDER": 4, + } +) + +func (x DataType) Enum() *DataType { + p := new(DataType) + *p = x + return p +} + +func (x DataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[2].Descriptor() +} + +func (DataType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[2] +} + +func (x DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataType.Descriptor instead. +func (DataType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{2} +} + +// State of the Application +type Application_State int32 + +const ( + // The default value. This value is used if the state is omitted. + Application_STATE_UNSPECIFIED Application_State = 0 + // State CREATED. + Application_CREATED Application_State = 1 + // State DEPLOYING. + Application_DEPLOYING Application_State = 2 + // State DEPLOYED. + Application_DEPLOYED Application_State = 3 + // State UNDEPLOYING. + Application_UNDEPLOYING Application_State = 4 + // State DELETED. + Application_DELETED Application_State = 5 + // State ERROR. + Application_ERROR Application_State = 6 + // State CREATING. + Application_CREATING Application_State = 7 + // State Updating. + Application_UPDATING Application_State = 8 + // State Deleting. + Application_DELETING Application_State = 9 + // State Fixing. + Application_FIXING Application_State = 10 +) + +// Enum value maps for Application_State. +var ( + Application_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATED", + 2: "DEPLOYING", + 3: "DEPLOYED", + 4: "UNDEPLOYING", + 5: "DELETED", + 6: "ERROR", + 7: "CREATING", + 8: "UPDATING", + 9: "DELETING", + 10: "FIXING", + } + Application_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATED": 1, + "DEPLOYING": 2, + "DEPLOYED": 3, + "UNDEPLOYING": 4, + "DELETED": 5, + "ERROR": 6, + "CREATING": 7, + "UPDATING": 8, + "DELETING": 9, + "FIXING": 10, + } +) + +func (x Application_State) Enum() *Application_State { + p := new(Application_State) + *p = x + return p +} + +func (x Application_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Application_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[3].Descriptor() +} + +func (Application_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[3] +} + +func (x Application_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Application_State.Descriptor instead. +func (Application_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 0} +} + +// Billing mode of the Application +type Application_BillingMode int32 + +const ( + // The default value. + Application_BILLING_MODE_UNSPECIFIED Application_BillingMode = 0 + // Pay as you go billing mode. + Application_PAYG Application_BillingMode = 1 + // Monthly billing mode. + Application_MONTHLY Application_BillingMode = 2 +) + +// Enum value maps for Application_BillingMode. +var ( + Application_BillingMode_name = map[int32]string{ + 0: "BILLING_MODE_UNSPECIFIED", + 1: "PAYG", + 2: "MONTHLY", + } + Application_BillingMode_value = map[string]int32{ + "BILLING_MODE_UNSPECIFIED": 0, + "PAYG": 1, + "MONTHLY": 2, + } +) + +func (x Application_BillingMode) Enum() *Application_BillingMode { + p := new(Application_BillingMode) + *p = x + return p +} + +func (x Application_BillingMode) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Application_BillingMode) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[4].Descriptor() +} + +func (Application_BillingMode) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[4] +} + +func (x Application_BillingMode) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Application_BillingMode.Descriptor instead. +func (Application_BillingMode) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 1} +} + +// All the supported instance types. +type Instance_InstanceType int32 + +const ( + // Unspecified instance type. + // If the instance type is not specified, the default one is + // STREAMING_PREDICTION. + Instance_INSTANCE_TYPE_UNSPECIFIED Instance_InstanceType = 0 + // Instance type for streaming prediction. + Instance_STREAMING_PREDICTION Instance_InstanceType = 1 + // Instance type for batch prediction. + Instance_BATCH_PREDICTION Instance_InstanceType = 2 + // Instance type for online prediction. + Instance_ONLINE_PREDICTION Instance_InstanceType = 3 +) + +// Enum value maps for Instance_InstanceType. +var ( + Instance_InstanceType_name = map[int32]string{ + 0: "INSTANCE_TYPE_UNSPECIFIED", + 1: "STREAMING_PREDICTION", + 2: "BATCH_PREDICTION", + 3: "ONLINE_PREDICTION", + } + Instance_InstanceType_value = map[string]int32{ + "INSTANCE_TYPE_UNSPECIFIED": 0, + "STREAMING_PREDICTION": 1, + "BATCH_PREDICTION": 2, + "ONLINE_PREDICTION": 3, + } +) + +func (x Instance_InstanceType) Enum() *Instance_InstanceType { + p := new(Instance_InstanceType) + *p = x + return p +} + +func (x Instance_InstanceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Instance_InstanceType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[5].Descriptor() +} + +func (Instance_InstanceType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[5] +} + +func (x Instance_InstanceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Instance_InstanceType.Descriptor instead. +func (Instance_InstanceType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{44, 0} +} + +// State of the Instance +type Instance_State int32 + +const ( + // The default value. This value is used if the state is omitted. + Instance_STATE_UNSPECIFIED Instance_State = 0 + // State CREATING. + Instance_CREATING Instance_State = 1 + // State CREATED. + Instance_CREATED Instance_State = 2 + // State DEPLOYING. + Instance_DEPLOYING Instance_State = 3 + // State DEPLOYED. + Instance_DEPLOYED Instance_State = 4 + // State UNDEPLOYING. + Instance_UNDEPLOYING Instance_State = 5 + // State DELETED. + Instance_DELETED Instance_State = 6 + // State ERROR. + Instance_ERROR Instance_State = 7 + // State Updating + Instance_UPDATING Instance_State = 8 + // State Deleting. + Instance_DELETING Instance_State = 9 + // State Fixing. + Instance_FIXING Instance_State = 10 + // State Finished. + Instance_FINISHED Instance_State = 11 +) + +// Enum value maps for Instance_State. +var ( + Instance_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "CREATED", + 3: "DEPLOYING", + 4: "DEPLOYED", + 5: "UNDEPLOYING", + 6: "DELETED", + 7: "ERROR", + 8: "UPDATING", + 9: "DELETING", + 10: "FIXING", + 11: "FINISHED", + } + Instance_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "CREATED": 2, + "DEPLOYING": 3, + "DEPLOYED": 4, + "UNDEPLOYING": 5, + "DELETED": 6, + "ERROR": 7, + "UPDATING": 8, + "DELETING": 9, + "FIXING": 10, + "FINISHED": 11, + } +) + +func (x Instance_State) Enum() *Instance_State { + p := new(Instance_State) + *p = x + return p +} + +func (x Instance_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Instance_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[6].Descriptor() +} + +func (Instance_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[6] +} + +func (x Instance_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Instance_State.Descriptor instead. +func (Instance_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{44, 1} +} + +// Type +type Processor_ProcessorType int32 + +const ( + // Processor Type UNSPECIFIED. + Processor_PROCESSOR_TYPE_UNSPECIFIED Processor_ProcessorType = 0 + // Processor Type PRETRAINED. + // Pretrained processor is developed by Vision AI App Platform with + // state-of-the-art vision data processing functionality, like occupancy + // counting or person blur. Pretrained processor is usually publicly + // available. + Processor_PRETRAINED Processor_ProcessorType = 1 + // Processor Type CUSTOM. + // Custom processors are specialized processors which are either uploaded by + // customers or imported from other GCP platform (for example Vertex AI). + // Custom processor is only visible to the creator. + Processor_CUSTOM Processor_ProcessorType = 2 + // Processor Type CONNECTOR. + // Connector processors are special processors which perform I/O for the + // application, they do not processing the data but either deliver the data + // to other processors or receive data from other processors. + Processor_CONNECTOR Processor_ProcessorType = 3 +) + +// Enum value maps for Processor_ProcessorType. +var ( + Processor_ProcessorType_name = map[int32]string{ + 0: "PROCESSOR_TYPE_UNSPECIFIED", + 1: "PRETRAINED", + 2: "CUSTOM", + 3: "CONNECTOR", + } + Processor_ProcessorType_value = map[string]int32{ + "PROCESSOR_TYPE_UNSPECIFIED": 0, + "PRETRAINED": 1, + "CUSTOM": 2, + "CONNECTOR": 3, + } +) + +func (x Processor_ProcessorType) Enum() *Processor_ProcessorType { + p := new(Processor_ProcessorType) + *p = x + return p +} + +func (x Processor_ProcessorType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Processor_ProcessorType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[7].Descriptor() +} + +func (Processor_ProcessorType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[7] +} + +func (x Processor_ProcessorType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Processor_ProcessorType.Descriptor instead. +func (Processor_ProcessorType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{46, 0} +} + +type Processor_ProcessorState int32 + +const ( + // Unspecified Processor state. + Processor_PROCESSOR_STATE_UNSPECIFIED Processor_ProcessorState = 0 + // Processor is being created (not ready for use). + Processor_CREATING Processor_ProcessorState = 1 + // Processor is and ready for use. + Processor_ACTIVE Processor_ProcessorState = 2 + // Processor is being deleted (not ready for use). + Processor_DELETING Processor_ProcessorState = 3 + // Processor deleted or creation failed . + Processor_FAILED Processor_ProcessorState = 4 +) + +// Enum value maps for Processor_ProcessorState. +var ( + Processor_ProcessorState_name = map[int32]string{ + 0: "PROCESSOR_STATE_UNSPECIFIED", + 1: "CREATING", + 2: "ACTIVE", + 3: "DELETING", + 4: "FAILED", + } + Processor_ProcessorState_value = map[string]int32{ + "PROCESSOR_STATE_UNSPECIFIED": 0, + "CREATING": 1, + "ACTIVE": 2, + "DELETING": 3, + "FAILED": 4, + } +) + +func (x Processor_ProcessorState) Enum() *Processor_ProcessorState { + p := new(Processor_ProcessorState) + *p = x + return p +} + +func (x Processor_ProcessorState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Processor_ProcessorState) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[8].Descriptor() +} + +func (Processor_ProcessorState) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[8] +} + +func (x Processor_ProcessorState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Processor_ProcessorState.Descriptor instead. +func (Processor_ProcessorState) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{46, 1} +} + +// Source type of the imported custom processor. +type CustomProcessorSourceInfo_SourceType int32 + +const ( + // Source type unspecified. + CustomProcessorSourceInfo_SOURCE_TYPE_UNSPECIFIED CustomProcessorSourceInfo_SourceType = 0 + // Custom processors coming from Vertex AutoML product. + CustomProcessorSourceInfo_VERTEX_AUTOML CustomProcessorSourceInfo_SourceType = 1 + // Custom processors coming from general custom models from Vertex. + CustomProcessorSourceInfo_VERTEX_CUSTOM CustomProcessorSourceInfo_SourceType = 2 + // Source for Product Recognizer. + CustomProcessorSourceInfo_PRODUCT_RECOGNIZER CustomProcessorSourceInfo_SourceType = 3 +) + +// Enum value maps for CustomProcessorSourceInfo_SourceType. +var ( + CustomProcessorSourceInfo_SourceType_name = map[int32]string{ + 0: "SOURCE_TYPE_UNSPECIFIED", + 1: "VERTEX_AUTOML", + 2: "VERTEX_CUSTOM", + 3: "PRODUCT_RECOGNIZER", + } + CustomProcessorSourceInfo_SourceType_value = map[string]int32{ + "SOURCE_TYPE_UNSPECIFIED": 0, + "VERTEX_AUTOML": 1, + "VERTEX_CUSTOM": 2, + "PRODUCT_RECOGNIZER": 3, + } +) + +func (x CustomProcessorSourceInfo_SourceType) Enum() *CustomProcessorSourceInfo_SourceType { + p := new(CustomProcessorSourceInfo_SourceType) + *p = x + return p +} + +func (x CustomProcessorSourceInfo_SourceType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CustomProcessorSourceInfo_SourceType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[9].Descriptor() +} + +func (CustomProcessorSourceInfo_SourceType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[9] +} + +func (x CustomProcessorSourceInfo_SourceType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CustomProcessorSourceInfo_SourceType.Descriptor instead. +func (CustomProcessorSourceInfo_SourceType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{48, 0} +} + +// Type of Person Blur +type PersonBlurConfig_PersonBlurType int32 + +const ( + // PersonBlur Type UNSPECIFIED. + PersonBlurConfig_PERSON_BLUR_TYPE_UNSPECIFIED PersonBlurConfig_PersonBlurType = 0 + // FaceBlur Type full occlusion. + PersonBlurConfig_FULL_OCCULUSION PersonBlurConfig_PersonBlurType = 1 + // FaceBlur Type blur filter. + PersonBlurConfig_BLUR_FILTER PersonBlurConfig_PersonBlurType = 2 +) + +// Enum value maps for PersonBlurConfig_PersonBlurType. +var ( + PersonBlurConfig_PersonBlurType_name = map[int32]string{ + 0: "PERSON_BLUR_TYPE_UNSPECIFIED", + 1: "FULL_OCCULUSION", + 2: "BLUR_FILTER", + } + PersonBlurConfig_PersonBlurType_value = map[string]int32{ + "PERSON_BLUR_TYPE_UNSPECIFIED": 0, + "FULL_OCCULUSION": 1, + "BLUR_FILTER": 2, + } +) + +func (x PersonBlurConfig_PersonBlurType) Enum() *PersonBlurConfig_PersonBlurType { + p := new(PersonBlurConfig_PersonBlurType) + *p = x + return p +} + +func (x PersonBlurConfig_PersonBlurType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PersonBlurConfig_PersonBlurType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[10].Descriptor() +} + +func (PersonBlurConfig_PersonBlurType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[10] +} + +func (x PersonBlurConfig_PersonBlurType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PersonBlurConfig_PersonBlurType.Descriptor instead. +func (PersonBlurConfig_PersonBlurType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{56, 0} +} + +// Type of entity matching strategy. +type TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy int32 + +const ( + // If unspecified, multi-line matching will be used by default. + TagParsingConfig_EntityParsingConfig_ENTITY_MATCHING_STRATEGY_UNSPECIFIED TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy = 0 + // Matches multiple lines of text. + TagParsingConfig_EntityParsingConfig_MULTI_LINE_MATCHING TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy = 1 + // Matches the line with the maximum overlap area with entity bounding + // box. + TagParsingConfig_EntityParsingConfig_MAX_OVERLAP_AREA TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy = 2 +) + +// Enum value maps for TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy. +var ( + TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy_name = map[int32]string{ + 0: "ENTITY_MATCHING_STRATEGY_UNSPECIFIED", + 1: "MULTI_LINE_MATCHING", + 2: "MAX_OVERLAP_AREA", + } + TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy_value = map[string]int32{ + "ENTITY_MATCHING_STRATEGY_UNSPECIFIED": 0, + "MULTI_LINE_MATCHING": 1, + "MAX_OVERLAP_AREA": 2, + } +) + +func (x TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) Enum() *TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy { + p := new(TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) + *p = x + return p +} + +func (x TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_platform_proto_enumTypes[11].Descriptor() +} + +func (TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_platform_proto_enumTypes[11] +} + +func (x TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy.Descriptor instead. +func (TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{72, 0, 0} +} + +// Message for DeleteApplicationInstance Response. +type DeleteApplicationInstancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteApplicationInstancesResponse) Reset() { + *x = DeleteApplicationInstancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApplicationInstancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApplicationInstancesResponse) ProtoMessage() {} + +func (x *DeleteApplicationInstancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 DeleteApplicationInstancesResponse.ProtoReflect.Descriptor instead. +func (*DeleteApplicationInstancesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{0} +} + +// Message for CreateApplicationInstance Response. +type CreateApplicationInstancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *CreateApplicationInstancesResponse) Reset() { + *x = CreateApplicationInstancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApplicationInstancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApplicationInstancesResponse) ProtoMessage() {} + +func (x *CreateApplicationInstancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 CreateApplicationInstancesResponse.ProtoReflect.Descriptor instead. +func (*CreateApplicationInstancesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{1} +} + +// Message for UpdateApplicationInstances Response. +type UpdateApplicationInstancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateApplicationInstancesResponse) Reset() { + *x = UpdateApplicationInstancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationInstancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationInstancesResponse) ProtoMessage() {} + +func (x *UpdateApplicationInstancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UpdateApplicationInstancesResponse.ProtoReflect.Descriptor instead. +func (*UpdateApplicationInstancesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{2} +} + +// Message for adding stream input to an Application. +type CreateApplicationInstancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resources being created. + ApplicationInstances []*ApplicationInstance `protobuf:"bytes,2,rep,name=application_instances,json=applicationInstances,proto3" json:"application_instances,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateApplicationInstancesRequest) Reset() { + *x = CreateApplicationInstancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApplicationInstancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApplicationInstancesRequest) ProtoMessage() {} + +func (x *CreateApplicationInstancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 CreateApplicationInstancesRequest.ProtoReflect.Descriptor instead. +func (*CreateApplicationInstancesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateApplicationInstancesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *CreateApplicationInstancesRequest) GetApplicationInstances() []*ApplicationInstance { + if x != nil { + return x.ApplicationInstances + } + return nil +} + +func (x *CreateApplicationInstancesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for removing stream input from an Application. +type DeleteApplicationInstancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. Id of the requesting object. + InstanceIds []string `protobuf:"bytes,2,rep,name=instance_ids,json=instanceIds,proto3" json:"instance_ids,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteApplicationInstancesRequest) Reset() { + *x = DeleteApplicationInstancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApplicationInstancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApplicationInstancesRequest) ProtoMessage() {} + +func (x *DeleteApplicationInstancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 DeleteApplicationInstancesRequest.ProtoReflect.Descriptor instead. +func (*DeleteApplicationInstancesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{4} +} + +func (x *DeleteApplicationInstancesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteApplicationInstancesRequest) GetInstanceIds() []string { + if x != nil { + return x.InstanceIds + } + return nil +} + +func (x *DeleteApplicationInstancesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// RPC Request Messages. +// Message for DeployApplication Response. +type DeployApplicationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeployApplicationResponse) Reset() { + *x = DeployApplicationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployApplicationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployApplicationResponse) ProtoMessage() {} + +func (x *DeployApplicationResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 DeployApplicationResponse.ProtoReflect.Descriptor instead. +func (*DeployApplicationResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{5} +} + +// Message for UndeployApplication Response. +type UndeployApplicationResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UndeployApplicationResponse) Reset() { + *x = UndeployApplicationResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UndeployApplicationResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UndeployApplicationResponse) ProtoMessage() {} + +func (x *UndeployApplicationResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UndeployApplicationResponse.ProtoReflect.Descriptor instead. +func (*UndeployApplicationResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{6} +} + +// Message for RemoveApplicationStreamInput Response. +type RemoveApplicationStreamInputResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RemoveApplicationStreamInputResponse) Reset() { + *x = RemoveApplicationStreamInputResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveApplicationStreamInputResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveApplicationStreamInputResponse) ProtoMessage() {} + +func (x *RemoveApplicationStreamInputResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 RemoveApplicationStreamInputResponse.ProtoReflect.Descriptor instead. +func (*RemoveApplicationStreamInputResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{7} +} + +// Message for AddApplicationStreamInput Response. +type AddApplicationStreamInputResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddApplicationStreamInputResponse) Reset() { + *x = AddApplicationStreamInputResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddApplicationStreamInputResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddApplicationStreamInputResponse) ProtoMessage() {} + +func (x *AddApplicationStreamInputResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 AddApplicationStreamInputResponse.ProtoReflect.Descriptor instead. +func (*AddApplicationStreamInputResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{8} +} + +// Message for AddApplicationStreamInput Response. +type UpdateApplicationStreamInputResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UpdateApplicationStreamInputResponse) Reset() { + *x = UpdateApplicationStreamInputResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationStreamInputResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationStreamInputResponse) ProtoMessage() {} + +func (x *UpdateApplicationStreamInputResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UpdateApplicationStreamInputResponse.ProtoReflect.Descriptor instead. +func (*UpdateApplicationStreamInputResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{9} +} + +// Message for requesting list of Applications. +type ListApplicationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListApplicationsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListApplicationsRequest) Reset() { + *x = ListApplicationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApplicationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApplicationsRequest) ProtoMessage() {} + +func (x *ListApplicationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 ListApplicationsRequest.ProtoReflect.Descriptor instead. +func (*ListApplicationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{10} +} + +func (x *ListApplicationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListApplicationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListApplicationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListApplicationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListApplicationsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Applications. +type ListApplicationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Application. + Applications []*Application `protobuf:"bytes,1,rep,name=applications,proto3" json:"applications,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListApplicationsResponse) Reset() { + *x = ListApplicationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListApplicationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListApplicationsResponse) ProtoMessage() {} + +func (x *ListApplicationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 ListApplicationsResponse.ProtoReflect.Descriptor instead. +func (*ListApplicationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{11} +} + +func (x *ListApplicationsResponse) GetApplications() []*Application { + if x != nil { + return x.Applications + } + return nil +} + +func (x *ListApplicationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListApplicationsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Application. +type GetApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetApplicationRequest) Reset() { + *x = GetApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetApplicationRequest) ProtoMessage() {} + +func (x *GetApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 GetApplicationRequest.ProtoReflect.Descriptor instead. +func (*GetApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{12} +} + +func (x *GetApplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Application. +type CreateApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + ApplicationId string `protobuf:"bytes,2,opt,name=application_id,json=applicationId,proto3" json:"application_id,omitempty"` + // Required. The resource being created. + Application *Application `protobuf:"bytes,3,opt,name=application,proto3" json:"application,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateApplicationRequest) Reset() { + *x = CreateApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateApplicationRequest) ProtoMessage() {} + +func (x *CreateApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 CreateApplicationRequest.ProtoReflect.Descriptor instead. +func (*CreateApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{13} +} + +func (x *CreateApplicationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateApplicationRequest) GetApplicationId() string { + if x != nil { + return x.ApplicationId + } + return "" +} + +func (x *CreateApplicationRequest) GetApplication() *Application { + if x != nil { + return x.Application + } + return nil +} + +func (x *CreateApplicationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating an Application. +type UpdateApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Field mask is used to specify the fields to be overwritten in the + // Application resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Application *Application `protobuf:"bytes,2,opt,name=application,proto3" json:"application,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateApplicationRequest) Reset() { + *x = UpdateApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationRequest) ProtoMessage() {} + +func (x *UpdateApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UpdateApplicationRequest.ProtoReflect.Descriptor instead. +func (*UpdateApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{14} +} + +func (x *UpdateApplicationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateApplicationRequest) GetApplication() *Application { + if x != nil { + return x.Application + } + return nil +} + +func (x *UpdateApplicationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting an Application. +type DeleteApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. If set to true, any instances and drafts from this application + // will also be deleted. (Otherwise, the request will only work if the + // application has no instances and drafts.) + Force bool `protobuf:"varint,3,opt,name=force,proto3" json:"force,omitempty"` +} + +func (x *DeleteApplicationRequest) Reset() { + *x = DeleteApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteApplicationRequest) ProtoMessage() {} + +func (x *DeleteApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 DeleteApplicationRequest.ProtoReflect.Descriptor instead. +func (*DeleteApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{15} +} + +func (x *DeleteApplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteApplicationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *DeleteApplicationRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + +// Message for deploying an Application. +type DeployApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // If set, validate the request and preview the application graph, but do not + // actually deploy it. + ValidateOnly bool `protobuf:"varint,2,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // Optional. Whether or not to enable monitoring for the application on + // deployment. + EnableMonitoring bool `protobuf:"varint,4,opt,name=enable_monitoring,json=enableMonitoring,proto3" json:"enable_monitoring,omitempty"` +} + +func (x *DeployApplicationRequest) Reset() { + *x = DeployApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployApplicationRequest) ProtoMessage() {} + +func (x *DeployApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 DeployApplicationRequest.ProtoReflect.Descriptor instead. +func (*DeployApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{16} +} + +func (x *DeployApplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeployApplicationRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *DeployApplicationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *DeployApplicationRequest) GetEnableMonitoring() bool { + if x != nil { + return x.EnableMonitoring + } + return false +} + +// Message for undeploying an Application. +type UndeployApplicationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UndeployApplicationRequest) Reset() { + *x = UndeployApplicationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UndeployApplicationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UndeployApplicationRequest) ProtoMessage() {} + +func (x *UndeployApplicationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UndeployApplicationRequest.ProtoReflect.Descriptor instead. +func (*UndeployApplicationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{17} +} + +func (x *UndeployApplicationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UndeployApplicationRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message about a single stream input config. +type ApplicationStreamInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StreamWithAnnotation *StreamWithAnnotation `protobuf:"bytes,1,opt,name=stream_with_annotation,json=streamWithAnnotation,proto3" json:"stream_with_annotation,omitempty"` +} + +func (x *ApplicationStreamInput) Reset() { + *x = ApplicationStreamInput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationStreamInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationStreamInput) ProtoMessage() {} + +func (x *ApplicationStreamInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 ApplicationStreamInput.ProtoReflect.Descriptor instead. +func (*ApplicationStreamInput) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{18} +} + +func (x *ApplicationStreamInput) GetStreamWithAnnotation() *StreamWithAnnotation { + if x != nil { + return x.StreamWithAnnotation + } + return nil +} + +// Message for adding stream input to an Application. +type AddApplicationStreamInputRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The stream inputs to add, the stream resource name is the key of each + // StreamInput, and it must be unique within each application. + ApplicationStreamInputs []*ApplicationStreamInput `protobuf:"bytes,2,rep,name=application_stream_inputs,json=applicationStreamInputs,proto3" json:"application_stream_inputs,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *AddApplicationStreamInputRequest) Reset() { + *x = AddApplicationStreamInputRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddApplicationStreamInputRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddApplicationStreamInputRequest) ProtoMessage() {} + +func (x *AddApplicationStreamInputRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 AddApplicationStreamInputRequest.ProtoReflect.Descriptor instead. +func (*AddApplicationStreamInputRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{19} +} + +func (x *AddApplicationStreamInputRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *AddApplicationStreamInputRequest) GetApplicationStreamInputs() []*ApplicationStreamInput { + if x != nil { + return x.ApplicationStreamInputs + } + return nil +} + +func (x *AddApplicationStreamInputRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating stream input to an Application. +type UpdateApplicationStreamInputRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The stream inputs to update, the stream resource name is the key of each + // StreamInput, and it must be unique within each application. + ApplicationStreamInputs []*ApplicationStreamInput `protobuf:"bytes,2,rep,name=application_stream_inputs,json=applicationStreamInputs,proto3" json:"application_stream_inputs,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // If true, UpdateApplicationStreamInput will insert stream input to + // application even if the target stream is not included in the application. + AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` +} + +func (x *UpdateApplicationStreamInputRequest) Reset() { + *x = UpdateApplicationStreamInputRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationStreamInputRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationStreamInputRequest) ProtoMessage() {} + +func (x *UpdateApplicationStreamInputRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_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 UpdateApplicationStreamInputRequest.ProtoReflect.Descriptor instead. +func (*UpdateApplicationStreamInputRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{20} +} + +func (x *UpdateApplicationStreamInputRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateApplicationStreamInputRequest) GetApplicationStreamInputs() []*ApplicationStreamInput { + if x != nil { + return x.ApplicationStreamInputs + } + return nil +} + +func (x *UpdateApplicationStreamInputRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateApplicationStreamInputRequest) GetAllowMissing() bool { + if x != nil { + return x.AllowMissing + } + return false +} + +// Message for removing stream input from an Application. +type RemoveApplicationStreamInputRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The target stream to remove. + TargetStreamInputs []*RemoveApplicationStreamInputRequest_TargetStreamInput `protobuf:"bytes,2,rep,name=target_stream_inputs,json=targetStreamInputs,proto3" json:"target_stream_inputs,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *RemoveApplicationStreamInputRequest) Reset() { + *x = RemoveApplicationStreamInputRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveApplicationStreamInputRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveApplicationStreamInputRequest) ProtoMessage() {} + +func (x *RemoveApplicationStreamInputRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[21] + 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 RemoveApplicationStreamInputRequest.ProtoReflect.Descriptor instead. +func (*RemoveApplicationStreamInputRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{21} +} + +func (x *RemoveApplicationStreamInputRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RemoveApplicationStreamInputRequest) GetTargetStreamInputs() []*RemoveApplicationStreamInputRequest_TargetStreamInput { + if x != nil { + return x.TargetStreamInputs + } + return nil +} + +func (x *RemoveApplicationStreamInputRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Instances. +type ListInstancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListInstancesRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListInstancesRequest) Reset() { + *x = ListInstancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInstancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInstancesRequest) ProtoMessage() {} + +func (x *ListInstancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[22] + 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 ListInstancesRequest.ProtoReflect.Descriptor instead. +func (*ListInstancesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{22} +} + +func (x *ListInstancesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListInstancesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListInstancesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListInstancesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListInstancesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Instances. +type ListInstancesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Instance. + Instances []*Instance `protobuf:"bytes,1,rep,name=instances,proto3" json:"instances,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListInstancesResponse) Reset() { + *x = ListInstancesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListInstancesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListInstancesResponse) ProtoMessage() {} + +func (x *ListInstancesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[23] + 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 ListInstancesResponse.ProtoReflect.Descriptor instead. +func (*ListInstancesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{23} +} + +func (x *ListInstancesResponse) GetInstances() []*Instance { + if x != nil { + return x.Instances + } + return nil +} + +func (x *ListInstancesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListInstancesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Instance. +type GetInstanceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetInstanceRequest) Reset() { + *x = GetInstanceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetInstanceRequest) ProtoMessage() {} + +func (x *GetInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[24] + 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 GetInstanceRequest.ProtoReflect.Descriptor instead. +func (*GetInstanceRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{24} +} + +func (x *GetInstanceRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for requesting list of Drafts. +type ListDraftsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListDraftsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListDraftsRequest) Reset() { + *x = ListDraftsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDraftsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDraftsRequest) ProtoMessage() {} + +func (x *ListDraftsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[25] + 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 ListDraftsRequest.ProtoReflect.Descriptor instead. +func (*ListDraftsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{25} +} + +func (x *ListDraftsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDraftsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDraftsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListDraftsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListDraftsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Drafts. +type ListDraftsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Draft. + Drafts []*Draft `protobuf:"bytes,1,rep,name=drafts,proto3" json:"drafts,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListDraftsResponse) Reset() { + *x = ListDraftsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDraftsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDraftsResponse) ProtoMessage() {} + +func (x *ListDraftsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[26] + 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 ListDraftsResponse.ProtoReflect.Descriptor instead. +func (*ListDraftsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{26} +} + +func (x *ListDraftsResponse) GetDrafts() []*Draft { + if x != nil { + return x.Drafts + } + return nil +} + +func (x *ListDraftsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListDraftsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Draft. +type GetDraftRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDraftRequest) Reset() { + *x = GetDraftRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDraftRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDraftRequest) ProtoMessage() {} + +func (x *GetDraftRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[27] + 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 GetDraftRequest.ProtoReflect.Descriptor instead. +func (*GetDraftRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{27} +} + +func (x *GetDraftRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Draft. +type CreateDraftRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + DraftId string `protobuf:"bytes,2,opt,name=draft_id,json=draftId,proto3" json:"draft_id,omitempty"` + // Required. The resource being created. + Draft *Draft `protobuf:"bytes,3,opt,name=draft,proto3" json:"draft,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateDraftRequest) Reset() { + *x = CreateDraftRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDraftRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDraftRequest) ProtoMessage() {} + +func (x *CreateDraftRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[28] + 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 CreateDraftRequest.ProtoReflect.Descriptor instead. +func (*CreateDraftRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{28} +} + +func (x *CreateDraftRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDraftRequest) GetDraftId() string { + if x != nil { + return x.DraftId + } + return "" +} + +func (x *CreateDraftRequest) GetDraft() *Draft { + if x != nil { + return x.Draft + } + return nil +} + +func (x *CreateDraftRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Draft. +type UpdateDraftRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Field mask is used to specify the fields to be overwritten in the + // Draft resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Draft *Draft `protobuf:"bytes,2,opt,name=draft,proto3" json:"draft,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // If true, UpdateDraftRequest will create one resource if the target resource + // doesn't exist, this time, the field_mask will be ignored. + AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` +} + +func (x *UpdateDraftRequest) Reset() { + *x = UpdateDraftRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDraftRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDraftRequest) ProtoMessage() {} + +func (x *UpdateDraftRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[29] + 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 UpdateDraftRequest.ProtoReflect.Descriptor instead. +func (*UpdateDraftRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{29} +} + +func (x *UpdateDraftRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateDraftRequest) GetDraft() *Draft { + if x != nil { + return x.Draft + } + return nil +} + +func (x *UpdateDraftRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateDraftRequest) GetAllowMissing() bool { + if x != nil { + return x.AllowMissing + } + return false +} + +// Message for updating an ApplicationInstance. +type UpdateApplicationInstancesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. the name of the application to retrieve. + // Format: + // "projects/{project}/locations/{location}/applications/{application}" + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + ApplicationInstances []*UpdateApplicationInstancesRequest_UpdateApplicationInstance `protobuf:"bytes,2,rep,name=application_instances,json=applicationInstances,proto3" json:"application_instances,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` + // If true, Update Request will create one resource if the target resource + // doesn't exist, this time, the field_mask will be ignored. + AllowMissing bool `protobuf:"varint,4,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` +} + +func (x *UpdateApplicationInstancesRequest) Reset() { + *x = UpdateApplicationInstancesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationInstancesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationInstancesRequest) ProtoMessage() {} + +func (x *UpdateApplicationInstancesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[30] + 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 UpdateApplicationInstancesRequest.ProtoReflect.Descriptor instead. +func (*UpdateApplicationInstancesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{30} +} + +func (x *UpdateApplicationInstancesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UpdateApplicationInstancesRequest) GetApplicationInstances() []*UpdateApplicationInstancesRequest_UpdateApplicationInstance { + if x != nil { + return x.ApplicationInstances + } + return nil +} + +func (x *UpdateApplicationInstancesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +func (x *UpdateApplicationInstancesRequest) GetAllowMissing() bool { + if x != nil { + return x.AllowMissing + } + return false +} + +// Message for deleting a Draft. +type DeleteDraftRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteDraftRequest) Reset() { + *x = DeleteDraftRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDraftRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDraftRequest) ProtoMessage() {} + +func (x *DeleteDraftRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[31] + 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 DeleteDraftRequest.ProtoReflect.Descriptor instead. +func (*DeleteDraftRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{31} +} + +func (x *DeleteDraftRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteDraftRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Processors. +type ListProcessorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListProcessorsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListProcessorsRequest) Reset() { + *x = ListProcessorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProcessorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProcessorsRequest) ProtoMessage() {} + +func (x *ListProcessorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[32] + 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 ListProcessorsRequest.ProtoReflect.Descriptor instead. +func (*ListProcessorsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{32} +} + +func (x *ListProcessorsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListProcessorsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListProcessorsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListProcessorsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListProcessorsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Processors. +type ListProcessorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Processor. + Processors []*Processor `protobuf:"bytes,1,rep,name=processors,proto3" json:"processors,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListProcessorsResponse) Reset() { + *x = ListProcessorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListProcessorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListProcessorsResponse) ProtoMessage() {} + +func (x *ListProcessorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[33] + 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 ListProcessorsResponse.ProtoReflect.Descriptor instead. +func (*ListProcessorsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{33} +} + +func (x *ListProcessorsResponse) GetProcessors() []*Processor { + if x != nil { + return x.Processors + } + return nil +} + +func (x *ListProcessorsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListProcessorsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Request Message for listing Prebuilt Processors. +type ListPrebuiltProcessorsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent path. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ListPrebuiltProcessorsRequest) Reset() { + *x = ListPrebuiltProcessorsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPrebuiltProcessorsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPrebuiltProcessorsRequest) ProtoMessage() {} + +func (x *ListPrebuiltProcessorsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[34] + 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 ListPrebuiltProcessorsRequest.ProtoReflect.Descriptor instead. +func (*ListPrebuiltProcessorsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{34} +} + +func (x *ListPrebuiltProcessorsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +// Response Message for listing Prebuilt Processors. +type ListPrebuiltProcessorsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Processor. + Processors []*Processor `protobuf:"bytes,1,rep,name=processors,proto3" json:"processors,omitempty"` +} + +func (x *ListPrebuiltProcessorsResponse) Reset() { + *x = ListPrebuiltProcessorsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListPrebuiltProcessorsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPrebuiltProcessorsResponse) ProtoMessage() {} + +func (x *ListPrebuiltProcessorsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[35] + 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 ListPrebuiltProcessorsResponse.ProtoReflect.Descriptor instead. +func (*ListPrebuiltProcessorsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{35} +} + +func (x *ListPrebuiltProcessorsResponse) GetProcessors() []*Processor { + if x != nil { + return x.Processors + } + return nil +} + +// Message for getting a Processor. +type GetProcessorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetProcessorRequest) Reset() { + *x = GetProcessorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetProcessorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetProcessorRequest) ProtoMessage() {} + +func (x *GetProcessorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[36] + 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 GetProcessorRequest.ProtoReflect.Descriptor instead. +func (*GetProcessorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{36} +} + +func (x *GetProcessorRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Processor. +type CreateProcessorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + ProcessorId string `protobuf:"bytes,2,opt,name=processor_id,json=processorId,proto3" json:"processor_id,omitempty"` + // Required. The resource being created. + Processor *Processor `protobuf:"bytes,3,opt,name=processor,proto3" json:"processor,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateProcessorRequest) Reset() { + *x = CreateProcessorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateProcessorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateProcessorRequest) ProtoMessage() {} + +func (x *CreateProcessorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[37] + 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 CreateProcessorRequest.ProtoReflect.Descriptor instead. +func (*CreateProcessorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{37} +} + +func (x *CreateProcessorRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateProcessorRequest) GetProcessorId() string { + if x != nil { + return x.ProcessorId + } + return "" +} + +func (x *CreateProcessorRequest) GetProcessor() *Processor { + if x != nil { + return x.Processor + } + return nil +} + +func (x *CreateProcessorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Processor. +type UpdateProcessorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Field mask is used to specify the fields to be overwritten in the + // Processor resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Processor *Processor `protobuf:"bytes,2,opt,name=processor,proto3" json:"processor,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateProcessorRequest) Reset() { + *x = UpdateProcessorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateProcessorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateProcessorRequest) ProtoMessage() {} + +func (x *UpdateProcessorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[38] + 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 UpdateProcessorRequest.ProtoReflect.Descriptor instead. +func (*UpdateProcessorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{38} +} + +func (x *UpdateProcessorRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateProcessorRequest) GetProcessor() *Processor { + if x != nil { + return x.Processor + } + return nil +} + +func (x *UpdateProcessorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Processor. +type DeleteProcessorRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and + // the request times out. If you make the request again with the same request + // ID, the server can check if original operation with the same request ID + // was received, and if so, will ignore the second request. This prevents + // clients from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteProcessorRequest) Reset() { + *x = DeleteProcessorRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteProcessorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteProcessorRequest) ProtoMessage() {} + +func (x *DeleteProcessorRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[39] + 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 DeleteProcessorRequest.ProtoReflect.Descriptor instead. +func (*DeleteProcessorRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{39} +} + +func (x *DeleteProcessorRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteProcessorRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message describing Application object +type Application struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name of resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. [Output only] Create timestamp + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. [Output only] Update timestamp + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. A user friendly display name for the solution. + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A description for this application. + Description string `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"` + // Application graph configuration. + ApplicationConfigs *ApplicationConfigs `protobuf:"bytes,7,opt,name=application_configs,json=applicationConfigs,proto3" json:"application_configs,omitempty"` + // Output only. Application graph runtime info. Only exists when application + // state equals to DEPLOYED. + RuntimeInfo *Application_ApplicationRuntimeInfo `protobuf:"bytes,8,opt,name=runtime_info,json=runtimeInfo,proto3" json:"runtime_info,omitempty"` + // Output only. State of the application. + State Application_State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.visionai.v1.Application_State" json:"state,omitempty"` + // Billing mode of the application. + BillingMode Application_BillingMode `protobuf:"varint,12,opt,name=billing_mode,json=billingMode,proto3,enum=google.cloud.visionai.v1.Application_BillingMode" json:"billing_mode,omitempty"` +} + +func (x *Application) Reset() { + *x = Application{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Application) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application) ProtoMessage() {} + +func (x *Application) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[40] + 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 Application.ProtoReflect.Descriptor instead. +func (*Application) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40} +} + +func (x *Application) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Application) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Application) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Application) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Application) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Application) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Application) GetApplicationConfigs() *ApplicationConfigs { + if x != nil { + return x.ApplicationConfigs + } + return nil +} + +func (x *Application) GetRuntimeInfo() *Application_ApplicationRuntimeInfo { + if x != nil { + return x.RuntimeInfo + } + return nil +} + +func (x *Application) GetState() Application_State { + if x != nil { + return x.State + } + return Application_STATE_UNSPECIFIED +} + +func (x *Application) GetBillingMode() Application_BillingMode { + if x != nil { + return x.BillingMode + } + return Application_BILLING_MODE_UNSPECIFIED +} + +// Message storing the graph of the application. +type ApplicationConfigs struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of nodes in the application graph. + Nodes []*Node `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` + // Event-related configuration for this application. + EventDeliveryConfig *ApplicationConfigs_EventDeliveryConfig `protobuf:"bytes,3,opt,name=event_delivery_config,json=eventDeliveryConfig,proto3" json:"event_delivery_config,omitempty"` +} + +func (x *ApplicationConfigs) Reset() { + *x = ApplicationConfigs{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationConfigs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationConfigs) ProtoMessage() {} + +func (x *ApplicationConfigs) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[41] + 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 ApplicationConfigs.ProtoReflect.Descriptor instead. +func (*ApplicationConfigs) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{41} +} + +func (x *ApplicationConfigs) GetNodes() []*Node { + if x != nil { + return x.Nodes + } + return nil +} + +func (x *ApplicationConfigs) GetEventDeliveryConfig() *ApplicationConfigs_EventDeliveryConfig { + if x != nil { + return x.EventDeliveryConfig + } + return nil +} + +// Message describing node object. +type Node struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to StreamOutputConfig: + // + // *Node_OutputAllOutputChannelsToStream + StreamOutputConfig isNode_StreamOutputConfig `protobuf_oneof:"stream_output_config"` + // Required. A unique name for the node. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // A user friendly display name for the node. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Node config. + NodeConfig *ProcessorConfig `protobuf:"bytes,3,opt,name=node_config,json=nodeConfig,proto3" json:"node_config,omitempty"` + // Processor name refer to the chosen processor resource. + Processor string `protobuf:"bytes,4,opt,name=processor,proto3" json:"processor,omitempty"` + // Parent node. Input node should not have parent node. For V1 Alpha1/Beta + // only media warehouse node can have multiple parents, other types of nodes + // will only have one parent. + Parents []*Node_InputEdge `protobuf:"bytes,5,rep,name=parents,proto3" json:"parents,omitempty"` +} + +func (x *Node) Reset() { + *x = Node{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Node) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Node) ProtoMessage() {} + +func (x *Node) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[42] + 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 Node.ProtoReflect.Descriptor instead. +func (*Node) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{42} +} + +func (m *Node) GetStreamOutputConfig() isNode_StreamOutputConfig { + if m != nil { + return m.StreamOutputConfig + } + return nil +} + +func (x *Node) GetOutputAllOutputChannelsToStream() bool { + if x, ok := x.GetStreamOutputConfig().(*Node_OutputAllOutputChannelsToStream); ok { + return x.OutputAllOutputChannelsToStream + } + return false +} + +func (x *Node) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Node) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Node) GetNodeConfig() *ProcessorConfig { + if x != nil { + return x.NodeConfig + } + return nil +} + +func (x *Node) GetProcessor() string { + if x != nil { + return x.Processor + } + return "" +} + +func (x *Node) GetParents() []*Node_InputEdge { + if x != nil { + return x.Parents + } + return nil +} + +type isNode_StreamOutputConfig interface { + isNode_StreamOutputConfig() +} + +type Node_OutputAllOutputChannelsToStream struct { + // By default, the output of the node will only be available to downstream + // nodes. To consume the direct output from the application node, the output + // must be sent to Vision AI Streams at first. + // + // By setting output_all_output_channels_to_stream to true, App Platform + // will automatically send all the outputs of the current node to Vision AI + // Stream resources (one stream per output channel). The output stream + // resource will be created by App Platform automatically during deployment + // and deleted after application un-deployment. + // Note that this config applies to all the Application Instances. + // + // The output stream can be override at instance level by + // configuring the `output_resources` section of Instance resource. + // `producer_node` should be current node, `output_resource_binding` should + // be the output channel name (or leave it blank if there is only 1 output + // channel of the processor) and `output_resource` should be the target + // output stream. + OutputAllOutputChannelsToStream bool `protobuf:"varint,6,opt,name=output_all_output_channels_to_stream,json=outputAllOutputChannelsToStream,proto3,oneof"` +} + +func (*Node_OutputAllOutputChannelsToStream) isNode_StreamOutputConfig() {} + +// Message describing Draft object +type Draft struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name of resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. [Output only] Create timestamp + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. [Output only] Create timestamp + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. A user friendly display name for the solution. + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A description for this application. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // The draft application configs which haven't been updated to an application. + DraftApplicationConfigs *ApplicationConfigs `protobuf:"bytes,6,opt,name=draft_application_configs,json=draftApplicationConfigs,proto3" json:"draft_application_configs,omitempty"` +} + +func (x *Draft) Reset() { + *x = Draft{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Draft) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Draft) ProtoMessage() {} + +func (x *Draft) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[43] + 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 Draft.ProtoReflect.Descriptor instead. +func (*Draft) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{43} +} + +func (x *Draft) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Draft) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Draft) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Draft) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Draft) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Draft) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Draft) GetDraftApplicationConfigs() *ApplicationConfigs { + if x != nil { + return x.DraftApplicationConfigs + } + return nil +} + +// Message describing Instance object +// Next ID: 12 +type Instance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. name of resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. [Output only] Create timestamp + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. [Output only] Update timestamp + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. A user friendly display name for the solution. + DisplayName string `protobuf:"bytes,4,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // A description for this instance. + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + // The instance type for the current instance. + InstanceType Instance_InstanceType `protobuf:"varint,10,opt,name=instance_type,json=instanceType,proto3,enum=google.cloud.visionai.v1.Instance_InstanceType" json:"instance_type,omitempty"` + // The input resources for the current application instance. + // For example: + // input_resources: + // visionai.googleapis.com/v1/projects/123/locations/us-central1/clusters/456/streams/stream-a + InputResources []*Instance_InputResource `protobuf:"bytes,6,rep,name=input_resources,json=inputResources,proto3" json:"input_resources,omitempty"` + // All the output resources associated to one application instance. + OutputResources []*Instance_OutputResource `protobuf:"bytes,7,rep,name=output_resources,json=outputResources,proto3" json:"output_resources,omitempty"` + // State of the instance. + State Instance_State `protobuf:"varint,9,opt,name=state,proto3,enum=google.cloud.visionai.v1.Instance_State" json:"state,omitempty"` +} + +func (x *Instance) Reset() { + *x = Instance{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Instance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Instance) ProtoMessage() {} + +func (x *Instance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[44] + 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 Instance.ProtoReflect.Descriptor instead. +func (*Instance) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{44} +} + +func (x *Instance) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Instance) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Instance) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Instance) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Instance) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Instance) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Instance) GetInstanceType() Instance_InstanceType { + if x != nil { + return x.InstanceType + } + return Instance_INSTANCE_TYPE_UNSPECIFIED +} + +func (x *Instance) GetInputResources() []*Instance_InputResource { + if x != nil { + return x.InputResources + } + return nil +} + +func (x *Instance) GetOutputResources() []*Instance_OutputResource { + if x != nil { + return x.OutputResources + } + return nil +} + +func (x *Instance) GetState() Instance_State { + if x != nil { + return x.State + } + return Instance_STATE_UNSPECIFIED +} + +// Message for creating a Instance. +type ApplicationInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Id of the requesting object. + InstanceId string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` + // Required. The resource being created. + Instance *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` +} + +func (x *ApplicationInstance) Reset() { + *x = ApplicationInstance{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationInstance) ProtoMessage() {} + +func (x *ApplicationInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[45] + 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 ApplicationInstance.ProtoReflect.Descriptor instead. +func (*ApplicationInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{45} +} + +func (x *ApplicationInstance) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +func (x *ApplicationInstance) GetInstance() *Instance { + if x != nil { + return x.Instance + } + return nil +} + +// Message describing Processor object. +// Next ID: 19 +type Processor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // name of resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. [Output only] Create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. [Output only] Update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. A user friendly display name for the processor. + DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Illustrative sentences for describing the functionality of the processor. + Description string `protobuf:"bytes,10,opt,name=description,proto3" json:"description,omitempty"` + // Output only. Processor Type. + ProcessorType Processor_ProcessorType `protobuf:"varint,6,opt,name=processor_type,json=processorType,proto3,enum=google.cloud.visionai.v1.Processor_ProcessorType" json:"processor_type,omitempty"` + // Model Type. + ModelType ModelType `protobuf:"varint,13,opt,name=model_type,json=modelType,proto3,enum=google.cloud.visionai.v1.ModelType" json:"model_type,omitempty"` + // Source info for customer created processor. + CustomProcessorSourceInfo *CustomProcessorSourceInfo `protobuf:"bytes,7,opt,name=custom_processor_source_info,json=customProcessorSourceInfo,proto3" json:"custom_processor_source_info,omitempty"` + // Output only. State of the Processor. + State Processor_ProcessorState `protobuf:"varint,8,opt,name=state,proto3,enum=google.cloud.visionai.v1.Processor_ProcessorState" json:"state,omitempty"` + // Output only. [Output only] The input / output specifications of a + // processor, each type of processor has fixed input / output specs which + // cannot be altered by customer. + ProcessorIoSpec *ProcessorIOSpec `protobuf:"bytes,11,opt,name=processor_io_spec,json=processorIoSpec,proto3" json:"processor_io_spec,omitempty"` + // Output only. The corresponding configuration can be used in the Application + // to customize the behavior of the processor. + ConfigurationTypeurl string `protobuf:"bytes,14,opt,name=configuration_typeurl,json=configurationTypeurl,proto3" json:"configuration_typeurl,omitempty"` + SupportedAnnotationTypes []StreamAnnotationType `protobuf:"varint,15,rep,packed,name=supported_annotation_types,json=supportedAnnotationTypes,proto3,enum=google.cloud.visionai.v1.StreamAnnotationType" json:"supported_annotation_types,omitempty"` + // Indicates if the processor supports post processing. + SupportsPostProcessing bool `protobuf:"varint,17,opt,name=supports_post_processing,json=supportsPostProcessing,proto3" json:"supports_post_processing,omitempty"` + // Which instance types this processor supports; if empty, this default to + // STREAMING_PREDICTION. + SupportedInstanceTypes []Instance_InstanceType `protobuf:"varint,18,rep,packed,name=supported_instance_types,json=supportedInstanceTypes,proto3,enum=google.cloud.visionai.v1.Instance_InstanceType" json:"supported_instance_types,omitempty"` +} + +func (x *Processor) Reset() { + *x = Processor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Processor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Processor) ProtoMessage() {} + +func (x *Processor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[46] + 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 Processor.ProtoReflect.Descriptor instead. +func (*Processor) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{46} +} + +func (x *Processor) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Processor) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Processor) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Processor) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Processor) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Processor) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Processor) GetProcessorType() Processor_ProcessorType { + if x != nil { + return x.ProcessorType + } + return Processor_PROCESSOR_TYPE_UNSPECIFIED +} + +func (x *Processor) GetModelType() ModelType { + if x != nil { + return x.ModelType + } + return ModelType_MODEL_TYPE_UNSPECIFIED +} + +func (x *Processor) GetCustomProcessorSourceInfo() *CustomProcessorSourceInfo { + if x != nil { + return x.CustomProcessorSourceInfo + } + return nil +} + +func (x *Processor) GetState() Processor_ProcessorState { + if x != nil { + return x.State + } + return Processor_PROCESSOR_STATE_UNSPECIFIED +} + +func (x *Processor) GetProcessorIoSpec() *ProcessorIOSpec { + if x != nil { + return x.ProcessorIoSpec + } + return nil +} + +func (x *Processor) GetConfigurationTypeurl() string { + if x != nil { + return x.ConfigurationTypeurl + } + return "" +} + +func (x *Processor) GetSupportedAnnotationTypes() []StreamAnnotationType { + if x != nil { + return x.SupportedAnnotationTypes + } + return nil +} + +func (x *Processor) GetSupportsPostProcessing() bool { + if x != nil { + return x.SupportsPostProcessing + } + return false +} + +func (x *Processor) GetSupportedInstanceTypes() []Instance_InstanceType { + if x != nil { + return x.SupportedInstanceTypes + } + return nil +} + +// Message describing the input / output specifications of a processor. +type ProcessorIOSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // For processors with input_channel_specs, the processor must be explicitly + // connected to another processor. + GraphInputChannelSpecs []*ProcessorIOSpec_GraphInputChannelSpec `protobuf:"bytes,3,rep,name=graph_input_channel_specs,json=graphInputChannelSpecs,proto3" json:"graph_input_channel_specs,omitempty"` + // The output artifact specifications for the current processor. + GraphOutputChannelSpecs []*ProcessorIOSpec_GraphOutputChannelSpec `protobuf:"bytes,4,rep,name=graph_output_channel_specs,json=graphOutputChannelSpecs,proto3" json:"graph_output_channel_specs,omitempty"` + // The input resource that needs to be fed from the application instance. + InstanceResourceInputBindingSpecs []*ProcessorIOSpec_InstanceResourceInputBindingSpec `protobuf:"bytes,5,rep,name=instance_resource_input_binding_specs,json=instanceResourceInputBindingSpecs,proto3" json:"instance_resource_input_binding_specs,omitempty"` + // The output resource that the processor will generate per instance. + // Other than the explicitly listed output bindings here, all the processors' + // GraphOutputChannels can be binded to stream resource. The bind name then is + // the same as the GraphOutputChannel's name. + InstanceResourceOutputBindingSpecs []*ProcessorIOSpec_InstanceResourceOutputBindingSpec `protobuf:"bytes,6,rep,name=instance_resource_output_binding_specs,json=instanceResourceOutputBindingSpecs,proto3" json:"instance_resource_output_binding_specs,omitempty"` +} + +func (x *ProcessorIOSpec) Reset() { + *x = ProcessorIOSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorIOSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorIOSpec) ProtoMessage() {} + +func (x *ProcessorIOSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[47] + 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 ProcessorIOSpec.ProtoReflect.Descriptor instead. +func (*ProcessorIOSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{47} +} + +func (x *ProcessorIOSpec) GetGraphInputChannelSpecs() []*ProcessorIOSpec_GraphInputChannelSpec { + if x != nil { + return x.GraphInputChannelSpecs + } + return nil +} + +func (x *ProcessorIOSpec) GetGraphOutputChannelSpecs() []*ProcessorIOSpec_GraphOutputChannelSpec { + if x != nil { + return x.GraphOutputChannelSpecs + } + return nil +} + +func (x *ProcessorIOSpec) GetInstanceResourceInputBindingSpecs() []*ProcessorIOSpec_InstanceResourceInputBindingSpec { + if x != nil { + return x.InstanceResourceInputBindingSpecs + } + return nil +} + +func (x *ProcessorIOSpec) GetInstanceResourceOutputBindingSpecs() []*ProcessorIOSpec_InstanceResourceOutputBindingSpec { + if x != nil { + return x.InstanceResourceOutputBindingSpecs + } + return nil +} + +// Describes the source info for a custom processor. +type CustomProcessorSourceInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The path where App Platform loads the artifacts for the custom processor. + // + // Types that are assignable to ArtifactPath: + // + // *CustomProcessorSourceInfo_VertexModel + // *CustomProcessorSourceInfo_ProductRecognizerArtifact_ + ArtifactPath isCustomProcessorSourceInfo_ArtifactPath `protobuf_oneof:"artifact_path"` + // The original product which holds the custom processor's functionality. + SourceType CustomProcessorSourceInfo_SourceType `protobuf:"varint,1,opt,name=source_type,json=sourceType,proto3,enum=google.cloud.visionai.v1.CustomProcessorSourceInfo_SourceType" json:"source_type,omitempty"` + // Output only. Additional info related to the imported custom processor. + // Data is filled in by app platform during the processor creation. + AdditionalInfo map[string]string `protobuf:"bytes,4,rep,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Model schema files which specifies the signature of the model. + // For VERTEX_CUSTOM models, instances schema is required. + // If instances schema is not specified during the processor creation, + // VisionAI Platform will try to get it from Vertex, if it doesn't exist, the + // creation will fail. + ModelSchema *CustomProcessorSourceInfo_ModelSchema `protobuf:"bytes,5,opt,name=model_schema,json=modelSchema,proto3" json:"model_schema,omitempty"` +} + +func (x *CustomProcessorSourceInfo) Reset() { + *x = CustomProcessorSourceInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomProcessorSourceInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomProcessorSourceInfo) ProtoMessage() {} + +func (x *CustomProcessorSourceInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[48] + 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 CustomProcessorSourceInfo.ProtoReflect.Descriptor instead. +func (*CustomProcessorSourceInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{48} +} + +func (m *CustomProcessorSourceInfo) GetArtifactPath() isCustomProcessorSourceInfo_ArtifactPath { + if m != nil { + return m.ArtifactPath + } + return nil +} + +func (x *CustomProcessorSourceInfo) GetVertexModel() string { + if x, ok := x.GetArtifactPath().(*CustomProcessorSourceInfo_VertexModel); ok { + return x.VertexModel + } + return "" +} + +func (x *CustomProcessorSourceInfo) GetProductRecognizerArtifact() *CustomProcessorSourceInfo_ProductRecognizerArtifact { + if x, ok := x.GetArtifactPath().(*CustomProcessorSourceInfo_ProductRecognizerArtifact_); ok { + return x.ProductRecognizerArtifact + } + return nil +} + +func (x *CustomProcessorSourceInfo) GetSourceType() CustomProcessorSourceInfo_SourceType { + if x != nil { + return x.SourceType + } + return CustomProcessorSourceInfo_SOURCE_TYPE_UNSPECIFIED +} + +func (x *CustomProcessorSourceInfo) GetAdditionalInfo() map[string]string { + if x != nil { + return x.AdditionalInfo + } + return nil +} + +func (x *CustomProcessorSourceInfo) GetModelSchema() *CustomProcessorSourceInfo_ModelSchema { + if x != nil { + return x.ModelSchema + } + return nil +} + +type isCustomProcessorSourceInfo_ArtifactPath interface { + isCustomProcessorSourceInfo_ArtifactPath() +} + +type CustomProcessorSourceInfo_VertexModel struct { + // The resource name original model hosted in the vertex AI platform. + VertexModel string `protobuf:"bytes,2,opt,name=vertex_model,json=vertexModel,proto3,oneof"` +} + +type CustomProcessorSourceInfo_ProductRecognizerArtifact_ struct { + // Artifact for product recognizer. + ProductRecognizerArtifact *CustomProcessorSourceInfo_ProductRecognizerArtifact `protobuf:"bytes,3,opt,name=product_recognizer_artifact,json=productRecognizerArtifact,proto3,oneof"` +} + +func (*CustomProcessorSourceInfo_VertexModel) isCustomProcessorSourceInfo_ArtifactPath() {} + +func (*CustomProcessorSourceInfo_ProductRecognizerArtifact_) isCustomProcessorSourceInfo_ArtifactPath() { +} + +// Next ID: 35 +type ProcessorConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ProcessorConfig: + // + // *ProcessorConfig_VideoStreamInputConfig + // *ProcessorConfig_AiEnabledDevicesInputConfig + // *ProcessorConfig_MediaWarehouseConfig + // *ProcessorConfig_PersonBlurConfig + // *ProcessorConfig_OccupancyCountConfig + // *ProcessorConfig_PersonVehicleDetectionConfig + // *ProcessorConfig_VertexAutomlVisionConfig + // *ProcessorConfig_VertexAutomlVideoConfig + // *ProcessorConfig_VertexCustomConfig + // *ProcessorConfig_GeneralObjectDetectionConfig + // *ProcessorConfig_BigQueryConfig + // *ProcessorConfig_GcsOutputConfig + // *ProcessorConfig_ProductRecognizerConfig + // *ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig + // *ProcessorConfig_TagRecognizerConfig + // *ProcessorConfig_UniversalInputConfig + ProcessorConfig isProcessorConfig_ProcessorConfig `protobuf_oneof:"processor_config"` + // Experimental configurations. Structured object containing not-yet-stable + // processor parameters. + ExperimentalConfig *structpb.Struct `protobuf:"bytes,26,opt,name=experimental_config,json=experimentalConfig,proto3" json:"experimental_config,omitempty"` +} + +func (x *ProcessorConfig) Reset() { + *x = ProcessorConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorConfig) ProtoMessage() {} + +func (x *ProcessorConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[49] + 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 ProcessorConfig.ProtoReflect.Descriptor instead. +func (*ProcessorConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{49} +} + +func (m *ProcessorConfig) GetProcessorConfig() isProcessorConfig_ProcessorConfig { + if m != nil { + return m.ProcessorConfig + } + return nil +} + +func (x *ProcessorConfig) GetVideoStreamInputConfig() *VideoStreamInputConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VideoStreamInputConfig); ok { + return x.VideoStreamInputConfig + } + return nil +} + +func (x *ProcessorConfig) GetAiEnabledDevicesInputConfig() *AIEnabledDevicesInputConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_AiEnabledDevicesInputConfig); ok { + return x.AiEnabledDevicesInputConfig + } + return nil +} + +func (x *ProcessorConfig) GetMediaWarehouseConfig() *MediaWarehouseConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_MediaWarehouseConfig); ok { + return x.MediaWarehouseConfig + } + return nil +} + +func (x *ProcessorConfig) GetPersonBlurConfig() *PersonBlurConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonBlurConfig); ok { + return x.PersonBlurConfig + } + return nil +} + +func (x *ProcessorConfig) GetOccupancyCountConfig() *OccupancyCountConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_OccupancyCountConfig); ok { + return x.OccupancyCountConfig + } + return nil +} + +func (x *ProcessorConfig) GetPersonVehicleDetectionConfig() *PersonVehicleDetectionConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonVehicleDetectionConfig); ok { + return x.PersonVehicleDetectionConfig + } + return nil +} + +func (x *ProcessorConfig) GetVertexAutomlVisionConfig() *VertexAutoMLVisionConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexAutomlVisionConfig); ok { + return x.VertexAutomlVisionConfig + } + return nil +} + +func (x *ProcessorConfig) GetVertexAutomlVideoConfig() *VertexAutoMLVideoConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexAutomlVideoConfig); ok { + return x.VertexAutomlVideoConfig + } + return nil +} + +func (x *ProcessorConfig) GetVertexCustomConfig() *VertexCustomConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_VertexCustomConfig); ok { + return x.VertexCustomConfig + } + return nil +} + +func (x *ProcessorConfig) GetGeneralObjectDetectionConfig() *GeneralObjectDetectionConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_GeneralObjectDetectionConfig); ok { + return x.GeneralObjectDetectionConfig + } + return nil +} + +func (x *ProcessorConfig) GetBigQueryConfig() *BigQueryConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_BigQueryConfig); ok { + return x.BigQueryConfig + } + return nil +} + +func (x *ProcessorConfig) GetGcsOutputConfig() *GcsOutputConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_GcsOutputConfig); ok { + return x.GcsOutputConfig + } + return nil +} + +func (x *ProcessorConfig) GetProductRecognizerConfig() *ProductRecognizerConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_ProductRecognizerConfig); ok { + return x.ProductRecognizerConfig + } + return nil +} + +func (x *ProcessorConfig) GetPersonalProtectiveEquipmentDetectionConfig() *PersonalProtectiveEquipmentDetectionConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig); ok { + return x.PersonalProtectiveEquipmentDetectionConfig + } + return nil +} + +func (x *ProcessorConfig) GetTagRecognizerConfig() *TagRecognizerConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_TagRecognizerConfig); ok { + return x.TagRecognizerConfig + } + return nil +} + +func (x *ProcessorConfig) GetUniversalInputConfig() *UniversalInputConfig { + if x, ok := x.GetProcessorConfig().(*ProcessorConfig_UniversalInputConfig); ok { + return x.UniversalInputConfig + } + return nil +} + +func (x *ProcessorConfig) GetExperimentalConfig() *structpb.Struct { + if x != nil { + return x.ExperimentalConfig + } + return nil +} + +type isProcessorConfig_ProcessorConfig interface { + isProcessorConfig_ProcessorConfig() +} + +type ProcessorConfig_VideoStreamInputConfig struct { + // Configs of stream input processor. + VideoStreamInputConfig *VideoStreamInputConfig `protobuf:"bytes,9,opt,name=video_stream_input_config,json=videoStreamInputConfig,proto3,oneof"` +} + +type ProcessorConfig_AiEnabledDevicesInputConfig struct { + // Config of AI-enabled input devices. + AiEnabledDevicesInputConfig *AIEnabledDevicesInputConfig `protobuf:"bytes,20,opt,name=ai_enabled_devices_input_config,json=aiEnabledDevicesInputConfig,proto3,oneof"` +} + +type ProcessorConfig_MediaWarehouseConfig struct { + // Configs of media warehouse processor. + MediaWarehouseConfig *MediaWarehouseConfig `protobuf:"bytes,10,opt,name=media_warehouse_config,json=mediaWarehouseConfig,proto3,oneof"` +} + +type ProcessorConfig_PersonBlurConfig struct { + // Configs of person blur processor. + PersonBlurConfig *PersonBlurConfig `protobuf:"bytes,11,opt,name=person_blur_config,json=personBlurConfig,proto3,oneof"` +} + +type ProcessorConfig_OccupancyCountConfig struct { + // Configs of occupancy count processor. + OccupancyCountConfig *OccupancyCountConfig `protobuf:"bytes,12,opt,name=occupancy_count_config,json=occupancyCountConfig,proto3,oneof"` +} + +type ProcessorConfig_PersonVehicleDetectionConfig struct { + // Configs of Person Vehicle Detection processor. + PersonVehicleDetectionConfig *PersonVehicleDetectionConfig `protobuf:"bytes,15,opt,name=person_vehicle_detection_config,json=personVehicleDetectionConfig,proto3,oneof"` +} + +type ProcessorConfig_VertexAutomlVisionConfig struct { + // Configs of Vertex AutoML vision processor. + VertexAutomlVisionConfig *VertexAutoMLVisionConfig `protobuf:"bytes,13,opt,name=vertex_automl_vision_config,json=vertexAutomlVisionConfig,proto3,oneof"` +} + +type ProcessorConfig_VertexAutomlVideoConfig struct { + // Configs of Vertex AutoML video processor. + VertexAutomlVideoConfig *VertexAutoMLVideoConfig `protobuf:"bytes,14,opt,name=vertex_automl_video_config,json=vertexAutomlVideoConfig,proto3,oneof"` +} + +type ProcessorConfig_VertexCustomConfig struct { + // Configs of Vertex Custom processor. + VertexCustomConfig *VertexCustomConfig `protobuf:"bytes,17,opt,name=vertex_custom_config,json=vertexCustomConfig,proto3,oneof"` +} + +type ProcessorConfig_GeneralObjectDetectionConfig struct { + // Configs of General Object Detection processor. + GeneralObjectDetectionConfig *GeneralObjectDetectionConfig `protobuf:"bytes,18,opt,name=general_object_detection_config,json=generalObjectDetectionConfig,proto3,oneof"` +} + +type ProcessorConfig_BigQueryConfig struct { + // Configs of BigQuery processor. + BigQueryConfig *BigQueryConfig `protobuf:"bytes,19,opt,name=big_query_config,json=bigQueryConfig,proto3,oneof"` +} + +type ProcessorConfig_GcsOutputConfig struct { + // Configs of Cloud Storage output processor. + GcsOutputConfig *GcsOutputConfig `protobuf:"bytes,27,opt,name=gcs_output_config,json=gcsOutputConfig,proto3,oneof"` +} + +type ProcessorConfig_ProductRecognizerConfig struct { + // Runtime configs of Product Recognizer processor. + ProductRecognizerConfig *ProductRecognizerConfig `protobuf:"bytes,21,opt,name=product_recognizer_config,json=productRecognizerConfig,proto3,oneof"` +} + +type ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig struct { + // Configs of personal_protective_equipment_detection_config + PersonalProtectiveEquipmentDetectionConfig *PersonalProtectiveEquipmentDetectionConfig `protobuf:"bytes,22,opt,name=personal_protective_equipment_detection_config,json=personalProtectiveEquipmentDetectionConfig,proto3,oneof"` +} + +type ProcessorConfig_TagRecognizerConfig struct { + // Runtime configs of Tag Recognizer processor. + TagRecognizerConfig *TagRecognizerConfig `protobuf:"bytes,25,opt,name=tag_recognizer_config,json=tagRecognizerConfig,proto3,oneof"` +} + +type ProcessorConfig_UniversalInputConfig struct { + // Runtime configs of UniversalInput processor. + UniversalInputConfig *UniversalInputConfig `protobuf:"bytes,28,opt,name=universal_input_config,json=universalInputConfig,proto3,oneof"` +} + +func (*ProcessorConfig_VideoStreamInputConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_AiEnabledDevicesInputConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_MediaWarehouseConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_PersonBlurConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_OccupancyCountConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_PersonVehicleDetectionConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_VertexAutomlVisionConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_VertexAutomlVideoConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_VertexCustomConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_GeneralObjectDetectionConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_BigQueryConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_GcsOutputConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_ProductRecognizerConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig) isProcessorConfig_ProcessorConfig() { +} + +func (*ProcessorConfig_TagRecognizerConfig) isProcessorConfig_ProcessorConfig() {} + +func (*ProcessorConfig_UniversalInputConfig) isProcessorConfig_ProcessorConfig() {} + +// Message describing Vision AI stream with application specific annotations. +// All the StreamAnnotation object inside this message MUST have unique id. +type StreamWithAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Vision AI Stream resource name. + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` + // Annotations that will be applied to the whole application. + ApplicationAnnotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=application_annotations,json=applicationAnnotations,proto3" json:"application_annotations,omitempty"` + // Annotations that will be applied to the specific node of the application. + // If the same type of the annotations is applied to both application and + // node, the node annotation will be added in addition to the global + // application one. + // For example, if there is one active zone annotation for the whole + // application and one active zone annotation for the Occupancy Analytic + // processor, then the Occupancy Analytic processor will have two active zones + // defined. + NodeAnnotations []*StreamWithAnnotation_NodeAnnotation `protobuf:"bytes,3,rep,name=node_annotations,json=nodeAnnotations,proto3" json:"node_annotations,omitempty"` +} + +func (x *StreamWithAnnotation) Reset() { + *x = StreamWithAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamWithAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamWithAnnotation) ProtoMessage() {} + +func (x *StreamWithAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[50] + 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 StreamWithAnnotation.ProtoReflect.Descriptor instead. +func (*StreamWithAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{50} +} + +func (x *StreamWithAnnotation) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *StreamWithAnnotation) GetApplicationAnnotations() []*StreamAnnotation { + if x != nil { + return x.ApplicationAnnotations + } + return nil +} + +func (x *StreamWithAnnotation) GetNodeAnnotations() []*StreamWithAnnotation_NodeAnnotation { + if x != nil { + return x.NodeAnnotations + } + return nil +} + +// Message describing annotations specific to application node. +// This message is a duplication of StreamWithAnnotation.NodeAnnotation. +type ApplicationNodeAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The node name of the application graph. + Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` + // The node specific stream annotations. + Annotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *ApplicationNodeAnnotation) Reset() { + *x = ApplicationNodeAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationNodeAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationNodeAnnotation) ProtoMessage() {} + +func (x *ApplicationNodeAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[51] + 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 ApplicationNodeAnnotation.ProtoReflect.Descriptor instead. +func (*ApplicationNodeAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{51} +} + +func (x *ApplicationNodeAnnotation) GetNode() string { + if x != nil { + return x.Node + } + return "" +} + +func (x *ApplicationNodeAnnotation) GetAnnotations() []*StreamAnnotation { + if x != nil { + return x.Annotations + } + return nil +} + +// Message describing general annotation for resources. +type ResourceAnnotations struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Annotations that will be applied to the whole application. + ApplicationAnnotations []*StreamAnnotation `protobuf:"bytes,1,rep,name=application_annotations,json=applicationAnnotations,proto3" json:"application_annotations,omitempty"` + // Annotations that will be applied to the specific node of the application. + // If the same type of the annotations is applied to both application and + // node, the node annotation will be added in addition to the global + // application one. + // For example, if there is one active zone annotation for the whole + // application and one active zone annotation for the Occupancy Analytic + // processor, then the Occupancy Analytic processor will have two active zones + // defined. + NodeAnnotations []*ApplicationNodeAnnotation `protobuf:"bytes,2,rep,name=node_annotations,json=nodeAnnotations,proto3" json:"node_annotations,omitempty"` +} + +func (x *ResourceAnnotations) Reset() { + *x = ResourceAnnotations{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResourceAnnotations) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResourceAnnotations) ProtoMessage() {} + +func (x *ResourceAnnotations) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[52] + 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 ResourceAnnotations.ProtoReflect.Descriptor instead. +func (*ResourceAnnotations) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{52} +} + +func (x *ResourceAnnotations) GetApplicationAnnotations() []*StreamAnnotation { + if x != nil { + return x.ApplicationAnnotations + } + return nil +} + +func (x *ResourceAnnotations) GetNodeAnnotations() []*ApplicationNodeAnnotation { + if x != nil { + return x.NodeAnnotations + } + return nil +} + +// Message describing Video Stream Input Config. +// This message should only be used as a placeholder for builtin:stream-input +// processor, actual stream binding should be specified using corresponding +// API. +type VideoStreamInputConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. + Streams []string `protobuf:"bytes,1,rep,name=streams,proto3" json:"streams,omitempty"` + // Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. + StreamsWithAnnotation []*StreamWithAnnotation `protobuf:"bytes,2,rep,name=streams_with_annotation,json=streamsWithAnnotation,proto3" json:"streams_with_annotation,omitempty"` +} + +func (x *VideoStreamInputConfig) Reset() { + *x = VideoStreamInputConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VideoStreamInputConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VideoStreamInputConfig) ProtoMessage() {} + +func (x *VideoStreamInputConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[53] + 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 VideoStreamInputConfig.ProtoReflect.Descriptor instead. +func (*VideoStreamInputConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{53} +} + +// Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. +func (x *VideoStreamInputConfig) GetStreams() []string { + if x != nil { + return x.Streams + } + return nil +} + +// Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. +func (x *VideoStreamInputConfig) GetStreamsWithAnnotation() []*StreamWithAnnotation { + if x != nil { + return x.StreamsWithAnnotation + } + return nil +} + +// Message describing AI-enabled Devices Input Config. +type AIEnabledDevicesInputConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AIEnabledDevicesInputConfig) Reset() { + *x = AIEnabledDevicesInputConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AIEnabledDevicesInputConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AIEnabledDevicesInputConfig) ProtoMessage() {} + +func (x *AIEnabledDevicesInputConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[54] + 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 AIEnabledDevicesInputConfig.ProtoReflect.Descriptor instead. +func (*AIEnabledDevicesInputConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{54} +} + +// Message describing MediaWarehouseConfig. +type MediaWarehouseConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the Media Warehouse corpus. + // Format: + // projects/${project_id}/locations/${location_id}/corpora/${corpus_id} + Corpus string `protobuf:"bytes,1,opt,name=corpus,proto3" json:"corpus,omitempty"` + // Deprecated. + // + // Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. + Region string `protobuf:"bytes,2,opt,name=region,proto3" json:"region,omitempty"` + // The duration for which all media assets, associated metadata, and search + // documents can exist. + Ttl *durationpb.Duration `protobuf:"bytes,3,opt,name=ttl,proto3" json:"ttl,omitempty"` +} + +func (x *MediaWarehouseConfig) Reset() { + *x = MediaWarehouseConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MediaWarehouseConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MediaWarehouseConfig) ProtoMessage() {} + +func (x *MediaWarehouseConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[55] + 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 MediaWarehouseConfig.ProtoReflect.Descriptor instead. +func (*MediaWarehouseConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{55} +} + +func (x *MediaWarehouseConfig) GetCorpus() string { + if x != nil { + return x.Corpus + } + return "" +} + +// Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. +func (x *MediaWarehouseConfig) GetRegion() string { + if x != nil { + return x.Region + } + return "" +} + +func (x *MediaWarehouseConfig) GetTtl() *durationpb.Duration { + if x != nil { + return x.Ttl + } + return nil +} + +// Message describing FaceBlurConfig. +type PersonBlurConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Person blur type. + PersonBlurType PersonBlurConfig_PersonBlurType `protobuf:"varint,1,opt,name=person_blur_type,json=personBlurType,proto3,enum=google.cloud.visionai.v1.PersonBlurConfig_PersonBlurType" json:"person_blur_type,omitempty"` + // Whether only blur faces other than the whole object in the processor. + FacesOnly bool `protobuf:"varint,2,opt,name=faces_only,json=facesOnly,proto3" json:"faces_only,omitempty"` +} + +func (x *PersonBlurConfig) Reset() { + *x = PersonBlurConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonBlurConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonBlurConfig) ProtoMessage() {} + +func (x *PersonBlurConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[56] + 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 PersonBlurConfig.ProtoReflect.Descriptor instead. +func (*PersonBlurConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{56} +} + +func (x *PersonBlurConfig) GetPersonBlurType() PersonBlurConfig_PersonBlurType { + if x != nil { + return x.PersonBlurType + } + return PersonBlurConfig_PERSON_BLUR_TYPE_UNSPECIFIED +} + +func (x *PersonBlurConfig) GetFacesOnly() bool { + if x != nil { + return x.FacesOnly + } + return false +} + +// Message describing OccupancyCountConfig. +type OccupancyCountConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether to count the appearances of people, output counts have 'people' as + // the key. + EnablePeopleCounting bool `protobuf:"varint,1,opt,name=enable_people_counting,json=enablePeopleCounting,proto3" json:"enable_people_counting,omitempty"` + // Whether to count the appearances of vehicles, output counts will have + // 'vehicle' as the key. + EnableVehicleCounting bool `protobuf:"varint,2,opt,name=enable_vehicle_counting,json=enableVehicleCounting,proto3" json:"enable_vehicle_counting,omitempty"` + // Whether to track each invidual object's loitering time inside the scene or + // specific zone. + EnableDwellingTimeTracking bool `protobuf:"varint,3,opt,name=enable_dwelling_time_tracking,json=enableDwellingTimeTracking,proto3" json:"enable_dwelling_time_tracking,omitempty"` +} + +func (x *OccupancyCountConfig) Reset() { + *x = OccupancyCountConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *OccupancyCountConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OccupancyCountConfig) ProtoMessage() {} + +func (x *OccupancyCountConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[57] + 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 OccupancyCountConfig.ProtoReflect.Descriptor instead. +func (*OccupancyCountConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{57} +} + +func (x *OccupancyCountConfig) GetEnablePeopleCounting() bool { + if x != nil { + return x.EnablePeopleCounting + } + return false +} + +func (x *OccupancyCountConfig) GetEnableVehicleCounting() bool { + if x != nil { + return x.EnableVehicleCounting + } + return false +} + +func (x *OccupancyCountConfig) GetEnableDwellingTimeTracking() bool { + if x != nil { + return x.EnableDwellingTimeTracking + } + return false +} + +// Message describing PersonVehicleDetectionConfig. +type PersonVehicleDetectionConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // At least one of enable_people_counting and enable_vehicle_counting fields + // must be set to true. + // Whether to count the appearances of people, output counts have 'people' as + // the key. + EnablePeopleCounting bool `protobuf:"varint,1,opt,name=enable_people_counting,json=enablePeopleCounting,proto3" json:"enable_people_counting,omitempty"` + // Whether to count the appearances of vehicles, output counts will have + // 'vehicle' as the key. + EnableVehicleCounting bool `protobuf:"varint,2,opt,name=enable_vehicle_counting,json=enableVehicleCounting,proto3" json:"enable_vehicle_counting,omitempty"` +} + +func (x *PersonVehicleDetectionConfig) Reset() { + *x = PersonVehicleDetectionConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonVehicleDetectionConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonVehicleDetectionConfig) ProtoMessage() {} + +func (x *PersonVehicleDetectionConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[58] + 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 PersonVehicleDetectionConfig.ProtoReflect.Descriptor instead. +func (*PersonVehicleDetectionConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{58} +} + +func (x *PersonVehicleDetectionConfig) GetEnablePeopleCounting() bool { + if x != nil { + return x.EnablePeopleCounting + } + return false +} + +func (x *PersonVehicleDetectionConfig) GetEnableVehicleCounting() bool { + if x != nil { + return x.EnableVehicleCounting + } + return false +} + +// Message describing PersonalProtectiveEquipmentDetectionConfig. +type PersonalProtectiveEquipmentDetectionConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether to enable face coverage detection. + EnableFaceCoverageDetection bool `protobuf:"varint,1,opt,name=enable_face_coverage_detection,json=enableFaceCoverageDetection,proto3" json:"enable_face_coverage_detection,omitempty"` + // Whether to enable head coverage detection. + EnableHeadCoverageDetection bool `protobuf:"varint,2,opt,name=enable_head_coverage_detection,json=enableHeadCoverageDetection,proto3" json:"enable_head_coverage_detection,omitempty"` + // Whether to enable hands coverage detection. + EnableHandsCoverageDetection bool `protobuf:"varint,3,opt,name=enable_hands_coverage_detection,json=enableHandsCoverageDetection,proto3" json:"enable_hands_coverage_detection,omitempty"` +} + +func (x *PersonalProtectiveEquipmentDetectionConfig) Reset() { + *x = PersonalProtectiveEquipmentDetectionConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonalProtectiveEquipmentDetectionConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonalProtectiveEquipmentDetectionConfig) ProtoMessage() {} + +func (x *PersonalProtectiveEquipmentDetectionConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[59] + 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 PersonalProtectiveEquipmentDetectionConfig.ProtoReflect.Descriptor instead. +func (*PersonalProtectiveEquipmentDetectionConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{59} +} + +func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableFaceCoverageDetection() bool { + if x != nil { + return x.EnableFaceCoverageDetection + } + return false +} + +func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableHeadCoverageDetection() bool { + if x != nil { + return x.EnableHeadCoverageDetection + } + return false +} + +func (x *PersonalProtectiveEquipmentDetectionConfig) GetEnableHandsCoverageDetection() bool { + if x != nil { + return x.EnableHandsCoverageDetection + } + return false +} + +// Message of configurations for General Object Detection processor. +type GeneralObjectDetectionConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GeneralObjectDetectionConfig) Reset() { + *x = GeneralObjectDetectionConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeneralObjectDetectionConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeneralObjectDetectionConfig) ProtoMessage() {} + +func (x *GeneralObjectDetectionConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[60] + 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 GeneralObjectDetectionConfig.ProtoReflect.Descriptor instead. +func (*GeneralObjectDetectionConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{60} +} + +// Message of configurations for BigQuery processor. +type BigQueryConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // BigQuery table resource for Vision AI Platform to ingest annotations to. + Table string `protobuf:"bytes,1,opt,name=table,proto3" json:"table,omitempty"` + // Data Schema + // By default, Vision AI Application will try to write annotations to the + // target BigQuery table using the following schema: + // + // ingestion_time: TIMESTAMP, the ingestion time of the original data. + // + // application: STRING, name of the application which produces the annotation. + // + // instance: STRING, Id of the instance which produces the annotation. + // + // node: STRING, name of the application graph node which produces the + // annotation. + // + // annotation: STRING or JSON, the actual annotation protobuf will be + // converted to json string with bytes field as 64 encoded string. It can be + // written to both String or Json type column. + // + // To forward annotation data to an existing BigQuery table, customer needs to + // make sure the compatibility of the schema. + // The map maps application node name to its corresponding cloud function + // endpoint to transform the annotations directly to the + // google.cloud.bigquery.storage.v1.AppendRowsRequest (only avro_rows or + // proto_rows should be set). If configured, annotations produced by + // corresponding application node will sent to the Cloud Function at first + // before be forwarded to BigQuery. + // + // If the default table schema doesn't fit, customer is able to transform the + // annotation output from Vision AI Application to arbitrary BigQuery table + // schema with CloudFunction. + // * The cloud function will receive AppPlatformCloudFunctionRequest where + // the annotations field will be the json format of Vision AI annotation. + // * The cloud function should return AppPlatformCloudFunctionResponse with + // AppendRowsRequest stored in the annotations field. + // * To drop the annotation, simply clear the annotations field in the + // returned AppPlatformCloudFunctionResponse. + CloudFunctionMapping map[string]string `protobuf:"bytes,2,rep,name=cloud_function_mapping,json=cloudFunctionMapping,proto3" json:"cloud_function_mapping,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // If true, App Platform will create the BigQuery DataSet and the + // BigQuery Table with default schema if the specified table doesn't exist. + // This doesn't work if any cloud function customized schema is specified + // since the system doesn't know your desired schema. + // JSON column will be used in the default table created by App Platform. + CreateDefaultTableIfNotExists bool `protobuf:"varint,3,opt,name=create_default_table_if_not_exists,json=createDefaultTableIfNotExists,proto3" json:"create_default_table_if_not_exists,omitempty"` +} + +func (x *BigQueryConfig) Reset() { + *x = BigQueryConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BigQueryConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BigQueryConfig) ProtoMessage() {} + +func (x *BigQueryConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[61] + 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 BigQueryConfig.ProtoReflect.Descriptor instead. +func (*BigQueryConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{61} +} + +func (x *BigQueryConfig) GetTable() string { + if x != nil { + return x.Table + } + return "" +} + +func (x *BigQueryConfig) GetCloudFunctionMapping() map[string]string { + if x != nil { + return x.CloudFunctionMapping + } + return nil +} + +func (x *BigQueryConfig) GetCreateDefaultTableIfNotExists() bool { + if x != nil { + return x.CreateDefaultTableIfNotExists + } + return false +} + +// Message of configurations of Vertex AutoML Vision Processors. +type VertexAutoMLVisionConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Only entities with higher score than the threshold will be returned. + // Value 0.0 means to return all the detected entities. + ConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"` + // At most this many predictions will be returned per output frame. + // Value 0 means to return all the detected entities. + MaxPredictions int32 `protobuf:"varint,2,opt,name=max_predictions,json=maxPredictions,proto3" json:"max_predictions,omitempty"` +} + +func (x *VertexAutoMLVisionConfig) Reset() { + *x = VertexAutoMLVisionConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VertexAutoMLVisionConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VertexAutoMLVisionConfig) ProtoMessage() {} + +func (x *VertexAutoMLVisionConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[62] + 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 VertexAutoMLVisionConfig.ProtoReflect.Descriptor instead. +func (*VertexAutoMLVisionConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{62} +} + +func (x *VertexAutoMLVisionConfig) GetConfidenceThreshold() float32 { + if x != nil { + return x.ConfidenceThreshold + } + return 0 +} + +func (x *VertexAutoMLVisionConfig) GetMaxPredictions() int32 { + if x != nil { + return x.MaxPredictions + } + return 0 +} + +// Message describing VertexAutoMLVideoConfig. +type VertexAutoMLVideoConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Only entities with higher score than the threshold will be returned. + // Value 0.0 means returns all the detected entities. + ConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=confidence_threshold,json=confidenceThreshold,proto3" json:"confidence_threshold,omitempty"` + // Labels specified in this field won't be returned. + BlockedLabels []string `protobuf:"bytes,2,rep,name=blocked_labels,json=blockedLabels,proto3" json:"blocked_labels,omitempty"` + // At most this many predictions will be returned per output frame. + // Value 0 means to return all the detected entities. + MaxPredictions int32 `protobuf:"varint,3,opt,name=max_predictions,json=maxPredictions,proto3" json:"max_predictions,omitempty"` + // Only Bounding Box whose size is larger than this limit will be returned. + // Object Tracking only. + // Value 0.0 means to return all the detected entities. + BoundingBoxSizeLimit float32 `protobuf:"fixed32,4,opt,name=bounding_box_size_limit,json=boundingBoxSizeLimit,proto3" json:"bounding_box_size_limit,omitempty"` +} + +func (x *VertexAutoMLVideoConfig) Reset() { + *x = VertexAutoMLVideoConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VertexAutoMLVideoConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VertexAutoMLVideoConfig) ProtoMessage() {} + +func (x *VertexAutoMLVideoConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[63] + 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 VertexAutoMLVideoConfig.ProtoReflect.Descriptor instead. +func (*VertexAutoMLVideoConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{63} +} + +func (x *VertexAutoMLVideoConfig) GetConfidenceThreshold() float32 { + if x != nil { + return x.ConfidenceThreshold + } + return 0 +} + +func (x *VertexAutoMLVideoConfig) GetBlockedLabels() []string { + if x != nil { + return x.BlockedLabels + } + return nil +} + +func (x *VertexAutoMLVideoConfig) GetMaxPredictions() int32 { + if x != nil { + return x.MaxPredictions + } + return 0 +} + +func (x *VertexAutoMLVideoConfig) GetBoundingBoxSizeLimit() float32 { + if x != nil { + return x.BoundingBoxSizeLimit + } + return 0 +} + +// Message describing VertexCustomConfig. +type VertexCustomConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The max prediction frame per second. This attribute sets how fast the + // operator sends prediction requests to Vertex AI endpoint. Default value is + // 0, which means there is no max prediction fps limit. The operator sends + // prediction requests at input fps. + MaxPredictionFps int32 `protobuf:"varint,1,opt,name=max_prediction_fps,json=maxPredictionFps,proto3" json:"max_prediction_fps,omitempty"` + // A description of resources that are dedicated to the DeployedModel, and + // that need a higher degree of manual configuration. + DedicatedResources *DedicatedResources `protobuf:"bytes,2,opt,name=dedicated_resources,json=dedicatedResources,proto3" json:"dedicated_resources,omitempty"` + // If not empty, the prediction result will be sent to the specified cloud + // function for post processing. + // * The cloud function will receive AppPlatformCloudFunctionRequest where + // the annotations field will be the json format of proto PredictResponse. + // * The cloud function should return AppPlatformCloudFunctionResponse with + // PredictResponse stored in the annotations field. + // * To drop the prediction output, simply clear the payload field in the + // returned AppPlatformCloudFunctionResponse. + PostProcessingCloudFunction string `protobuf:"bytes,3,opt,name=post_processing_cloud_function,json=postProcessingCloudFunction,proto3" json:"post_processing_cloud_function,omitempty"` + // If true, the prediction request received by custom model will also contain + // metadata with the following schema: + // + // 'appPlatformMetadata': { + // 'ingestionTime': DOUBLE; (UNIX timestamp) + // 'application': STRING; + // 'instanceId': STRING; + // 'node': STRING; + // 'processor': STRING; + // } + AttachApplicationMetadata bool `protobuf:"varint,4,opt,name=attach_application_metadata,json=attachApplicationMetadata,proto3" json:"attach_application_metadata,omitempty"` + // Optional. By setting the configuration_input_topic, processor will + // subscribe to given topic, only pub/sub topic is supported now. Example + // channel: + // //pubsub.googleapis.com/projects/visionai-testing-stable/topics/test-topic + // message schema should be: + // message Message { + // // The ID of the stream that associates with the application instance. + // string stream_id = 1; + // // The target fps. By default, the custom processor will *not* send any + // data to the Vertex Prediction container. Note that once the + // dynamic_config_input_topic is set, max_prediction_fps will not work and be + // preceded by the fps set inside the topic. + // int32 fps = 2; + // } + DynamicConfigInputTopic *string `protobuf:"bytes,6,opt,name=dynamic_config_input_topic,json=dynamicConfigInputTopic,proto3,oneof" json:"dynamic_config_input_topic,omitempty"` +} + +func (x *VertexCustomConfig) Reset() { + *x = VertexCustomConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VertexCustomConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VertexCustomConfig) ProtoMessage() {} + +func (x *VertexCustomConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[64] + 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 VertexCustomConfig.ProtoReflect.Descriptor instead. +func (*VertexCustomConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{64} +} + +func (x *VertexCustomConfig) GetMaxPredictionFps() int32 { + if x != nil { + return x.MaxPredictionFps + } + return 0 +} + +func (x *VertexCustomConfig) GetDedicatedResources() *DedicatedResources { + if x != nil { + return x.DedicatedResources + } + return nil +} + +func (x *VertexCustomConfig) GetPostProcessingCloudFunction() string { + if x != nil { + return x.PostProcessingCloudFunction + } + return "" +} + +func (x *VertexCustomConfig) GetAttachApplicationMetadata() bool { + if x != nil { + return x.AttachApplicationMetadata + } + return false +} + +func (x *VertexCustomConfig) GetDynamicConfigInputTopic() string { + if x != nil && x.DynamicConfigInputTopic != nil { + return *x.DynamicConfigInputTopic + } + return "" +} + +// Message describing GcsOutputConfig. +type GcsOutputConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The Cloud Storage path for Vision AI Platform to ingest annotations to. + GcsPath string `protobuf:"bytes,1,opt,name=gcs_path,json=gcsPath,proto3" json:"gcs_path,omitempty"` +} + +func (x *GcsOutputConfig) Reset() { + *x = GcsOutputConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GcsOutputConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GcsOutputConfig) ProtoMessage() {} + +func (x *GcsOutputConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[65] + 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 GcsOutputConfig.ProtoReflect.Descriptor instead. +func (*GcsOutputConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{65} +} + +func (x *GcsOutputConfig) GetGcsPath() string { + if x != nil { + return x.GcsPath + } + return "" +} + +// Message describing UniversalInputConfig. +type UniversalInputConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UniversalInputConfig) Reset() { + *x = UniversalInputConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UniversalInputConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UniversalInputConfig) ProtoMessage() {} + +func (x *UniversalInputConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[66] + 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 UniversalInputConfig.ProtoReflect.Descriptor instead. +func (*UniversalInputConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{66} +} + +// Specification of a single machine. +type MachineSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. The type of the machine. + // + // See the [list of machine types supported for + // prediction](https://cloud.google.com/vertex-ai/docs/predictions/configure-compute#machine-types) + // + // See the [list of machine types supported for custom + // training](https://cloud.google.com/vertex-ai/docs/training/configure-compute#machine-types). + // + // For [DeployedModel][] this field is optional, and the default + // value is `n1-standard-2`. For [BatchPredictionJob][] or as part of + // [WorkerPoolSpec][] this field is required. + MachineType string `protobuf:"bytes,1,opt,name=machine_type,json=machineType,proto3" json:"machine_type,omitempty"` + // Immutable. The type of accelerator(s) that may be attached to the machine + // as per + // [accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count]. + AcceleratorType AcceleratorType `protobuf:"varint,2,opt,name=accelerator_type,json=acceleratorType,proto3,enum=google.cloud.visionai.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"` +} + +func (x *MachineSpec) Reset() { + *x = MachineSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MachineSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MachineSpec) ProtoMessage() {} + +func (x *MachineSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[67] + 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 MachineSpec.ProtoReflect.Descriptor instead. +func (*MachineSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{67} +} + +func (x *MachineSpec) GetMachineType() string { + if x != nil { + return x.MachineType + } + return "" +} + +func (x *MachineSpec) GetAcceleratorType() AcceleratorType { + if x != nil { + return x.AcceleratorType + } + return AcceleratorType_ACCELERATOR_TYPE_UNSPECIFIED +} + +func (x *MachineSpec) GetAcceleratorCount() int32 { + if x != nil { + return x.AcceleratorCount + } + return 0 +} + +// The metric specification that defines the target resource utilization +// (CPU utilization, accelerator's duty cycle, and so on) for calculating the +// desired replica count. +type AutoscalingMetricSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource metric name. + // Supported metrics: + // + // * For Online Prediction: + // * `aiplatform.googleapis.com/prediction/online/accelerator/duty_cycle` + // * `aiplatform.googleapis.com/prediction/online/cpu/utilization` + MetricName string `protobuf:"bytes,1,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"` + // The target resource utilization in percentage (1% - 100%) for the given + // metric; once the real usage deviates from the target by a certain + // percentage, the machine replicas change. The default value is 60 + // (representing 60%) if not provided. + Target int32 `protobuf:"varint,2,opt,name=target,proto3" json:"target,omitempty"` +} + +func (x *AutoscalingMetricSpec) Reset() { + *x = AutoscalingMetricSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AutoscalingMetricSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AutoscalingMetricSpec) ProtoMessage() {} + +func (x *AutoscalingMetricSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[68] + 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 AutoscalingMetricSpec.ProtoReflect.Descriptor instead. +func (*AutoscalingMetricSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{68} +} + +func (x *AutoscalingMetricSpec) GetMetricName() string { + if x != nil { + return x.MetricName + } + return "" +} + +func (x *AutoscalingMetricSpec) GetTarget() int32 { + if x != nil { + return x.Target + } + return 0 +} + +// A description of resources that are dedicated to a DeployedModel, and +// that need a higher degree of manual configuration. +type DedicatedResources struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Immutable. The specification of a single machine used by the + // prediction. + MachineSpec *MachineSpec `protobuf:"bytes,1,opt,name=machine_spec,json=machineSpec,proto3" json:"machine_spec,omitempty"` + // Required. Immutable. The minimum number of machine replicas this + // DeployedModel will be always deployed on. This value must be greater than + // or equal to 1. + // + // If traffic against the DeployedModel increases, it may dynamically be + // deployed onto more replicas, and as traffic decreases, some of these extra + // replicas may be freed. + MinReplicaCount int32 `protobuf:"varint,2,opt,name=min_replica_count,json=minReplicaCount,proto3" json:"min_replica_count,omitempty"` + // Immutable. The maximum number of replicas this DeployedModel may be + // deployed on when the traffic against it increases. If the requested value + // is too large, the deployment will error, but if deployment succeeds then + // the ability to scale the model to that many replicas is guaranteed (barring + // service outages). If traffic against the DeployedModel increases beyond + // what its replicas at maximum may handle, a portion of the traffic will be + // dropped. If this value is not provided, will use + // [min_replica_count][google.cloud.visionai.v1.DedicatedResources.min_replica_count] + // as the default value. + // + // The value of this field impacts the charge against Vertex CPU and GPU + // quotas. Specifically, you will be charged for max_replica_count * + // number of cores in the selected machine type) and (max_replica_count * + // number of GPUs per replica in the selected machine type). + MaxReplicaCount int32 `protobuf:"varint,3,opt,name=max_replica_count,json=maxReplicaCount,proto3" json:"max_replica_count,omitempty"` + // Immutable. The metric specifications that overrides a resource + // utilization metric (CPU utilization, accelerator's duty cycle, and so on) + // target value (default to 60 if not set). At most one entry is allowed per + // metric. + // + // If + // [machine_spec.accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count] + // is above 0, the autoscaling will be based on both CPU utilization and + // accelerator's duty cycle metrics and scale up when either metrics exceeds + // its target value while scale down if both metrics are under their target + // value. The default target value is 60 for both metrics. + // + // If + // [machine_spec.accelerator_count][google.cloud.visionai.v1.MachineSpec.accelerator_count] + // is 0, the autoscaling will be based on CPU utilization metric only with + // default target value 60 if not explicitly set. + // + // For example, in the case of Online Prediction, if you want to override + // target CPU utilization to 80, you should set + // [autoscaling_metric_specs.metric_name][google.cloud.visionai.v1.AutoscalingMetricSpec.metric_name] + // to `aiplatform.googleapis.com/prediction/online/cpu/utilization` and + // [autoscaling_metric_specs.target][google.cloud.visionai.v1.AutoscalingMetricSpec.target] + // to `80`. + AutoscalingMetricSpecs []*AutoscalingMetricSpec `protobuf:"bytes,4,rep,name=autoscaling_metric_specs,json=autoscalingMetricSpecs,proto3" json:"autoscaling_metric_specs,omitempty"` +} + +func (x *DedicatedResources) Reset() { + *x = DedicatedResources{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DedicatedResources) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DedicatedResources) ProtoMessage() {} + +func (x *DedicatedResources) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[69] + 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 DedicatedResources.ProtoReflect.Descriptor instead. +func (*DedicatedResources) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{69} +} + +func (x *DedicatedResources) GetMachineSpec() *MachineSpec { + if x != nil { + return x.MachineSpec + } + return nil +} + +func (x *DedicatedResources) GetMinReplicaCount() int32 { + if x != nil { + return x.MinReplicaCount + } + return 0 +} + +func (x *DedicatedResources) GetMaxReplicaCount() int32 { + if x != nil { + return x.MaxReplicaCount + } + return 0 +} + +func (x *DedicatedResources) GetAutoscalingMetricSpecs() []*AutoscalingMetricSpec { + if x != nil { + return x.AutoscalingMetricSpecs + } + return nil +} + +// Message describing ProductRecognizerConfig. +type ProductRecognizerConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of retail endpoint to use. + RetailEndpoint string `protobuf:"bytes,1,opt,name=retail_endpoint,json=retailEndpoint,proto3" json:"retail_endpoint,omitempty"` + // Confidence threshold to filter detection results. If not set, a system + // default value will be used. + RecognitionConfidenceThreshold float32 `protobuf:"fixed32,2,opt,name=recognition_confidence_threshold,json=recognitionConfidenceThreshold,proto3" json:"recognition_confidence_threshold,omitempty"` +} + +func (x *ProductRecognizerConfig) Reset() { + *x = ProductRecognizerConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProductRecognizerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProductRecognizerConfig) ProtoMessage() {} + +func (x *ProductRecognizerConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[70] + 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 ProductRecognizerConfig.ProtoReflect.Descriptor instead. +func (*ProductRecognizerConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{70} +} + +func (x *ProductRecognizerConfig) GetRetailEndpoint() string { + if x != nil { + return x.RetailEndpoint + } + return "" +} + +func (x *ProductRecognizerConfig) GetRecognitionConfidenceThreshold() float32 { + if x != nil { + return x.RecognitionConfidenceThreshold + } + return 0 +} + +// Message describing TagRecognizerConfig. +type TagRecognizerConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Confidence threshold to filter detection results. If not set, a system + // default value will be used. + EntityDetectionConfidenceThreshold float32 `protobuf:"fixed32,1,opt,name=entity_detection_confidence_threshold,json=entityDetectionConfidenceThreshold,proto3" json:"entity_detection_confidence_threshold,omitempty"` + // Configuration to customize how tags are parsed. + TagParsingConfig *TagParsingConfig `protobuf:"bytes,2,opt,name=tag_parsing_config,json=tagParsingConfig,proto3" json:"tag_parsing_config,omitempty"` +} + +func (x *TagRecognizerConfig) Reset() { + *x = TagRecognizerConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TagRecognizerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagRecognizerConfig) ProtoMessage() {} + +func (x *TagRecognizerConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[71] + 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 TagRecognizerConfig.ProtoReflect.Descriptor instead. +func (*TagRecognizerConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{71} +} + +func (x *TagRecognizerConfig) GetEntityDetectionConfidenceThreshold() float32 { + if x != nil { + return x.EntityDetectionConfidenceThreshold + } + return 0 +} + +func (x *TagRecognizerConfig) GetTagParsingConfig() *TagParsingConfig { + if x != nil { + return x.TagParsingConfig + } + return nil +} + +// Configuration for tag parsing. +type TagParsingConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Each tag entity class may have an optional EntityParsingConfig which is + // used to help parse the entities of the class. + EntityParsingConfigs []*TagParsingConfig_EntityParsingConfig `protobuf:"bytes,1,rep,name=entity_parsing_configs,json=entityParsingConfigs,proto3" json:"entity_parsing_configs,omitempty"` +} + +func (x *TagParsingConfig) Reset() { + *x = TagParsingConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TagParsingConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagParsingConfig) ProtoMessage() {} + +func (x *TagParsingConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[72] + 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 TagParsingConfig.ProtoReflect.Descriptor instead. +func (*TagParsingConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{72} +} + +func (x *TagParsingConfig) GetEntityParsingConfigs() []*TagParsingConfig_EntityParsingConfig { + if x != nil { + return x.EntityParsingConfigs + } + return nil +} + +// Message about target streamInput to remove. +type RemoveApplicationStreamInputRequest_TargetStreamInput struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` +} + +func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) Reset() { + *x = RemoveApplicationStreamInputRequest_TargetStreamInput{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveApplicationStreamInputRequest_TargetStreamInput) ProtoMessage() {} + +func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[73] + 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 RemoveApplicationStreamInputRequest_TargetStreamInput.ProtoReflect.Descriptor instead. +func (*RemoveApplicationStreamInputRequest_TargetStreamInput) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{21, 0} +} + +func (x *RemoveApplicationStreamInputRequest_TargetStreamInput) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +type UpdateApplicationInstancesRequest_UpdateApplicationInstance struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Optional. Field mask is used to specify the fields to be overwritten in + // the Draft resource by the update. The fields specified in the update_mask + // are relative to the resource, not the full request. A field will be + // overwritten if it is in the mask. If the user does not provide a mask + // then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Instance *Instance `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + // Required. The id of the instance. + InstanceId string `protobuf:"bytes,3,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"` +} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) Reset() { + *x = UpdateApplicationInstancesRequest_UpdateApplicationInstance{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateApplicationInstancesRequest_UpdateApplicationInstance) ProtoMessage() {} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[74] + 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 UpdateApplicationInstancesRequest_UpdateApplicationInstance.ProtoReflect.Descriptor instead. +func (*UpdateApplicationInstancesRequest_UpdateApplicationInstance) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{30, 0} +} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) GetInstance() *Instance { + if x != nil { + return x.Instance + } + return nil +} + +func (x *UpdateApplicationInstancesRequest_UpdateApplicationInstance) GetInstanceId() string { + if x != nil { + return x.InstanceId + } + return "" +} + +// Message storing the runtime information of the application. +type Application_ApplicationRuntimeInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Timestamp when the engine be deployed + DeployTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=deploy_time,json=deployTime,proto3" json:"deploy_time,omitempty"` + // Globally created resources like warehouse dataschemas. + GlobalOutputResources []*Application_ApplicationRuntimeInfo_GlobalOutputResource `protobuf:"bytes,3,rep,name=global_output_resources,json=globalOutputResources,proto3" json:"global_output_resources,omitempty"` + // Monitoring-related configuration for this application. + MonitoringConfig *Application_ApplicationRuntimeInfo_MonitoringConfig `protobuf:"bytes,4,opt,name=monitoring_config,json=monitoringConfig,proto3" json:"monitoring_config,omitempty"` +} + +func (x *Application_ApplicationRuntimeInfo) Reset() { + *x = Application_ApplicationRuntimeInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Application_ApplicationRuntimeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application_ApplicationRuntimeInfo) ProtoMessage() {} + +func (x *Application_ApplicationRuntimeInfo) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[75] + 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 Application_ApplicationRuntimeInfo.ProtoReflect.Descriptor instead. +func (*Application_ApplicationRuntimeInfo) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 0} +} + +func (x *Application_ApplicationRuntimeInfo) GetDeployTime() *timestamppb.Timestamp { + if x != nil { + return x.DeployTime + } + return nil +} + +func (x *Application_ApplicationRuntimeInfo) GetGlobalOutputResources() []*Application_ApplicationRuntimeInfo_GlobalOutputResource { + if x != nil { + return x.GlobalOutputResources + } + return nil +} + +func (x *Application_ApplicationRuntimeInfo) GetMonitoringConfig() *Application_ApplicationRuntimeInfo_MonitoringConfig { + if x != nil { + return x.MonitoringConfig + } + return nil +} + +// Message about output resources from application. +type Application_ApplicationRuntimeInfo_GlobalOutputResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The full resource name of the outputted resources. + OutputResource string `protobuf:"bytes,1,opt,name=output_resource,json=outputResource,proto3" json:"output_resource,omitempty"` + // The name of graph node who produces the output resource name. + // For example: + // output_resource: + // /projects/123/locations/us-central1/corpora/my-corpus/dataSchemas/my-schema + // producer_node: occupancy-count + ProducerNode string `protobuf:"bytes,2,opt,name=producer_node,json=producerNode,proto3" json:"producer_node,omitempty"` + // The key of the output resource, it has to be unique within the same + // producer node. One producer node can output several output resources, + // the key can be used to match corresponding output resources. + Key string `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` +} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) Reset() { + *x = Application_ApplicationRuntimeInfo_GlobalOutputResource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application_ApplicationRuntimeInfo_GlobalOutputResource) ProtoMessage() {} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[77] + 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 Application_ApplicationRuntimeInfo_GlobalOutputResource.ProtoReflect.Descriptor instead. +func (*Application_ApplicationRuntimeInfo_GlobalOutputResource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 0, 0} +} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetOutputResource() string { + if x != nil { + return x.OutputResource + } + return "" +} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetProducerNode() string { + if x != nil { + return x.ProducerNode + } + return "" +} + +func (x *Application_ApplicationRuntimeInfo_GlobalOutputResource) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +// Monitoring-related configuration for an application. +type Application_ApplicationRuntimeInfo_MonitoringConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Whether this application has monitoring enabled. + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` +} + +func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) Reset() { + *x = Application_ApplicationRuntimeInfo_MonitoringConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Application_ApplicationRuntimeInfo_MonitoringConfig) ProtoMessage() {} + +func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[78] + 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 Application_ApplicationRuntimeInfo_MonitoringConfig.ProtoReflect.Descriptor instead. +func (*Application_ApplicationRuntimeInfo_MonitoringConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{40, 0, 1} +} + +func (x *Application_ApplicationRuntimeInfo_MonitoringConfig) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +// message storing the config for event delivery +type ApplicationConfigs_EventDeliveryConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The delivery channel for the event notification, only pub/sub topic is + // supported now. + // Example channel: + // [//pubsub.googleapis.com/projects/visionai-testing-stable/topics/test-topic] + Channel string `protobuf:"bytes,1,opt,name=channel,proto3" json:"channel,omitempty"` + // The expected delivery interval for the same event. The same event won't + // be notified multiple times during this internal event that it is + // happening multiple times during the period of time.The same event is + // identified by . + MinimalDeliveryInterval *durationpb.Duration `protobuf:"bytes,2,opt,name=minimal_delivery_interval,json=minimalDeliveryInterval,proto3" json:"minimal_delivery_interval,omitempty"` +} + +func (x *ApplicationConfigs_EventDeliveryConfig) Reset() { + *x = ApplicationConfigs_EventDeliveryConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ApplicationConfigs_EventDeliveryConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ApplicationConfigs_EventDeliveryConfig) ProtoMessage() {} + +func (x *ApplicationConfigs_EventDeliveryConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[79] + 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 ApplicationConfigs_EventDeliveryConfig.ProtoReflect.Descriptor instead. +func (*ApplicationConfigs_EventDeliveryConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{41, 0} +} + +func (x *ApplicationConfigs_EventDeliveryConfig) GetChannel() string { + if x != nil { + return x.Channel + } + return "" +} + +func (x *ApplicationConfigs_EventDeliveryConfig) GetMinimalDeliveryInterval() *durationpb.Duration { + if x != nil { + return x.MinimalDeliveryInterval + } + return nil +} + +// Message describing one edge pointing into a node. +type Node_InputEdge struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the parent node. + ParentNode string `protobuf:"bytes,1,opt,name=parent_node,json=parentNode,proto3" json:"parent_node,omitempty"` + // The connected output artifact of the parent node. + // It can be omitted if target processor only has 1 output artifact. + ParentOutputChannel string `protobuf:"bytes,2,opt,name=parent_output_channel,json=parentOutputChannel,proto3" json:"parent_output_channel,omitempty"` + // The connected input channel of the current node's processor. + // It can be omitted if target processor only has 1 input channel. + ConnectedInputChannel string `protobuf:"bytes,3,opt,name=connected_input_channel,json=connectedInputChannel,proto3" json:"connected_input_channel,omitempty"` +} + +func (x *Node_InputEdge) Reset() { + *x = Node_InputEdge{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Node_InputEdge) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Node_InputEdge) ProtoMessage() {} + +func (x *Node_InputEdge) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[80] + 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 Node_InputEdge.ProtoReflect.Descriptor instead. +func (*Node_InputEdge) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{42, 0} +} + +func (x *Node_InputEdge) GetParentNode() string { + if x != nil { + return x.ParentNode + } + return "" +} + +func (x *Node_InputEdge) GetParentOutputChannel() string { + if x != nil { + return x.ParentOutputChannel + } + return "" +} + +func (x *Node_InputEdge) GetConnectedInputChannel() string { + if x != nil { + return x.ConnectedInputChannel + } + return "" +} + +// Message of input resource used in one application instance. +type Instance_InputResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Specify the input to the application instance. + // + // Types that are assignable to InputResourceInformation: + // + // *Instance_InputResource_InputResource + // *Instance_InputResource_AnnotatedStream + InputResourceInformation isInstance_InputResource_InputResourceInformation `protobuf_oneof:"input_resource_information"` + // Data type for the current input resource. + DataType DataType `protobuf:"varint,6,opt,name=data_type,json=dataType,proto3,enum=google.cloud.visionai.v1.DataType" json:"data_type,omitempty"` + // The name of graph node who receives the input resource. + // For example: + // input_resource: + // visionai.googleapis.com/v1/projects/123/locations/us-central1/clusters/456/streams/input-stream-a + // consumer_node: stream-input + ConsumerNode string `protobuf:"bytes,2,opt,name=consumer_node,json=consumerNode,proto3" json:"consumer_node,omitempty"` + // The specific input resource binding which will consume the current Input + // Resource, can be ignored is there is only 1 input binding. + InputResourceBinding string `protobuf:"bytes,3,opt,name=input_resource_binding,json=inputResourceBinding,proto3" json:"input_resource_binding,omitempty"` + // Contains resource annotations. + Annotations *ResourceAnnotations `protobuf:"bytes,5,opt,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *Instance_InputResource) Reset() { + *x = Instance_InputResource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Instance_InputResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Instance_InputResource) ProtoMessage() {} + +func (x *Instance_InputResource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[82] + 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 Instance_InputResource.ProtoReflect.Descriptor instead. +func (*Instance_InputResource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{44, 0} +} + +func (m *Instance_InputResource) GetInputResourceInformation() isInstance_InputResource_InputResourceInformation { + if m != nil { + return m.InputResourceInformation + } + return nil +} + +func (x *Instance_InputResource) GetInputResource() string { + if x, ok := x.GetInputResourceInformation().(*Instance_InputResource_InputResource); ok { + return x.InputResource + } + return "" +} + +// Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. +func (x *Instance_InputResource) GetAnnotatedStream() *StreamWithAnnotation { + if x, ok := x.GetInputResourceInformation().(*Instance_InputResource_AnnotatedStream); ok { + return x.AnnotatedStream + } + return nil +} + +func (x *Instance_InputResource) GetDataType() DataType { + if x != nil { + return x.DataType + } + return DataType_DATA_TYPE_UNSPECIFIED +} + +func (x *Instance_InputResource) GetConsumerNode() string { + if x != nil { + return x.ConsumerNode + } + return "" +} + +func (x *Instance_InputResource) GetInputResourceBinding() string { + if x != nil { + return x.InputResourceBinding + } + return "" +} + +func (x *Instance_InputResource) GetAnnotations() *ResourceAnnotations { + if x != nil { + return x.Annotations + } + return nil +} + +type isInstance_InputResource_InputResourceInformation interface { + isInstance_InputResource_InputResourceInformation() +} + +type Instance_InputResource_InputResource struct { + // The direct input resource name. + // If the instance type is STREAMING_PREDICTION, the input resource is in + // format of + // "projects/123/locations/us-central1/clusters/456/streams/stream-a". + // If the instance type is BATCH_PREDICTION from Cloud Storage input + // container, the input resource is in format of "gs://bucket-a". + InputResource string `protobuf:"bytes,1,opt,name=input_resource,json=inputResource,proto3,oneof"` +} + +type Instance_InputResource_AnnotatedStream struct { + // If the input resource is VisionAI Stream, the associated annotations + // can be specified using annotated_stream instead. + // + // Deprecated: Marked as deprecated in google/cloud/visionai/v1/platform.proto. + AnnotatedStream *StreamWithAnnotation `protobuf:"bytes,4,opt,name=annotated_stream,json=annotatedStream,proto3,oneof"` +} + +func (*Instance_InputResource_InputResource) isInstance_InputResource_InputResourceInformation() {} + +func (*Instance_InputResource_AnnotatedStream) isInstance_InputResource_InputResourceInformation() {} + +// Message of output resource used in one application instance. +type Instance_OutputResource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The output resource name for the current application instance. + OutputResource string `protobuf:"bytes,1,opt,name=output_resource,json=outputResource,proto3" json:"output_resource,omitempty"` + // The name of graph node who produces the output resource name. + // For example: + // output_resource: + // /projects/123/locations/us-central1/clusters/456/streams/output-application-789-stream-a-occupancy-counting + // producer_node: occupancy-counting + ProducerNode string `protobuf:"bytes,2,opt,name=producer_node,json=producerNode,proto3" json:"producer_node,omitempty"` + // The specific output resource binding which produces the current + // OutputResource. + OutputResourceBinding string `protobuf:"bytes,4,opt,name=output_resource_binding,json=outputResourceBinding,proto3" json:"output_resource_binding,omitempty"` + // Output only. Whether the output resource is temporary which means the + // resource is generated during the deployment of the application. Temporary + // resource will be deleted during the undeployment of the application. + IsTemporary bool `protobuf:"varint,3,opt,name=is_temporary,json=isTemporary,proto3" json:"is_temporary,omitempty"` + // Output only. Whether the output resource is created automatically by the + // Vision AI App Platform. + Autogen bool `protobuf:"varint,5,opt,name=autogen,proto3" json:"autogen,omitempty"` +} + +func (x *Instance_OutputResource) Reset() { + *x = Instance_OutputResource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Instance_OutputResource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Instance_OutputResource) ProtoMessage() {} + +func (x *Instance_OutputResource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[83] + 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 Instance_OutputResource.ProtoReflect.Descriptor instead. +func (*Instance_OutputResource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{44, 1} +} + +func (x *Instance_OutputResource) GetOutputResource() string { + if x != nil { + return x.OutputResource + } + return "" +} + +func (x *Instance_OutputResource) GetProducerNode() string { + if x != nil { + return x.ProducerNode + } + return "" +} + +func (x *Instance_OutputResource) GetOutputResourceBinding() string { + if x != nil { + return x.OutputResourceBinding + } + return "" +} + +func (x *Instance_OutputResource) GetIsTemporary() bool { + if x != nil { + return x.IsTemporary + } + return false +} + +func (x *Instance_OutputResource) GetAutogen() bool { + if x != nil { + return x.Autogen + } + return false +} + +// Message for input channel specification. +type ProcessorIOSpec_GraphInputChannelSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the current input channel. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The data types of the current input channel. + // When this field has more than 1 value, it means this input channel can be + // connected to either of these different data types. + DataType DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=google.cloud.visionai.v1.DataType" json:"data_type,omitempty"` + // If specified, only those detailed data types can be connected to the + // processor. For example, jpeg stream for MEDIA, or PredictionResult proto + // for PROTO type. If unspecified, then any proto is accepted. + AcceptedDataTypeUris []string `protobuf:"bytes,5,rep,name=accepted_data_type_uris,json=acceptedDataTypeUris,proto3" json:"accepted_data_type_uris,omitempty"` + // Whether the current input channel is required by the processor. + // For example, for a processor with required video input and optional audio + // input, if video input is missing, the application will be rejected while + // the audio input can be missing as long as the video input exists. + Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"` + // How many input edges can be connected to this input channel. 0 means + // unlimited. + MaxConnectionAllowed int64 `protobuf:"varint,4,opt,name=max_connection_allowed,json=maxConnectionAllowed,proto3" json:"max_connection_allowed,omitempty"` +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) Reset() { + *x = ProcessorIOSpec_GraphInputChannelSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorIOSpec_GraphInputChannelSpec) ProtoMessage() {} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[86] + 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 ProcessorIOSpec_GraphInputChannelSpec.ProtoReflect.Descriptor instead. +func (*ProcessorIOSpec_GraphInputChannelSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{47, 0} +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) GetDataType() DataType { + if x != nil { + return x.DataType + } + return DataType_DATA_TYPE_UNSPECIFIED +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) GetAcceptedDataTypeUris() []string { + if x != nil { + return x.AcceptedDataTypeUris + } + return nil +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) GetRequired() bool { + if x != nil { + return x.Required + } + return false +} + +func (x *ProcessorIOSpec_GraphInputChannelSpec) GetMaxConnectionAllowed() int64 { + if x != nil { + return x.MaxConnectionAllowed + } + return 0 +} + +// Message for output channel specification. +type ProcessorIOSpec_GraphOutputChannelSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the current output channel. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The data type of the current output channel. + DataType DataType `protobuf:"varint,2,opt,name=data_type,json=dataType,proto3,enum=google.cloud.visionai.v1.DataType" json:"data_type,omitempty"` + DataTypeUri string `protobuf:"bytes,3,opt,name=data_type_uri,json=dataTypeUri,proto3" json:"data_type_uri,omitempty"` +} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) Reset() { + *x = ProcessorIOSpec_GraphOutputChannelSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorIOSpec_GraphOutputChannelSpec) ProtoMessage() {} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[87] + 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 ProcessorIOSpec_GraphOutputChannelSpec.ProtoReflect.Descriptor instead. +func (*ProcessorIOSpec_GraphOutputChannelSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{47, 1} +} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) GetDataType() DataType { + if x != nil { + return x.DataType + } + return DataType_DATA_TYPE_UNSPECIFIED +} + +func (x *ProcessorIOSpec_GraphOutputChannelSpec) GetDataTypeUri() string { + if x != nil { + return x.DataTypeUri + } + return "" +} + +// Message for instance resource channel specification. +// External resources are virtual nodes which are not expressed in the +// application graph. Each processor expresses its out-graph spec, so customer +// is able to override the external source or destinations to the +type ProcessorIOSpec_InstanceResourceInputBindingSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to ResourceType: + // + // *ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri + // *ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri + ResourceType isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType `protobuf_oneof:"resource_type"` + // Name of the input binding, unique within the processor. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) Reset() { + *x = ProcessorIOSpec_InstanceResourceInputBindingSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorIOSpec_InstanceResourceInputBindingSpec) ProtoMessage() {} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[88] + 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 ProcessorIOSpec_InstanceResourceInputBindingSpec.ProtoReflect.Descriptor instead. +func (*ProcessorIOSpec_InstanceResourceInputBindingSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{47, 2} +} + +func (m *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetResourceType() isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType { + if m != nil { + return m.ResourceType + } + return nil +} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetConfigTypeUri() string { + if x, ok := x.GetResourceType().(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri); ok { + return x.ConfigTypeUri + } + return "" +} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetResourceTypeUri() string { + if x, ok := x.GetResourceType().(*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri); ok { + return x.ResourceTypeUri + } + return "" +} + +func (x *ProcessorIOSpec_InstanceResourceInputBindingSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType interface { + isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType() +} + +type ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri struct { + // The configuration proto that includes the Googleapis resources. I.e. + // type.googleapis.com/google.cloud.vision.v1.StreamWithAnnotation + ConfigTypeUri string `protobuf:"bytes,2,opt,name=config_type_uri,json=configTypeUri,proto3,oneof"` +} + +type ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri struct { + // The direct type url of Googleapis resource. i.e. + // type.googleapis.com/google.cloud.vision.v1.Asset + ResourceTypeUri string `protobuf:"bytes,3,opt,name=resource_type_uri,json=resourceTypeUri,proto3,oneof"` +} + +func (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri) isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType() { +} + +func (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri) isProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceType() { +} + +type ProcessorIOSpec_InstanceResourceOutputBindingSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the output binding, unique within the processor. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The resource type uri of the acceptable output resource. + ResourceTypeUri string `protobuf:"bytes,2,opt,name=resource_type_uri,json=resourceTypeUri,proto3" json:"resource_type_uri,omitempty"` + // Whether the output resource needs to be explicitly set in the instance. + // If it is false, the processor will automatically generate it if required. + Explicit bool `protobuf:"varint,3,opt,name=explicit,proto3" json:"explicit,omitempty"` +} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) Reset() { + *x = ProcessorIOSpec_InstanceResourceOutputBindingSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProcessorIOSpec_InstanceResourceOutputBindingSpec) ProtoMessage() {} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[89] + 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 ProcessorIOSpec_InstanceResourceOutputBindingSpec.ProtoReflect.Descriptor instead. +func (*ProcessorIOSpec_InstanceResourceOutputBindingSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{47, 3} +} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) GetResourceTypeUri() string { + if x != nil { + return x.ResourceTypeUri + } + return "" +} + +func (x *ProcessorIOSpec_InstanceResourceOutputBindingSpec) GetExplicit() bool { + if x != nil { + return x.Explicit + } + return false +} + +// Message describes product recognizer artifact. +type CustomProcessorSourceInfo_ProductRecognizerArtifact struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Resource name of RetailProductRecognitionIndex. + // Format is + // 'projects/*/locations/*/retailCatalogs/*/retailProductRecognitionIndexes/*' + RetailProductRecognitionIndex string `protobuf:"bytes,1,opt,name=retail_product_recognition_index,json=retailProductRecognitionIndex,proto3" json:"retail_product_recognition_index,omitempty"` + // Optional. The resource name of embedding model hosted in Vertex AI + // Platform. + VertexModel string `protobuf:"bytes,2,opt,name=vertex_model,json=vertexModel,proto3" json:"vertex_model,omitempty"` +} + +func (x *CustomProcessorSourceInfo_ProductRecognizerArtifact) Reset() { + *x = CustomProcessorSourceInfo_ProductRecognizerArtifact{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomProcessorSourceInfo_ProductRecognizerArtifact) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomProcessorSourceInfo_ProductRecognizerArtifact) ProtoMessage() {} + +func (x *CustomProcessorSourceInfo_ProductRecognizerArtifact) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[90] + 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 CustomProcessorSourceInfo_ProductRecognizerArtifact.ProtoReflect.Descriptor instead. +func (*CustomProcessorSourceInfo_ProductRecognizerArtifact) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{48, 0} +} + +func (x *CustomProcessorSourceInfo_ProductRecognizerArtifact) GetRetailProductRecognitionIndex() string { + if x != nil { + return x.RetailProductRecognitionIndex + } + return "" +} + +func (x *CustomProcessorSourceInfo_ProductRecognizerArtifact) GetVertexModel() string { + if x != nil { + return x.VertexModel + } + return "" +} + +// The schema is defined as an OpenAPI 3.0.2 [Schema +// Object](https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.2.md#schemaObject). +type CustomProcessorSourceInfo_ModelSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Cloud Storage location to a YAML file that defines the format of a single + // instance used in prediction and explanation requests. + InstancesSchema *GcsSource `protobuf:"bytes,1,opt,name=instances_schema,json=instancesSchema,proto3" json:"instances_schema,omitempty"` + // Cloud Storage location to a YAML file that defines the prediction and + // explanation parameters. + ParametersSchema *GcsSource `protobuf:"bytes,2,opt,name=parameters_schema,json=parametersSchema,proto3" json:"parameters_schema,omitempty"` + // Cloud Storage location to a YAML file that defines the format of a single + // prediction or explanation. + PredictionsSchema *GcsSource `protobuf:"bytes,3,opt,name=predictions_schema,json=predictionsSchema,proto3" json:"predictions_schema,omitempty"` +} + +func (x *CustomProcessorSourceInfo_ModelSchema) Reset() { + *x = CustomProcessorSourceInfo_ModelSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CustomProcessorSourceInfo_ModelSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CustomProcessorSourceInfo_ModelSchema) ProtoMessage() {} + +func (x *CustomProcessorSourceInfo_ModelSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[91] + 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 CustomProcessorSourceInfo_ModelSchema.ProtoReflect.Descriptor instead. +func (*CustomProcessorSourceInfo_ModelSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{48, 1} +} + +func (x *CustomProcessorSourceInfo_ModelSchema) GetInstancesSchema() *GcsSource { + if x != nil { + return x.InstancesSchema + } + return nil +} + +func (x *CustomProcessorSourceInfo_ModelSchema) GetParametersSchema() *GcsSource { + if x != nil { + return x.ParametersSchema + } + return nil +} + +func (x *CustomProcessorSourceInfo_ModelSchema) GetPredictionsSchema() *GcsSource { + if x != nil { + return x.PredictionsSchema + } + return nil +} + +// Message describing annotations specific to application node. +type StreamWithAnnotation_NodeAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The node name of the application graph. + Node string `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"` + // The node specific stream annotations. + Annotations []*StreamAnnotation `protobuf:"bytes,2,rep,name=annotations,proto3" json:"annotations,omitempty"` +} + +func (x *StreamWithAnnotation_NodeAnnotation) Reset() { + *x = StreamWithAnnotation_NodeAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StreamWithAnnotation_NodeAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StreamWithAnnotation_NodeAnnotation) ProtoMessage() {} + +func (x *StreamWithAnnotation_NodeAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[93] + 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 StreamWithAnnotation_NodeAnnotation.ProtoReflect.Descriptor instead. +func (*StreamWithAnnotation_NodeAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{50, 0} +} + +func (x *StreamWithAnnotation_NodeAnnotation) GetNode() string { + if x != nil { + return x.Node + } + return "" +} + +func (x *StreamWithAnnotation_NodeAnnotation) GetAnnotations() []*StreamAnnotation { + if x != nil { + return x.Annotations + } + return nil +} + +// Configuration for parsing a tag entity class. +type TagParsingConfig_EntityParsingConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The tag entity class name. This should match the class name + // produced by the tag entity detection model. + EntityClass string `protobuf:"bytes,1,opt,name=entity_class,json=entityClass,proto3" json:"entity_class,omitempty"` + // Optional. An regular expression hint. + Regex string `protobuf:"bytes,2,opt,name=regex,proto3" json:"regex,omitempty"` + // Optional. Entity matching strategy. + EntityMatchingStrategy TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy `protobuf:"varint,3,opt,name=entity_matching_strategy,json=entityMatchingStrategy,proto3,enum=google.cloud.visionai.v1.TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy" json:"entity_matching_strategy,omitempty"` +} + +func (x *TagParsingConfig_EntityParsingConfig) Reset() { + *x = TagParsingConfig_EntityParsingConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TagParsingConfig_EntityParsingConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TagParsingConfig_EntityParsingConfig) ProtoMessage() {} + +func (x *TagParsingConfig_EntityParsingConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_platform_proto_msgTypes[95] + 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 TagParsingConfig_EntityParsingConfig.ProtoReflect.Descriptor instead. +func (*TagParsingConfig_EntityParsingConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_platform_proto_rawDescGZIP(), []int{72, 0} +} + +func (x *TagParsingConfig_EntityParsingConfig) GetEntityClass() string { + if x != nil { + return x.EntityClass + } + return "" +} + +func (x *TagParsingConfig_EntityParsingConfig) GetRegex() string { + if x != nil { + return x.Regex + } + return "" +} + +func (x *TagParsingConfig_EntityParsingConfig) GetEntityMatchingStrategy() TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy { + if x != nil { + return x.EntityMatchingStrategy + } + return TagParsingConfig_EntityParsingConfig_ENTITY_MATCHING_STRATEGY_UNSPECIFIED +} + +var File_google_cloud_visionai_v1_platform_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_platform_proto_rawDesc = []byte{ + 0x0a, 0x27, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6c, 0x61, 0x74, 0x66, + 0x6f, 0x72, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 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, 0x2a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, + 0x6d, 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, 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, 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, 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, 0x24, 0x0a, 0x22, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf1, + 0x01, 0x0a, 0x21, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x15, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x21, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 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, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x64, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x55, 0x6e, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, + 0x0a, 0x21, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x26, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x17, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, + 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, + 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, 0xaf, 0x01, 0x0a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0c, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x58, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xfd, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x12, 0x23, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xce, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x4c, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x9a, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x11, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, + 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x10, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x81, + 0x01, 0x0a, 0x1a, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0x7e, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x64, 0x0a, 0x16, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, + 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0xf5, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x17, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x9d, 0x02, 0x0a, 0x23, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x6c, 0x0a, 0x19, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x22, 0xe0, 0x02, 0x0a, 0x23, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x4f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x1a, 0x50, 0x0a, 0x11, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0xc7, 0x01, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x12, 0x20, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0xa3, 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, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x52, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x28, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x22, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 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, 0xc1, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, + 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x97, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, + 0x61, 0x66, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, + 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x06, 0x64, + 0x72, 0x61, 0x66, 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, 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, + 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x01, + 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x64, 0x72, 0x61, 0x66, + 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, + 0x61, 0x66, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, + 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x49, 0x64, 0x22, 0xdb, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x72, + 0x61, 0x66, 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, 0x01, + 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x3a, 0x0a, 0x05, + 0x64, 0x72, 0x61, 0x66, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x61, 0x66, 0x74, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x22, 0x85, 0x04, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2b, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x25, 0x0a, 0x23, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x15, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x55, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x14, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x5f, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x1a, 0xc8, + 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x43, + 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x22, 0x73, 0x0a, 0x12, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, + 0x72, 0x61, 0x66, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc9, + 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 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, + 0x12, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0xa7, 0x01, 0x0a, 0x16, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x62, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, + 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x12, 0x21, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x65, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0a, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x22, + 0x54, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, 0x0a, 0x21, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x12, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc6, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x46, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x22, 0x0a, 0x0a, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, + 0x22, 0x7b, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x29, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x23, + 0x0a, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xbd, 0x0c, + 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x49, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x13, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x12, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x64, 0x0a, 0x0c, 0x72, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x46, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x52, 0x0b, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x1a, 0x83, 0x04, + 0x0a, 0x16, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x17, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x51, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x15, 0x67, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x12, 0x7a, 0x0a, 0x11, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x6f, 0x6e, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x10, 0x6d, 0x6f, 0x6e, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x76, 0x0a, + 0x14, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x1a, 0x2c, 0x0a, 0x10, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, + 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 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, 0xa7, + 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, + 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, + 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x44, + 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, + 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, + 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x43, 0x52, 0x45, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x07, + 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x0c, + 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0a, 0x0a, 0x06, + 0x46, 0x49, 0x58, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x22, 0x42, 0x0a, 0x0b, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x50, 0x41, 0x59, 0x47, 0x10, 0x01, 0x12, + 0x0b, 0x0a, 0x07, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x4c, 0x59, 0x10, 0x02, 0x3a, 0x6f, 0xea, 0x41, + 0x6c, 0x0a, 0x23, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x42, 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, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x52, 0x01, 0x01, 0x22, 0xc9, 0x02, + 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, + 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x74, 0x0a, 0x15, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, + 0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x13, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x1a, 0x86, 0x01, 0x0a, 0x13, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, + 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x12, 0x55, 0x0a, 0x19, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x5f, 0x64, 0x65, + 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x02, 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, 0x17, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x61, 0x6c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, + 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xf4, 0x03, 0x0a, 0x04, 0x4e, 0x6f, + 0x64, 0x65, 0x12, 0x4f, 0x0a, 0x24, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x61, 0x6c, 0x6c, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x1f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x41, 0x6c, 0x6c, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x54, 0x6f, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 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, 0x21, 0x0a, 0x0c, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x4a, 0x0a, 0x0b, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x07, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x45, 0x64, 0x67, 0x65, 0x52, 0x07, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x98, 0x01, + 0x0a, 0x09, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x45, 0x64, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x15, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x12, 0x36, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0xcd, 0x04, 0x0a, 0x05, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, + 0x07, 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, 0x43, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, + 0x61, 0x66, 0x74, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x68, 0x0a, 0x19, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x52, 0x17, 0x64, 0x72, 0x61, 0x66, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x78, 0xea, 0x41, 0x75, 0x0a, 0x1d, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x72, 0x61, 0x66, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x64, + 0x72, 0x61, 0x66, 0x74, 0x73, 0x2f, 0x7b, 0x64, 0x72, 0x61, 0x66, 0x74, 0x7d, 0x52, 0x01, 0x01, + 0x22, 0xfc, 0x0d, 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, 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, 0x08, 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, 0x46, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x0d, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x59, 0x0a, 0x0f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x5c, 0x0a, + 0x10, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x3e, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0xa4, 0x03, 0x0a, 0x0d, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, + 0x0e, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x10, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x02, 0x18, 0x01, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x65, + 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, + 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, + 0x16, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x12, 0x4f, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0xdd, 0x01, 0x0a, 0x0e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, + 0x6f, 0x64, 0x65, 0x12, 0x36, 0x0a, 0x17, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x69, + 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x72, 0x79, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x67, 0x65, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x67, + 0x65, 0x6e, 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, 0x74, 0x0a, + 0x0c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, + 0x19, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4e, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x41, 0x54, 0x43, 0x48, 0x5f, + 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, + 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x49, 0x43, 0x54, 0x49, 0x4f, + 0x4e, 0x10, 0x03, 0x22, 0xb5, 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, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, + 0x0a, 0x08, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, + 0x55, 0x4e, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x49, 0x4e, 0x47, 0x10, 0x05, 0x12, 0x0b, 0x0a, + 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, + 0x52, 0x4f, 0x52, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x08, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, + 0x09, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x49, 0x58, 0x49, 0x4e, 0x47, 0x10, 0x0a, 0x12, 0x0c, 0x0a, + 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x0b, 0x3a, 0x81, 0x01, 0xea, 0x41, + 0x7e, 0x0a, 0x20, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x57, 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, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, + 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, 0x52, 0x01, 0x01, 0x22, + 0x80, 0x01, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x43, 0x0a, + 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0xb5, 0x0b, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x47, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, + 0x73, 0x12, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5d, 0x0a, 0x0e, 0x70, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x74, + 0x0a, 0x1c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x19, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4d, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x5f, 0x69, 0x6f, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, + 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x6f, 0x53, 0x70, 0x65, 0x63, 0x12, + 0x38, 0x0a, 0x15, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x75, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x03, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x75, 0x72, 0x6c, 0x12, 0x71, 0x0a, 0x1a, 0x73, 0x75, 0x70, + 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, + 0x41, 0x03, 0x52, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x18, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x70, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, + 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x50, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x12, 0x69, 0x0a, 0x18, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, + 0x74, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x16, 0x73, 0x75, 0x70, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x54, 0x79, 0x70, 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, 0x5a, 0x0a, 0x0d, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, + 0x1a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0e, 0x0a, + 0x0a, 0x50, 0x52, 0x45, 0x54, 0x52, 0x41, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, + 0x06, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, + 0x4e, 0x45, 0x43, 0x54, 0x4f, 0x52, 0x10, 0x03, 0x22, 0x65, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x52, + 0x4f, 0x43, 0x45, 0x53, 0x53, 0x4f, 0x52, 0x5f, 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, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, + 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, + 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x3a, + 0x69, 0xea, 0x41, 0x66, 0x0a, 0x21, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x3e, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x7d, 0x52, 0x01, 0x01, 0x22, 0xfc, 0x09, 0x0a, 0x0f, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x12, 0x7a, + 0x0a, 0x19, 0x67, 0x72, 0x61, 0x70, 0x68, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x72, 0x61, + 0x70, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, + 0x65, 0x63, 0x52, 0x16, 0x67, 0x72, 0x61, 0x70, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x7d, 0x0a, 0x1a, 0x67, 0x72, + 0x61, 0x70, 0x68, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x49, 0x4f, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, + 0x52, 0x17, 0x67, 0x72, 0x61, 0x70, 0x68, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x25, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, + 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x21, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x73, 0x12, 0x9f, 0x01, 0x0a, 0x26, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, + 0x65, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x4b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x49, 0x4f, + 0x53, 0x70, 0x65, 0x63, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x52, 0x22, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x69, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x73, 0x1a, 0xf5, 0x01, 0x0a, 0x15, 0x47, + 0x72, 0x61, 0x70, 0x68, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, 0x17, 0x61, 0x63, 0x63, + 0x65, 0x70, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x75, 0x72, 0x69, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x61, 0x63, 0x63, 0x65, + 0x70, 0x74, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, + 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x6d, 0x61, + 0x78, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x1a, 0x91, 0x01, 0x0a, 0x16, 0x47, 0x72, 0x61, 0x70, 0x68, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x64, 0x61, 0x74, 0x61, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x54, + 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x1a, 0x9f, 0x01, 0x0a, 0x20, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x28, 0x0a, 0x0f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x54, 0x79, + 0x70, 0x65, 0x55, 0x72, 0x69, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x7f, 0x0a, 0x21, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x65, 0x78, 0x70, 0x6c, 0x69, 0x63, 0x69, 0x74, 0x22, 0xe5, 0x08, 0x0a, 0x19, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x0b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x8f, 0x01, 0x0a, + 0x1b, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, + 0x7a, 0x65, 0x72, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, + 0x74, 0x48, 0x00, 0x52, 0x19, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, + 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x5f, + 0x0a, 0x0b, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x75, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x6e, + 0x66, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, + 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x62, 0x0a, 0x0c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0b, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x91, 0x01, 0x0a, 0x19, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, + 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x4c, 0x0a, 0x20, 0x72, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, + 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x1d, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x50, + 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x01, 0x52, 0x0b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0x83, + 0x02, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x4e, + 0x0a, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x50, + 0x0a, 0x11, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x5f, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x12, 0x52, 0x0a, 0x12, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x11, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x41, 0x0a, 0x13, 0x41, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 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, 0x67, 0x0a, 0x0a, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x17, 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, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, 0x41, 0x55, 0x54, + 0x4f, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x54, 0x45, 0x58, 0x5f, + 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x44, + 0x55, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x52, 0x10, 0x03, + 0x42, 0x0f, 0x0a, 0x0d, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x22, 0xee, 0x0e, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6d, 0x0a, 0x19, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x16, 0x76, 0x69, + 0x64, 0x65, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7d, 0x0a, 0x1f, 0x61, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x49, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1b, 0x61, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x16, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x5f, 0x77, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5a, 0x0a, 0x12, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x75, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x10, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x16, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x61, 0x6e, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, 0x6f, 0x63, 0x63, 0x75, 0x70, + 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x7f, 0x0a, 0x1f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x48, 0x00, 0x52, 0x1c, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, + 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x73, 0x0a, 0x1b, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x6d, + 0x6c, 0x5f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x4c, 0x56, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x18, 0x76, 0x65, 0x72, + 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x70, 0x0a, 0x1a, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d, + 0x4c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x17, + 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x6c, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x60, 0x0a, 0x14, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x12, 0x76, 0x65, 0x72, 0x74, 0x65, 0x78, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7f, 0x0a, 0x1f, 0x67, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x6c, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x12, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x1c, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x54, 0x0a, 0x10, 0x62, 0x69, + 0x67, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, + 0x52, 0x0e, 0x62, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x57, 0x0a, 0x11, 0x67, 0x63, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0f, 0x67, 0x63, 0x73, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6f, 0x0a, 0x19, 0x70, 0x72, 0x6f, + 0x64, 0x75, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, + 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, + 0x00, 0x52, 0x17, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, + 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0xaa, 0x01, 0x0a, 0x2e, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x5f, 0x65, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x2a, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, + 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x15, 0x74, 0x61, 0x67, 0x5f, 0x72, + 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x13, 0x74, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, + 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x66, 0x0a, 0x16, + 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x14, + 0x75, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x12, 0x48, 0x0a, 0x13, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, + 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x1a, 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, 0x52, 0x12, 0x65, 0x78, 0x70, 0x65, + 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x12, + 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x22, 0x96, 0x03, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, + 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x0a, 0x06, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x23, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x63, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x68, 0x0a, + 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x72, 0x0a, 0x0e, 0x4e, 0x6f, 0x64, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x7d, 0x0a, 0x19, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xda, 0x01, 0x0a, 0x13, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x63, 0x0a, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x16, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5e, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6e, 0x6f, 0x64, 0x65, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x16, 0x56, 0x69, 0x64, 0x65, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x12, 0x6a, 0x0a, 0x17, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x57, 0x69, 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x15, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x57, 0x69, + 0x74, 0x68, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x1d, 0x0a, 0x1b, + 0x41, 0x49, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x49, 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x77, 0x0a, 0x14, 0x4d, + 0x65, 0x64, 0x69, 0x61, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x03, + 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, + 0x03, 0x74, 0x74, 0x6c, 0x22, 0xf0, 0x01, 0x0a, 0x10, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, + 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x63, 0x0a, 0x10, 0x70, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x5f, 0x62, 0x6c, 0x75, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, + 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, + 0x0a, 0x0a, 0x66, 0x61, 0x63, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x66, 0x61, 0x63, 0x65, 0x73, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x58, 0x0a, + 0x0e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x42, 0x6c, 0x75, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x1c, 0x50, 0x45, 0x52, 0x53, 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x55, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x4f, 0x43, 0x43, 0x55, 0x4c, 0x55, + 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x4c, 0x55, 0x52, 0x5f, 0x46, + 0x49, 0x4c, 0x54, 0x45, 0x52, 0x10, 0x02, 0x22, 0xc7, 0x01, 0x0a, 0x14, 0x4f, 0x63, 0x63, 0x75, + 0x70, 0x61, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x6f, 0x70, 0x6c, + 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, + 0x0a, 0x1d, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x77, 0x65, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x77, 0x65, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x22, 0x8c, 0x01, 0x0a, 0x1c, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x56, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x70, 0x65, 0x6f, + 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x65, 0x6f, 0x70, 0x6c, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x69, 0x6e, 0x67, + 0x22, 0xfd, 0x01, 0x0a, 0x2a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, + 0x74, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x43, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x63, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x46, + 0x61, 0x63, 0x65, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x1e, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, + 0x65, 0x61, 0x64, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x48, 0x65, 0x61, 0x64, 0x43, 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, + 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x1f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x61, 0x6e, 0x64, 0x73, 0x5f, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x1c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x43, + 0x6f, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x1e, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0xb4, 0x02, 0x0a, 0x0e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x78, 0x0a, 0x16, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x67, 0x51, 0x75, 0x65, 0x72, 0x79, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x14, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x70, + 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x22, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x69, 0x66, 0x5f, 0x6e, + 0x6f, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x1d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x61, + 0x62, 0x6c, 0x65, 0x49, 0x66, 0x4e, 0x6f, 0x74, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x1a, 0x47, + 0x0a, 0x19, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 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, 0x76, 0x0a, 0x18, 0x56, 0x65, 0x72, 0x74, 0x65, + 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x4c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, + 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0e, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, + 0xd3, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x4c, + 0x56, 0x69, 0x64, 0x65, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x14, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x25, + 0x0a, 0x0e, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x35, + 0x0a, 0x17, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x78, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x14, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x78, 0x53, 0x69, 0x7a, 0x65, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x22, 0x8c, 0x03, 0x0a, 0x12, 0x56, 0x65, 0x72, 0x74, 0x65, 0x78, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2c, 0x0a, 0x12, + 0x6d, 0x61, 0x78, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x50, 0x72, 0x65, + 0x64, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x70, 0x73, 0x12, 0x5d, 0x0a, 0x13, 0x64, 0x65, + 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x12, 0x64, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x70, 0x6f, 0x73, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x5f, 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x1b, 0x70, 0x6f, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x69, 0x6e, + 0x67, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x46, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, + 0x0a, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x5f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x19, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x45, + 0x0a, 0x1a, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, 0x6f, 0x70, 0x69, 0x63, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x17, 0x64, 0x79, 0x6e, 0x61, 0x6d, + 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x54, 0x6f, 0x70, + 0x69, 0x63, 0x88, 0x01, 0x01, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x64, 0x79, 0x6e, 0x61, 0x6d, 0x69, + 0x63, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x74, + 0x6f, 0x70, 0x69, 0x63, 0x22, 0x2c, 0x0a, 0x0f, 0x47, 0x63, 0x73, 0x4f, 0x75, 0x74, 0x70, 0x75, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x63, 0x73, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x63, 0x73, 0x50, 0x61, + 0x74, 0x68, 0x22, 0x16, 0x0a, 0x14, 0x55, 0x6e, 0x69, 0x76, 0x65, 0x72, 0x73, 0x61, 0x6c, 0x49, + 0x6e, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xbd, 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, 0x59, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, + 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x61, 0x63, + 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, 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, 0x22, 0xbb, 0x02, 0x0a, 0x12, 0x44, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, + 0x6e, 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, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, + 0x8c, 0x01, 0x0a, 0x17, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x67, + 0x6e, 0x69, 0x7a, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x72, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x48, 0x0a, 0x20, 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1e, + 0x72, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0xc2, + 0x01, 0x0a, 0x13, 0x54, 0x61, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x72, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x51, 0x0a, 0x25, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x22, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x44, 0x65, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x58, 0x0a, 0x12, 0x74, 0x61, 0x67, + 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x54, 0x61, 0x67, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x10, 0x74, 0x61, 0x67, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0xed, 0x03, 0x0a, 0x10, 0x54, 0x61, 0x67, 0x50, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x74, 0x0a, 0x16, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x5f, 0x70, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x1a, 0xe2, + 0x02, 0x0a, 0x13, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0c, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x19, + 0x0a, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x05, 0x72, 0x65, 0x67, 0x65, 0x78, 0x12, 0x94, 0x01, 0x0a, 0x18, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, + 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x55, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x61, 0x67, 0x50, 0x61, 0x72, 0x73, 0x69, + 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x50, + 0x61, 0x72, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, + 0x65, 0x67, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x16, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, + 0x22, 0x71, 0x0a, 0x16, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x28, 0x0a, 0x24, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x54, + 0x52, 0x41, 0x54, 0x45, 0x47, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, 0x4c, 0x49, + 0x4e, 0x45, 0x5f, 0x4d, 0x41, 0x54, 0x43, 0x48, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x14, 0x0a, + 0x10, 0x4d, 0x41, 0x58, 0x5f, 0x4f, 0x56, 0x45, 0x52, 0x4c, 0x41, 0x50, 0x5f, 0x41, 0x52, 0x45, + 0x41, 0x10, 0x02, 0x2a, 0xa0, 0x02, 0x0a, 0x09, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x4d, 0x4f, 0x44, 0x45, 0x4c, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, + 0x14, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x4f, 0x42, 0x4a, 0x45, 0x43, + 0x54, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x49, 0x46, 0x49, 0x43, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x49, 0x44, 0x45, 0x4f, + 0x5f, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x49, 0x4e, 0x47, + 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x41, 0x43, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, + 0x12, 0x16, 0x0a, 0x12, 0x4f, 0x43, 0x43, 0x55, 0x50, 0x41, 0x4e, 0x43, 0x59, 0x5f, 0x43, 0x4f, + 0x55, 0x4e, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x45, 0x52, 0x53, + 0x4f, 0x4e, 0x5f, 0x42, 0x4c, 0x55, 0x52, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, + 0x54, 0x45, 0x58, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x10, 0x08, 0x12, 0x16, 0x0a, 0x12, + 0x50, 0x52, 0x4f, 0x44, 0x55, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x47, 0x4e, 0x49, 0x5a, + 0x45, 0x52, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x41, 0x47, 0x5f, 0x52, 0x45, 0x43, 0x4f, + 0x47, 0x4e, 0x49, 0x5a, 0x45, 0x52, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x59, 0x4e, 0x54, + 0x48, 0x5f, 0x49, 0x44, 0x10, 0x0f, 0x2a, 0xd0, 0x01, 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x65, 0x6c, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x43, + 0x43, 0x45, 0x4c, 0x45, 0x52, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, + 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x4b, 0x38, 0x30, + 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, + 0x4c, 0x41, 0x5f, 0x50, 0x31, 0x30, 0x30, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x56, 0x49, + 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x56, 0x31, 0x30, 0x30, 0x10, 0x03, + 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, + 0x5f, 0x50, 0x34, 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x4e, 0x56, 0x49, 0x44, 0x49, 0x41, 0x5f, + 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x54, 0x34, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x4e, 0x56, + 0x49, 0x44, 0x49, 0x41, 0x5f, 0x54, 0x45, 0x53, 0x4c, 0x41, 0x5f, 0x41, 0x31, 0x30, 0x30, 0x10, + 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x54, 0x50, 0x55, 0x5f, 0x56, 0x32, 0x10, 0x06, 0x12, 0x0a, 0x0a, + 0x06, 0x54, 0x50, 0x55, 0x5f, 0x56, 0x33, 0x10, 0x07, 0x2a, 0x57, 0x0a, 0x08, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, + 0x4d, 0x41, 0x47, 0x45, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x10, + 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x48, 0x4f, 0x4c, 0x44, 0x45, 0x52, + 0x10, 0x04, 0x32, 0xea, 0x2d, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x12, 0xbc, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, + 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, + 0x30, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0xa9, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3f, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 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, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe5, 0x01, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 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, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x30, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x8e, + 0x01, 0xca, 0x41, 0x20, 0x0a, 0x0b, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x17, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4b, 0x3a, 0x0b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x32, 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 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, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xd4, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x6c, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 0x32, 0x2a, 0x30, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe2, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x7a, 0xca, 0x41, 0x2e, 0x0a, 0x19, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x11, 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, 0x3a, + 0x01, 0x2a, 0x22, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0xea, 0x01, 0x0a, 0x13, + 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x1b, 0x55, + 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 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, 0x3a, 0x01, 0x2a, 0x22, 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, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x75, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x12, 0x83, 0x02, 0x0a, 0x19, 0x41, 0x64, 0x64, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 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, 0x8a, 0x01, 0xca, 0x41, 0x36, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 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, 0x44, 0x3a, 0x01, 0x2a, 0x22, 0x3f, 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, + 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x61, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x8f, + 0x02, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, + 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 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, 0x90, 0x01, + 0xca, 0x41, 0x39, 0x0a, 0x24, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 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, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, 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, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x8f, 0x02, 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, + 0x74, 0x12, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, 0x75, 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, + 0x90, 0x01, 0xca, 0x41, 0x39, 0x0a, 0x24, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, + 0x70, 0x75, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 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, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, + 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, + 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x70, + 0x75, 0x74, 0x12, 0xbf, 0x01, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x2f, 0x2a, 0x7d, 0x12, 0x92, 0x02, 0x0a, 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x97, + 0x01, 0xca, 0x41, 0x37, 0x0a, 0x22, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 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, 0x50, 0x3a, 0x01, 0x2a, 0x22, 0x4b, 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, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xf7, 0x01, 0x0a, 0x1a, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0x7d, 0xca, 0x41, 0x1d, 0x0a, 0x08, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x11, 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, 0x50, 0x3a, 0x01, 0x2a, 0x22, 0x4b, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0xa9, 0x02, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 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, 0xae, 0x01, + 0xca, 0x41, 0x37, 0x0a, 0x22, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1b, 0x6e, 0x61, 0x6d, + 0x65, 0x2c, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x01, + 0x2a, 0x22, 0x4b, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0xb3, + 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 0x74, 0x73, 0x12, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, + 0x66, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x72, 0x61, 0x66, 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, 0x61, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x72, + 0x61, 0x66, 0x74, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x44, 0x72, 0x61, 0x66, + 0x74, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x72, 0x61, 0x66, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x72, 0x61, 0x66, 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, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x72, + 0x61, 0x66, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd9, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 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, 0x7d, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x44, 0x72, 0x61, 0x66, 0x74, + 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x72, 0x61, + 0x66, 0x74, 0x2c, 0x64, 0x72, 0x61, 0x66, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x42, 0x3a, 0x05, 0x64, 0x72, 0x61, 0x66, 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, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x72, 0x61, + 0x66, 0x74, 0x73, 0x12, 0xdb, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x72, + 0x61, 0x66, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 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, 0x7f, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x44, 0x72, 0x61, 0x66, 0x74, 0x12, 0x11, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, + 0x41, 0x11, 0x64, 0x72, 0x61, 0x66, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x05, 0x64, 0x72, 0x61, 0x66, 0x74, + 0x32, 0x3f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x72, 0x61, 0x66, 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, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x72, 0x61, 0x66, 0x74, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xd1, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, + 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x72, 0x61, 0x66, 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, 0x75, + 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 0x61, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x2f, 0x64, 0x72, 0x61, 0x66, + 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb4, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, + 0x6f, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0xd8, 0x01, 0x0a, + 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, + 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 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, 0x3a, 0x01, 0x2a, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x3a, 0x70, + 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x12, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x22, 0x3d, 0xda, 0x41, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, 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, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xe7, 0x01, 0x0a, 0x0f, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, + 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x82, 0x01, 0xca, 0x41, 0x1e, 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2c, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, + 0x72, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x09, 0x70, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 0x73, 0x12, 0xe9, 0x01, 0x0a, 0x0f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x6f, 0x72, 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, 0x84, 0x01, 0xca, 0x41, 0x1e, + 0x0a, 0x09, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x15, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x09, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x32, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xce, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, + 0x65, 0x73, 0x73, 0x6f, 0x72, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, + 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, 0x6a, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x12, 0x11, 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, 0x30, 0x2a, 0x2e, 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, 0x70, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x73, 0x2f, + 0x2a, 0x7d, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, + 0xbd, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x42, 0x0d, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, + 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, + 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, + 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_platform_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_platform_proto_rawDescData = file_google_cloud_visionai_v1_platform_proto_rawDesc +) + +func file_google_cloud_visionai_v1_platform_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_platform_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_platform_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_platform_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_platform_proto_rawDescData +} + +var file_google_cloud_visionai_v1_platform_proto_enumTypes = make([]protoimpl.EnumInfo, 12) +var file_google_cloud_visionai_v1_platform_proto_msgTypes = make([]protoimpl.MessageInfo, 96) +var file_google_cloud_visionai_v1_platform_proto_goTypes = []interface{}{ + (ModelType)(0), // 0: google.cloud.visionai.v1.ModelType + (AcceleratorType)(0), // 1: google.cloud.visionai.v1.AcceleratorType + (DataType)(0), // 2: google.cloud.visionai.v1.DataType + (Application_State)(0), // 3: google.cloud.visionai.v1.Application.State + (Application_BillingMode)(0), // 4: google.cloud.visionai.v1.Application.BillingMode + (Instance_InstanceType)(0), // 5: google.cloud.visionai.v1.Instance.InstanceType + (Instance_State)(0), // 6: google.cloud.visionai.v1.Instance.State + (Processor_ProcessorType)(0), // 7: google.cloud.visionai.v1.Processor.ProcessorType + (Processor_ProcessorState)(0), // 8: google.cloud.visionai.v1.Processor.ProcessorState + (CustomProcessorSourceInfo_SourceType)(0), // 9: google.cloud.visionai.v1.CustomProcessorSourceInfo.SourceType + (PersonBlurConfig_PersonBlurType)(0), // 10: google.cloud.visionai.v1.PersonBlurConfig.PersonBlurType + (TagParsingConfig_EntityParsingConfig_EntityMatchingStrategy)(0), // 11: google.cloud.visionai.v1.TagParsingConfig.EntityParsingConfig.EntityMatchingStrategy + (*DeleteApplicationInstancesResponse)(nil), // 12: google.cloud.visionai.v1.DeleteApplicationInstancesResponse + (*CreateApplicationInstancesResponse)(nil), // 13: google.cloud.visionai.v1.CreateApplicationInstancesResponse + (*UpdateApplicationInstancesResponse)(nil), // 14: google.cloud.visionai.v1.UpdateApplicationInstancesResponse + (*CreateApplicationInstancesRequest)(nil), // 15: google.cloud.visionai.v1.CreateApplicationInstancesRequest + (*DeleteApplicationInstancesRequest)(nil), // 16: google.cloud.visionai.v1.DeleteApplicationInstancesRequest + (*DeployApplicationResponse)(nil), // 17: google.cloud.visionai.v1.DeployApplicationResponse + (*UndeployApplicationResponse)(nil), // 18: google.cloud.visionai.v1.UndeployApplicationResponse + (*RemoveApplicationStreamInputResponse)(nil), // 19: google.cloud.visionai.v1.RemoveApplicationStreamInputResponse + (*AddApplicationStreamInputResponse)(nil), // 20: google.cloud.visionai.v1.AddApplicationStreamInputResponse + (*UpdateApplicationStreamInputResponse)(nil), // 21: google.cloud.visionai.v1.UpdateApplicationStreamInputResponse + (*ListApplicationsRequest)(nil), // 22: google.cloud.visionai.v1.ListApplicationsRequest + (*ListApplicationsResponse)(nil), // 23: google.cloud.visionai.v1.ListApplicationsResponse + (*GetApplicationRequest)(nil), // 24: google.cloud.visionai.v1.GetApplicationRequest + (*CreateApplicationRequest)(nil), // 25: google.cloud.visionai.v1.CreateApplicationRequest + (*UpdateApplicationRequest)(nil), // 26: google.cloud.visionai.v1.UpdateApplicationRequest + (*DeleteApplicationRequest)(nil), // 27: google.cloud.visionai.v1.DeleteApplicationRequest + (*DeployApplicationRequest)(nil), // 28: google.cloud.visionai.v1.DeployApplicationRequest + (*UndeployApplicationRequest)(nil), // 29: google.cloud.visionai.v1.UndeployApplicationRequest + (*ApplicationStreamInput)(nil), // 30: google.cloud.visionai.v1.ApplicationStreamInput + (*AddApplicationStreamInputRequest)(nil), // 31: google.cloud.visionai.v1.AddApplicationStreamInputRequest + (*UpdateApplicationStreamInputRequest)(nil), // 32: google.cloud.visionai.v1.UpdateApplicationStreamInputRequest + (*RemoveApplicationStreamInputRequest)(nil), // 33: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest + (*ListInstancesRequest)(nil), // 34: google.cloud.visionai.v1.ListInstancesRequest + (*ListInstancesResponse)(nil), // 35: google.cloud.visionai.v1.ListInstancesResponse + (*GetInstanceRequest)(nil), // 36: google.cloud.visionai.v1.GetInstanceRequest + (*ListDraftsRequest)(nil), // 37: google.cloud.visionai.v1.ListDraftsRequest + (*ListDraftsResponse)(nil), // 38: google.cloud.visionai.v1.ListDraftsResponse + (*GetDraftRequest)(nil), // 39: google.cloud.visionai.v1.GetDraftRequest + (*CreateDraftRequest)(nil), // 40: google.cloud.visionai.v1.CreateDraftRequest + (*UpdateDraftRequest)(nil), // 41: google.cloud.visionai.v1.UpdateDraftRequest + (*UpdateApplicationInstancesRequest)(nil), // 42: google.cloud.visionai.v1.UpdateApplicationInstancesRequest + (*DeleteDraftRequest)(nil), // 43: google.cloud.visionai.v1.DeleteDraftRequest + (*ListProcessorsRequest)(nil), // 44: google.cloud.visionai.v1.ListProcessorsRequest + (*ListProcessorsResponse)(nil), // 45: google.cloud.visionai.v1.ListProcessorsResponse + (*ListPrebuiltProcessorsRequest)(nil), // 46: google.cloud.visionai.v1.ListPrebuiltProcessorsRequest + (*ListPrebuiltProcessorsResponse)(nil), // 47: google.cloud.visionai.v1.ListPrebuiltProcessorsResponse + (*GetProcessorRequest)(nil), // 48: google.cloud.visionai.v1.GetProcessorRequest + (*CreateProcessorRequest)(nil), // 49: google.cloud.visionai.v1.CreateProcessorRequest + (*UpdateProcessorRequest)(nil), // 50: google.cloud.visionai.v1.UpdateProcessorRequest + (*DeleteProcessorRequest)(nil), // 51: google.cloud.visionai.v1.DeleteProcessorRequest + (*Application)(nil), // 52: google.cloud.visionai.v1.Application + (*ApplicationConfigs)(nil), // 53: google.cloud.visionai.v1.ApplicationConfigs + (*Node)(nil), // 54: google.cloud.visionai.v1.Node + (*Draft)(nil), // 55: google.cloud.visionai.v1.Draft + (*Instance)(nil), // 56: google.cloud.visionai.v1.Instance + (*ApplicationInstance)(nil), // 57: google.cloud.visionai.v1.ApplicationInstance + (*Processor)(nil), // 58: google.cloud.visionai.v1.Processor + (*ProcessorIOSpec)(nil), // 59: google.cloud.visionai.v1.ProcessorIOSpec + (*CustomProcessorSourceInfo)(nil), // 60: google.cloud.visionai.v1.CustomProcessorSourceInfo + (*ProcessorConfig)(nil), // 61: google.cloud.visionai.v1.ProcessorConfig + (*StreamWithAnnotation)(nil), // 62: google.cloud.visionai.v1.StreamWithAnnotation + (*ApplicationNodeAnnotation)(nil), // 63: google.cloud.visionai.v1.ApplicationNodeAnnotation + (*ResourceAnnotations)(nil), // 64: google.cloud.visionai.v1.ResourceAnnotations + (*VideoStreamInputConfig)(nil), // 65: google.cloud.visionai.v1.VideoStreamInputConfig + (*AIEnabledDevicesInputConfig)(nil), // 66: google.cloud.visionai.v1.AIEnabledDevicesInputConfig + (*MediaWarehouseConfig)(nil), // 67: google.cloud.visionai.v1.MediaWarehouseConfig + (*PersonBlurConfig)(nil), // 68: google.cloud.visionai.v1.PersonBlurConfig + (*OccupancyCountConfig)(nil), // 69: google.cloud.visionai.v1.OccupancyCountConfig + (*PersonVehicleDetectionConfig)(nil), // 70: google.cloud.visionai.v1.PersonVehicleDetectionConfig + (*PersonalProtectiveEquipmentDetectionConfig)(nil), // 71: google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionConfig + (*GeneralObjectDetectionConfig)(nil), // 72: google.cloud.visionai.v1.GeneralObjectDetectionConfig + (*BigQueryConfig)(nil), // 73: google.cloud.visionai.v1.BigQueryConfig + (*VertexAutoMLVisionConfig)(nil), // 74: google.cloud.visionai.v1.VertexAutoMLVisionConfig + (*VertexAutoMLVideoConfig)(nil), // 75: google.cloud.visionai.v1.VertexAutoMLVideoConfig + (*VertexCustomConfig)(nil), // 76: google.cloud.visionai.v1.VertexCustomConfig + (*GcsOutputConfig)(nil), // 77: google.cloud.visionai.v1.GcsOutputConfig + (*UniversalInputConfig)(nil), // 78: google.cloud.visionai.v1.UniversalInputConfig + (*MachineSpec)(nil), // 79: google.cloud.visionai.v1.MachineSpec + (*AutoscalingMetricSpec)(nil), // 80: google.cloud.visionai.v1.AutoscalingMetricSpec + (*DedicatedResources)(nil), // 81: google.cloud.visionai.v1.DedicatedResources + (*ProductRecognizerConfig)(nil), // 82: google.cloud.visionai.v1.ProductRecognizerConfig + (*TagRecognizerConfig)(nil), // 83: google.cloud.visionai.v1.TagRecognizerConfig + (*TagParsingConfig)(nil), // 84: google.cloud.visionai.v1.TagParsingConfig + (*RemoveApplicationStreamInputRequest_TargetStreamInput)(nil), // 85: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.TargetStreamInput + (*UpdateApplicationInstancesRequest_UpdateApplicationInstance)(nil), // 86: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance + (*Application_ApplicationRuntimeInfo)(nil), // 87: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo + nil, // 88: google.cloud.visionai.v1.Application.LabelsEntry + (*Application_ApplicationRuntimeInfo_GlobalOutputResource)(nil), // 89: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.GlobalOutputResource + (*Application_ApplicationRuntimeInfo_MonitoringConfig)(nil), // 90: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.MonitoringConfig + (*ApplicationConfigs_EventDeliveryConfig)(nil), // 91: google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig + (*Node_InputEdge)(nil), // 92: google.cloud.visionai.v1.Node.InputEdge + nil, // 93: google.cloud.visionai.v1.Draft.LabelsEntry + (*Instance_InputResource)(nil), // 94: google.cloud.visionai.v1.Instance.InputResource + (*Instance_OutputResource)(nil), // 95: google.cloud.visionai.v1.Instance.OutputResource + nil, // 96: google.cloud.visionai.v1.Instance.LabelsEntry + nil, // 97: google.cloud.visionai.v1.Processor.LabelsEntry + (*ProcessorIOSpec_GraphInputChannelSpec)(nil), // 98: google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec + (*ProcessorIOSpec_GraphOutputChannelSpec)(nil), // 99: google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec + (*ProcessorIOSpec_InstanceResourceInputBindingSpec)(nil), // 100: google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceInputBindingSpec + (*ProcessorIOSpec_InstanceResourceOutputBindingSpec)(nil), // 101: google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceOutputBindingSpec + (*CustomProcessorSourceInfo_ProductRecognizerArtifact)(nil), // 102: google.cloud.visionai.v1.CustomProcessorSourceInfo.ProductRecognizerArtifact + (*CustomProcessorSourceInfo_ModelSchema)(nil), // 103: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema + nil, // 104: google.cloud.visionai.v1.CustomProcessorSourceInfo.AdditionalInfoEntry + (*StreamWithAnnotation_NodeAnnotation)(nil), // 105: google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation + nil, // 106: google.cloud.visionai.v1.BigQueryConfig.CloudFunctionMappingEntry + (*TagParsingConfig_EntityParsingConfig)(nil), // 107: google.cloud.visionai.v1.TagParsingConfig.EntityParsingConfig + (*fieldmaskpb.FieldMask)(nil), // 108: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 109: google.protobuf.Timestamp + (StreamAnnotationType)(0), // 110: google.cloud.visionai.v1.StreamAnnotationType + (*structpb.Struct)(nil), // 111: google.protobuf.Struct + (*StreamAnnotation)(nil), // 112: google.cloud.visionai.v1.StreamAnnotation + (*durationpb.Duration)(nil), // 113: google.protobuf.Duration + (*GcsSource)(nil), // 114: google.cloud.visionai.v1.GcsSource + (*longrunningpb.Operation)(nil), // 115: google.longrunning.Operation +} +var file_google_cloud_visionai_v1_platform_proto_depIdxs = []int32{ + 57, // 0: google.cloud.visionai.v1.CreateApplicationInstancesRequest.application_instances:type_name -> google.cloud.visionai.v1.ApplicationInstance + 52, // 1: google.cloud.visionai.v1.ListApplicationsResponse.applications:type_name -> google.cloud.visionai.v1.Application + 52, // 2: google.cloud.visionai.v1.CreateApplicationRequest.application:type_name -> google.cloud.visionai.v1.Application + 108, // 3: google.cloud.visionai.v1.UpdateApplicationRequest.update_mask:type_name -> google.protobuf.FieldMask + 52, // 4: google.cloud.visionai.v1.UpdateApplicationRequest.application:type_name -> google.cloud.visionai.v1.Application + 62, // 5: google.cloud.visionai.v1.ApplicationStreamInput.stream_with_annotation:type_name -> google.cloud.visionai.v1.StreamWithAnnotation + 30, // 6: google.cloud.visionai.v1.AddApplicationStreamInputRequest.application_stream_inputs:type_name -> google.cloud.visionai.v1.ApplicationStreamInput + 30, // 7: google.cloud.visionai.v1.UpdateApplicationStreamInputRequest.application_stream_inputs:type_name -> google.cloud.visionai.v1.ApplicationStreamInput + 85, // 8: google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.target_stream_inputs:type_name -> google.cloud.visionai.v1.RemoveApplicationStreamInputRequest.TargetStreamInput + 56, // 9: google.cloud.visionai.v1.ListInstancesResponse.instances:type_name -> google.cloud.visionai.v1.Instance + 55, // 10: google.cloud.visionai.v1.ListDraftsResponse.drafts:type_name -> google.cloud.visionai.v1.Draft + 55, // 11: google.cloud.visionai.v1.CreateDraftRequest.draft:type_name -> google.cloud.visionai.v1.Draft + 108, // 12: google.cloud.visionai.v1.UpdateDraftRequest.update_mask:type_name -> google.protobuf.FieldMask + 55, // 13: google.cloud.visionai.v1.UpdateDraftRequest.draft:type_name -> google.cloud.visionai.v1.Draft + 86, // 14: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.application_instances:type_name -> google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance + 58, // 15: google.cloud.visionai.v1.ListProcessorsResponse.processors:type_name -> google.cloud.visionai.v1.Processor + 58, // 16: google.cloud.visionai.v1.ListPrebuiltProcessorsResponse.processors:type_name -> google.cloud.visionai.v1.Processor + 58, // 17: google.cloud.visionai.v1.CreateProcessorRequest.processor:type_name -> google.cloud.visionai.v1.Processor + 108, // 18: google.cloud.visionai.v1.UpdateProcessorRequest.update_mask:type_name -> google.protobuf.FieldMask + 58, // 19: google.cloud.visionai.v1.UpdateProcessorRequest.processor:type_name -> google.cloud.visionai.v1.Processor + 109, // 20: google.cloud.visionai.v1.Application.create_time:type_name -> google.protobuf.Timestamp + 109, // 21: google.cloud.visionai.v1.Application.update_time:type_name -> google.protobuf.Timestamp + 88, // 22: google.cloud.visionai.v1.Application.labels:type_name -> google.cloud.visionai.v1.Application.LabelsEntry + 53, // 23: google.cloud.visionai.v1.Application.application_configs:type_name -> google.cloud.visionai.v1.ApplicationConfigs + 87, // 24: google.cloud.visionai.v1.Application.runtime_info:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo + 3, // 25: google.cloud.visionai.v1.Application.state:type_name -> google.cloud.visionai.v1.Application.State + 4, // 26: google.cloud.visionai.v1.Application.billing_mode:type_name -> google.cloud.visionai.v1.Application.BillingMode + 54, // 27: google.cloud.visionai.v1.ApplicationConfigs.nodes:type_name -> google.cloud.visionai.v1.Node + 91, // 28: google.cloud.visionai.v1.ApplicationConfigs.event_delivery_config:type_name -> google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig + 61, // 29: google.cloud.visionai.v1.Node.node_config:type_name -> google.cloud.visionai.v1.ProcessorConfig + 92, // 30: google.cloud.visionai.v1.Node.parents:type_name -> google.cloud.visionai.v1.Node.InputEdge + 109, // 31: google.cloud.visionai.v1.Draft.create_time:type_name -> google.protobuf.Timestamp + 109, // 32: google.cloud.visionai.v1.Draft.update_time:type_name -> google.protobuf.Timestamp + 93, // 33: google.cloud.visionai.v1.Draft.labels:type_name -> google.cloud.visionai.v1.Draft.LabelsEntry + 53, // 34: google.cloud.visionai.v1.Draft.draft_application_configs:type_name -> google.cloud.visionai.v1.ApplicationConfigs + 109, // 35: google.cloud.visionai.v1.Instance.create_time:type_name -> google.protobuf.Timestamp + 109, // 36: google.cloud.visionai.v1.Instance.update_time:type_name -> google.protobuf.Timestamp + 96, // 37: google.cloud.visionai.v1.Instance.labels:type_name -> google.cloud.visionai.v1.Instance.LabelsEntry + 5, // 38: google.cloud.visionai.v1.Instance.instance_type:type_name -> google.cloud.visionai.v1.Instance.InstanceType + 94, // 39: google.cloud.visionai.v1.Instance.input_resources:type_name -> google.cloud.visionai.v1.Instance.InputResource + 95, // 40: google.cloud.visionai.v1.Instance.output_resources:type_name -> google.cloud.visionai.v1.Instance.OutputResource + 6, // 41: google.cloud.visionai.v1.Instance.state:type_name -> google.cloud.visionai.v1.Instance.State + 56, // 42: google.cloud.visionai.v1.ApplicationInstance.instance:type_name -> google.cloud.visionai.v1.Instance + 109, // 43: google.cloud.visionai.v1.Processor.create_time:type_name -> google.protobuf.Timestamp + 109, // 44: google.cloud.visionai.v1.Processor.update_time:type_name -> google.protobuf.Timestamp + 97, // 45: google.cloud.visionai.v1.Processor.labels:type_name -> google.cloud.visionai.v1.Processor.LabelsEntry + 7, // 46: google.cloud.visionai.v1.Processor.processor_type:type_name -> google.cloud.visionai.v1.Processor.ProcessorType + 0, // 47: google.cloud.visionai.v1.Processor.model_type:type_name -> google.cloud.visionai.v1.ModelType + 60, // 48: google.cloud.visionai.v1.Processor.custom_processor_source_info:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo + 8, // 49: google.cloud.visionai.v1.Processor.state:type_name -> google.cloud.visionai.v1.Processor.ProcessorState + 59, // 50: google.cloud.visionai.v1.Processor.processor_io_spec:type_name -> google.cloud.visionai.v1.ProcessorIOSpec + 110, // 51: google.cloud.visionai.v1.Processor.supported_annotation_types:type_name -> google.cloud.visionai.v1.StreamAnnotationType + 5, // 52: google.cloud.visionai.v1.Processor.supported_instance_types:type_name -> google.cloud.visionai.v1.Instance.InstanceType + 98, // 53: google.cloud.visionai.v1.ProcessorIOSpec.graph_input_channel_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec + 99, // 54: google.cloud.visionai.v1.ProcessorIOSpec.graph_output_channel_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec + 100, // 55: google.cloud.visionai.v1.ProcessorIOSpec.instance_resource_input_binding_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceInputBindingSpec + 101, // 56: google.cloud.visionai.v1.ProcessorIOSpec.instance_resource_output_binding_specs:type_name -> google.cloud.visionai.v1.ProcessorIOSpec.InstanceResourceOutputBindingSpec + 102, // 57: google.cloud.visionai.v1.CustomProcessorSourceInfo.product_recognizer_artifact:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.ProductRecognizerArtifact + 9, // 58: google.cloud.visionai.v1.CustomProcessorSourceInfo.source_type:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.SourceType + 104, // 59: google.cloud.visionai.v1.CustomProcessorSourceInfo.additional_info:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.AdditionalInfoEntry + 103, // 60: google.cloud.visionai.v1.CustomProcessorSourceInfo.model_schema:type_name -> google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema + 65, // 61: google.cloud.visionai.v1.ProcessorConfig.video_stream_input_config:type_name -> google.cloud.visionai.v1.VideoStreamInputConfig + 66, // 62: google.cloud.visionai.v1.ProcessorConfig.ai_enabled_devices_input_config:type_name -> google.cloud.visionai.v1.AIEnabledDevicesInputConfig + 67, // 63: google.cloud.visionai.v1.ProcessorConfig.media_warehouse_config:type_name -> google.cloud.visionai.v1.MediaWarehouseConfig + 68, // 64: google.cloud.visionai.v1.ProcessorConfig.person_blur_config:type_name -> google.cloud.visionai.v1.PersonBlurConfig + 69, // 65: google.cloud.visionai.v1.ProcessorConfig.occupancy_count_config:type_name -> google.cloud.visionai.v1.OccupancyCountConfig + 70, // 66: google.cloud.visionai.v1.ProcessorConfig.person_vehicle_detection_config:type_name -> google.cloud.visionai.v1.PersonVehicleDetectionConfig + 74, // 67: google.cloud.visionai.v1.ProcessorConfig.vertex_automl_vision_config:type_name -> google.cloud.visionai.v1.VertexAutoMLVisionConfig + 75, // 68: google.cloud.visionai.v1.ProcessorConfig.vertex_automl_video_config:type_name -> google.cloud.visionai.v1.VertexAutoMLVideoConfig + 76, // 69: google.cloud.visionai.v1.ProcessorConfig.vertex_custom_config:type_name -> google.cloud.visionai.v1.VertexCustomConfig + 72, // 70: google.cloud.visionai.v1.ProcessorConfig.general_object_detection_config:type_name -> google.cloud.visionai.v1.GeneralObjectDetectionConfig + 73, // 71: google.cloud.visionai.v1.ProcessorConfig.big_query_config:type_name -> google.cloud.visionai.v1.BigQueryConfig + 77, // 72: google.cloud.visionai.v1.ProcessorConfig.gcs_output_config:type_name -> google.cloud.visionai.v1.GcsOutputConfig + 82, // 73: google.cloud.visionai.v1.ProcessorConfig.product_recognizer_config:type_name -> google.cloud.visionai.v1.ProductRecognizerConfig + 71, // 74: google.cloud.visionai.v1.ProcessorConfig.personal_protective_equipment_detection_config:type_name -> google.cloud.visionai.v1.PersonalProtectiveEquipmentDetectionConfig + 83, // 75: google.cloud.visionai.v1.ProcessorConfig.tag_recognizer_config:type_name -> google.cloud.visionai.v1.TagRecognizerConfig + 78, // 76: google.cloud.visionai.v1.ProcessorConfig.universal_input_config:type_name -> google.cloud.visionai.v1.UniversalInputConfig + 111, // 77: google.cloud.visionai.v1.ProcessorConfig.experimental_config:type_name -> google.protobuf.Struct + 112, // 78: google.cloud.visionai.v1.StreamWithAnnotation.application_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation + 105, // 79: google.cloud.visionai.v1.StreamWithAnnotation.node_annotations:type_name -> google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation + 112, // 80: google.cloud.visionai.v1.ApplicationNodeAnnotation.annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation + 112, // 81: google.cloud.visionai.v1.ResourceAnnotations.application_annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation + 63, // 82: google.cloud.visionai.v1.ResourceAnnotations.node_annotations:type_name -> google.cloud.visionai.v1.ApplicationNodeAnnotation + 62, // 83: google.cloud.visionai.v1.VideoStreamInputConfig.streams_with_annotation:type_name -> google.cloud.visionai.v1.StreamWithAnnotation + 113, // 84: google.cloud.visionai.v1.MediaWarehouseConfig.ttl:type_name -> google.protobuf.Duration + 10, // 85: google.cloud.visionai.v1.PersonBlurConfig.person_blur_type:type_name -> google.cloud.visionai.v1.PersonBlurConfig.PersonBlurType + 106, // 86: google.cloud.visionai.v1.BigQueryConfig.cloud_function_mapping:type_name -> google.cloud.visionai.v1.BigQueryConfig.CloudFunctionMappingEntry + 81, // 87: google.cloud.visionai.v1.VertexCustomConfig.dedicated_resources:type_name -> google.cloud.visionai.v1.DedicatedResources + 1, // 88: google.cloud.visionai.v1.MachineSpec.accelerator_type:type_name -> google.cloud.visionai.v1.AcceleratorType + 79, // 89: google.cloud.visionai.v1.DedicatedResources.machine_spec:type_name -> google.cloud.visionai.v1.MachineSpec + 80, // 90: google.cloud.visionai.v1.DedicatedResources.autoscaling_metric_specs:type_name -> google.cloud.visionai.v1.AutoscalingMetricSpec + 84, // 91: google.cloud.visionai.v1.TagRecognizerConfig.tag_parsing_config:type_name -> google.cloud.visionai.v1.TagParsingConfig + 107, // 92: google.cloud.visionai.v1.TagParsingConfig.entity_parsing_configs:type_name -> google.cloud.visionai.v1.TagParsingConfig.EntityParsingConfig + 108, // 93: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance.update_mask:type_name -> google.protobuf.FieldMask + 56, // 94: google.cloud.visionai.v1.UpdateApplicationInstancesRequest.UpdateApplicationInstance.instance:type_name -> google.cloud.visionai.v1.Instance + 109, // 95: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.deploy_time:type_name -> google.protobuf.Timestamp + 89, // 96: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.global_output_resources:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.GlobalOutputResource + 90, // 97: google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.monitoring_config:type_name -> google.cloud.visionai.v1.Application.ApplicationRuntimeInfo.MonitoringConfig + 113, // 98: google.cloud.visionai.v1.ApplicationConfigs.EventDeliveryConfig.minimal_delivery_interval:type_name -> google.protobuf.Duration + 62, // 99: google.cloud.visionai.v1.Instance.InputResource.annotated_stream:type_name -> google.cloud.visionai.v1.StreamWithAnnotation + 2, // 100: google.cloud.visionai.v1.Instance.InputResource.data_type:type_name -> google.cloud.visionai.v1.DataType + 64, // 101: google.cloud.visionai.v1.Instance.InputResource.annotations:type_name -> google.cloud.visionai.v1.ResourceAnnotations + 2, // 102: google.cloud.visionai.v1.ProcessorIOSpec.GraphInputChannelSpec.data_type:type_name -> google.cloud.visionai.v1.DataType + 2, // 103: google.cloud.visionai.v1.ProcessorIOSpec.GraphOutputChannelSpec.data_type:type_name -> google.cloud.visionai.v1.DataType + 114, // 104: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.instances_schema:type_name -> google.cloud.visionai.v1.GcsSource + 114, // 105: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.parameters_schema:type_name -> google.cloud.visionai.v1.GcsSource + 114, // 106: google.cloud.visionai.v1.CustomProcessorSourceInfo.ModelSchema.predictions_schema:type_name -> google.cloud.visionai.v1.GcsSource + 112, // 107: google.cloud.visionai.v1.StreamWithAnnotation.NodeAnnotation.annotations:type_name -> google.cloud.visionai.v1.StreamAnnotation + 11, // 108: google.cloud.visionai.v1.TagParsingConfig.EntityParsingConfig.entity_matching_strategy:type_name -> google.cloud.visionai.v1.TagParsingConfig.EntityParsingConfig.EntityMatchingStrategy + 22, // 109: google.cloud.visionai.v1.AppPlatform.ListApplications:input_type -> google.cloud.visionai.v1.ListApplicationsRequest + 24, // 110: google.cloud.visionai.v1.AppPlatform.GetApplication:input_type -> google.cloud.visionai.v1.GetApplicationRequest + 25, // 111: google.cloud.visionai.v1.AppPlatform.CreateApplication:input_type -> google.cloud.visionai.v1.CreateApplicationRequest + 26, // 112: google.cloud.visionai.v1.AppPlatform.UpdateApplication:input_type -> google.cloud.visionai.v1.UpdateApplicationRequest + 27, // 113: google.cloud.visionai.v1.AppPlatform.DeleteApplication:input_type -> google.cloud.visionai.v1.DeleteApplicationRequest + 28, // 114: google.cloud.visionai.v1.AppPlatform.DeployApplication:input_type -> google.cloud.visionai.v1.DeployApplicationRequest + 29, // 115: google.cloud.visionai.v1.AppPlatform.UndeployApplication:input_type -> google.cloud.visionai.v1.UndeployApplicationRequest + 31, // 116: google.cloud.visionai.v1.AppPlatform.AddApplicationStreamInput:input_type -> google.cloud.visionai.v1.AddApplicationStreamInputRequest + 33, // 117: google.cloud.visionai.v1.AppPlatform.RemoveApplicationStreamInput:input_type -> google.cloud.visionai.v1.RemoveApplicationStreamInputRequest + 32, // 118: google.cloud.visionai.v1.AppPlatform.UpdateApplicationStreamInput:input_type -> google.cloud.visionai.v1.UpdateApplicationStreamInputRequest + 34, // 119: google.cloud.visionai.v1.AppPlatform.ListInstances:input_type -> google.cloud.visionai.v1.ListInstancesRequest + 36, // 120: google.cloud.visionai.v1.AppPlatform.GetInstance:input_type -> google.cloud.visionai.v1.GetInstanceRequest + 15, // 121: google.cloud.visionai.v1.AppPlatform.CreateApplicationInstances:input_type -> google.cloud.visionai.v1.CreateApplicationInstancesRequest + 16, // 122: google.cloud.visionai.v1.AppPlatform.DeleteApplicationInstances:input_type -> google.cloud.visionai.v1.DeleteApplicationInstancesRequest + 42, // 123: google.cloud.visionai.v1.AppPlatform.UpdateApplicationInstances:input_type -> google.cloud.visionai.v1.UpdateApplicationInstancesRequest + 37, // 124: google.cloud.visionai.v1.AppPlatform.ListDrafts:input_type -> google.cloud.visionai.v1.ListDraftsRequest + 39, // 125: google.cloud.visionai.v1.AppPlatform.GetDraft:input_type -> google.cloud.visionai.v1.GetDraftRequest + 40, // 126: google.cloud.visionai.v1.AppPlatform.CreateDraft:input_type -> google.cloud.visionai.v1.CreateDraftRequest + 41, // 127: google.cloud.visionai.v1.AppPlatform.UpdateDraft:input_type -> google.cloud.visionai.v1.UpdateDraftRequest + 43, // 128: google.cloud.visionai.v1.AppPlatform.DeleteDraft:input_type -> google.cloud.visionai.v1.DeleteDraftRequest + 44, // 129: google.cloud.visionai.v1.AppPlatform.ListProcessors:input_type -> google.cloud.visionai.v1.ListProcessorsRequest + 46, // 130: google.cloud.visionai.v1.AppPlatform.ListPrebuiltProcessors:input_type -> google.cloud.visionai.v1.ListPrebuiltProcessorsRequest + 48, // 131: google.cloud.visionai.v1.AppPlatform.GetProcessor:input_type -> google.cloud.visionai.v1.GetProcessorRequest + 49, // 132: google.cloud.visionai.v1.AppPlatform.CreateProcessor:input_type -> google.cloud.visionai.v1.CreateProcessorRequest + 50, // 133: google.cloud.visionai.v1.AppPlatform.UpdateProcessor:input_type -> google.cloud.visionai.v1.UpdateProcessorRequest + 51, // 134: google.cloud.visionai.v1.AppPlatform.DeleteProcessor:input_type -> google.cloud.visionai.v1.DeleteProcessorRequest + 23, // 135: google.cloud.visionai.v1.AppPlatform.ListApplications:output_type -> google.cloud.visionai.v1.ListApplicationsResponse + 52, // 136: google.cloud.visionai.v1.AppPlatform.GetApplication:output_type -> google.cloud.visionai.v1.Application + 115, // 137: google.cloud.visionai.v1.AppPlatform.CreateApplication:output_type -> google.longrunning.Operation + 115, // 138: google.cloud.visionai.v1.AppPlatform.UpdateApplication:output_type -> google.longrunning.Operation + 115, // 139: google.cloud.visionai.v1.AppPlatform.DeleteApplication:output_type -> google.longrunning.Operation + 115, // 140: google.cloud.visionai.v1.AppPlatform.DeployApplication:output_type -> google.longrunning.Operation + 115, // 141: google.cloud.visionai.v1.AppPlatform.UndeployApplication:output_type -> google.longrunning.Operation + 115, // 142: google.cloud.visionai.v1.AppPlatform.AddApplicationStreamInput:output_type -> google.longrunning.Operation + 115, // 143: google.cloud.visionai.v1.AppPlatform.RemoveApplicationStreamInput:output_type -> google.longrunning.Operation + 115, // 144: google.cloud.visionai.v1.AppPlatform.UpdateApplicationStreamInput:output_type -> google.longrunning.Operation + 35, // 145: google.cloud.visionai.v1.AppPlatform.ListInstances:output_type -> google.cloud.visionai.v1.ListInstancesResponse + 56, // 146: google.cloud.visionai.v1.AppPlatform.GetInstance:output_type -> google.cloud.visionai.v1.Instance + 115, // 147: google.cloud.visionai.v1.AppPlatform.CreateApplicationInstances:output_type -> google.longrunning.Operation + 115, // 148: google.cloud.visionai.v1.AppPlatform.DeleteApplicationInstances:output_type -> google.longrunning.Operation + 115, // 149: google.cloud.visionai.v1.AppPlatform.UpdateApplicationInstances:output_type -> google.longrunning.Operation + 38, // 150: google.cloud.visionai.v1.AppPlatform.ListDrafts:output_type -> google.cloud.visionai.v1.ListDraftsResponse + 55, // 151: google.cloud.visionai.v1.AppPlatform.GetDraft:output_type -> google.cloud.visionai.v1.Draft + 115, // 152: google.cloud.visionai.v1.AppPlatform.CreateDraft:output_type -> google.longrunning.Operation + 115, // 153: google.cloud.visionai.v1.AppPlatform.UpdateDraft:output_type -> google.longrunning.Operation + 115, // 154: google.cloud.visionai.v1.AppPlatform.DeleteDraft:output_type -> google.longrunning.Operation + 45, // 155: google.cloud.visionai.v1.AppPlatform.ListProcessors:output_type -> google.cloud.visionai.v1.ListProcessorsResponse + 47, // 156: google.cloud.visionai.v1.AppPlatform.ListPrebuiltProcessors:output_type -> google.cloud.visionai.v1.ListPrebuiltProcessorsResponse + 58, // 157: google.cloud.visionai.v1.AppPlatform.GetProcessor:output_type -> google.cloud.visionai.v1.Processor + 115, // 158: google.cloud.visionai.v1.AppPlatform.CreateProcessor:output_type -> google.longrunning.Operation + 115, // 159: google.cloud.visionai.v1.AppPlatform.UpdateProcessor:output_type -> google.longrunning.Operation + 115, // 160: google.cloud.visionai.v1.AppPlatform.DeleteProcessor:output_type -> google.longrunning.Operation + 135, // [135:161] is the sub-list for method output_type + 109, // [109:135] is the sub-list for method input_type + 109, // [109:109] is the sub-list for extension type_name + 109, // [109:109] is the sub-list for extension extendee + 0, // [0:109] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_platform_proto_init() } +func file_google_cloud_visionai_v1_platform_proto_init() { + if File_google_cloud_visionai_v1_platform_proto != nil { + return + } + file_google_cloud_visionai_v1_annotations_proto_init() + file_google_cloud_visionai_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_platform_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApplicationInstancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApplicationInstancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationInstancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApplicationInstancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApplicationInstancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployApplicationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UndeployApplicationResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveApplicationStreamInputResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddApplicationStreamInputResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationStreamInputResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApplicationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListApplicationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UndeployApplicationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationStreamInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddApplicationStreamInputRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationStreamInputRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveApplicationStreamInputRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInstancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListInstancesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetInstanceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDraftsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDraftsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDraftRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDraftRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDraftRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationInstancesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDraftRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProcessorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListProcessorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPrebuiltProcessorsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListPrebuiltProcessorsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetProcessorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateProcessorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateProcessorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteProcessorRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Application); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationConfigs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Node); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Draft); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Instance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationInstance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Processor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorIOSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomProcessorSourceInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamWithAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationNodeAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResourceAnnotations); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VideoStreamInputConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AIEnabledDevicesInputConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MediaWarehouseConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonBlurConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OccupancyCountConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonVehicleDetectionConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PersonalProtectiveEquipmentDetectionConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeneralObjectDetectionConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BigQueryConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VertexAutoMLVisionConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VertexAutoMLVideoConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VertexCustomConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GcsOutputConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UniversalInputConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MachineSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AutoscalingMetricSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DedicatedResources); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProductRecognizerConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TagRecognizerConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TagParsingConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveApplicationStreamInputRequest_TargetStreamInput); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateApplicationInstancesRequest_UpdateApplicationInstance); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Application_ApplicationRuntimeInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Application_ApplicationRuntimeInfo_GlobalOutputResource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Application_ApplicationRuntimeInfo_MonitoringConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplicationConfigs_EventDeliveryConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Node_InputEdge); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Instance_InputResource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Instance_OutputResource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorIOSpec_GraphInputChannelSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorIOSpec_GraphOutputChannelSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorIOSpec_InstanceResourceInputBindingSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ProcessorIOSpec_InstanceResourceOutputBindingSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomProcessorSourceInfo_ProductRecognizerArtifact); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CustomProcessorSourceInfo_ModelSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamWithAnnotation_NodeAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TagParsingConfig_EntityParsingConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[42].OneofWrappers = []interface{}{ + (*Node_OutputAllOutputChannelsToStream)(nil), + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[48].OneofWrappers = []interface{}{ + (*CustomProcessorSourceInfo_VertexModel)(nil), + (*CustomProcessorSourceInfo_ProductRecognizerArtifact_)(nil), + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[49].OneofWrappers = []interface{}{ + (*ProcessorConfig_VideoStreamInputConfig)(nil), + (*ProcessorConfig_AiEnabledDevicesInputConfig)(nil), + (*ProcessorConfig_MediaWarehouseConfig)(nil), + (*ProcessorConfig_PersonBlurConfig)(nil), + (*ProcessorConfig_OccupancyCountConfig)(nil), + (*ProcessorConfig_PersonVehicleDetectionConfig)(nil), + (*ProcessorConfig_VertexAutomlVisionConfig)(nil), + (*ProcessorConfig_VertexAutomlVideoConfig)(nil), + (*ProcessorConfig_VertexCustomConfig)(nil), + (*ProcessorConfig_GeneralObjectDetectionConfig)(nil), + (*ProcessorConfig_BigQueryConfig)(nil), + (*ProcessorConfig_GcsOutputConfig)(nil), + (*ProcessorConfig_ProductRecognizerConfig)(nil), + (*ProcessorConfig_PersonalProtectiveEquipmentDetectionConfig)(nil), + (*ProcessorConfig_TagRecognizerConfig)(nil), + (*ProcessorConfig_UniversalInputConfig)(nil), + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[64].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_platform_proto_msgTypes[82].OneofWrappers = []interface{}{ + (*Instance_InputResource_InputResource)(nil), + (*Instance_InputResource_AnnotatedStream)(nil), + } + file_google_cloud_visionai_v1_platform_proto_msgTypes[88].OneofWrappers = []interface{}{ + (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ConfigTypeUri)(nil), + (*ProcessorIOSpec_InstanceResourceInputBindingSpec_ResourceTypeUri)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_platform_proto_rawDesc, + NumEnums: 12, + NumMessages: 96, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_platform_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_platform_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_platform_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_platform_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_platform_proto = out.File + file_google_cloud_visionai_v1_platform_proto_rawDesc = nil + file_google_cloud_visionai_v1_platform_proto_goTypes = nil + file_google_cloud_visionai_v1_platform_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 + +// AppPlatformClient is the client API for AppPlatform service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AppPlatformClient interface { + // Lists Applications in a given project and location. + ListApplications(ctx context.Context, in *ListApplicationsRequest, opts ...grpc.CallOption) (*ListApplicationsResponse, error) + // Gets details of a single Application. + GetApplication(ctx context.Context, in *GetApplicationRequest, opts ...grpc.CallOption) (*Application, error) + // Creates a new Application in a given project and location. + CreateApplication(ctx context.Context, in *CreateApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Application. + UpdateApplication(ctx context.Context, in *UpdateApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Application. + DeleteApplication(ctx context.Context, in *DeleteApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deploys a single Application. + DeployApplication(ctx context.Context, in *DeployApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Undeploys a single Application. + UndeployApplication(ctx context.Context, in *UndeployApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + AddApplicationStreamInput(ctx context.Context, in *AddApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Remove target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deleted. If the stream + // is not in the Application, the RPC will fail. + RemoveApplicationStreamInput(ctx context.Context, in *RemoveApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Update target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deployed. For + // CreateOrUpdate behavior, set allow_missing to true. + UpdateApplicationStreamInput(ctx context.Context, in *UpdateApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Instances in a given project and location. + ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error) + // Gets details of a single Instance. + GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + CreateApplicationInstances(ctx context.Context, in *CreateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Remove target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deleted. If the stream + // is not in the Application, the RPC will fail. + DeleteApplicationInstances(ctx context.Context, in *DeleteApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + UpdateApplicationInstances(ctx context.Context, in *UpdateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Drafts in a given project and location. + ListDrafts(ctx context.Context, in *ListDraftsRequest, opts ...grpc.CallOption) (*ListDraftsResponse, error) + // Gets details of a single Draft. + GetDraft(ctx context.Context, in *GetDraftRequest, opts ...grpc.CallOption) (*Draft, error) + // Creates a new Draft in a given project and location. + CreateDraft(ctx context.Context, in *CreateDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Draft. + UpdateDraft(ctx context.Context, in *UpdateDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Draft. + DeleteDraft(ctx context.Context, in *DeleteDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Processors in a given project and location. + ListProcessors(ctx context.Context, in *ListProcessorsRequest, opts ...grpc.CallOption) (*ListProcessorsResponse, error) + // ListPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt + // Processors. + ListPrebuiltProcessors(ctx context.Context, in *ListPrebuiltProcessorsRequest, opts ...grpc.CallOption) (*ListPrebuiltProcessorsResponse, error) + // Gets details of a single Processor. + GetProcessor(ctx context.Context, in *GetProcessorRequest, opts ...grpc.CallOption) (*Processor, error) + // Creates a new Processor in a given project and location. + CreateProcessor(ctx context.Context, in *CreateProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Processor. + UpdateProcessor(ctx context.Context, in *UpdateProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Processor. + DeleteProcessor(ctx context.Context, in *DeleteProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type appPlatformClient struct { + cc grpc.ClientConnInterface +} + +func NewAppPlatformClient(cc grpc.ClientConnInterface) AppPlatformClient { + return &appPlatformClient{cc} +} + +func (c *appPlatformClient) ListApplications(ctx context.Context, in *ListApplicationsRequest, opts ...grpc.CallOption) (*ListApplicationsResponse, error) { + out := new(ListApplicationsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListApplications", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) GetApplication(ctx context.Context, in *GetApplicationRequest, opts ...grpc.CallOption) (*Application, error) { + out := new(Application) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) CreateApplication(ctx context.Context, in *CreateApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UpdateApplication(ctx context.Context, in *UpdateApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) DeleteApplication(ctx context.Context, in *DeleteApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) DeployApplication(ctx context.Context, in *DeployApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeployApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UndeployApplication(ctx context.Context, in *UndeployApplicationRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UndeployApplication", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) AddApplicationStreamInput(ctx context.Context, in *AddApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/AddApplicationStreamInput", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) RemoveApplicationStreamInput(ctx context.Context, in *RemoveApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/RemoveApplicationStreamInput", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UpdateApplicationStreamInput(ctx context.Context, in *UpdateApplicationStreamInputRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationStreamInput", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) ListInstances(ctx context.Context, in *ListInstancesRequest, opts ...grpc.CallOption) (*ListInstancesResponse, error) { + out := new(ListInstancesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListInstances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) GetInstance(ctx context.Context, in *GetInstanceRequest, opts ...grpc.CallOption) (*Instance, error) { + out := new(Instance) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetInstance", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) CreateApplicationInstances(ctx context.Context, in *CreateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateApplicationInstances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) DeleteApplicationInstances(ctx context.Context, in *DeleteApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteApplicationInstances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UpdateApplicationInstances(ctx context.Context, in *UpdateApplicationInstancesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationInstances", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) ListDrafts(ctx context.Context, in *ListDraftsRequest, opts ...grpc.CallOption) (*ListDraftsResponse, error) { + out := new(ListDraftsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListDrafts", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) GetDraft(ctx context.Context, in *GetDraftRequest, opts ...grpc.CallOption) (*Draft, error) { + out := new(Draft) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetDraft", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) CreateDraft(ctx context.Context, in *CreateDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateDraft", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UpdateDraft(ctx context.Context, in *UpdateDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateDraft", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) DeleteDraft(ctx context.Context, in *DeleteDraftRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteDraft", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) ListProcessors(ctx context.Context, in *ListProcessorsRequest, opts ...grpc.CallOption) (*ListProcessorsResponse, error) { + out := new(ListProcessorsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListProcessors", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) ListPrebuiltProcessors(ctx context.Context, in *ListPrebuiltProcessorsRequest, opts ...grpc.CallOption) (*ListPrebuiltProcessorsResponse, error) { + out := new(ListPrebuiltProcessorsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/ListPrebuiltProcessors", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) GetProcessor(ctx context.Context, in *GetProcessorRequest, opts ...grpc.CallOption) (*Processor, error) { + out := new(Processor) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/GetProcessor", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) CreateProcessor(ctx context.Context, in *CreateProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/CreateProcessor", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) UpdateProcessor(ctx context.Context, in *UpdateProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/UpdateProcessor", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *appPlatformClient) DeleteProcessor(ctx context.Context, in *DeleteProcessorRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.AppPlatform/DeleteProcessor", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AppPlatformServer is the server API for AppPlatform service. +type AppPlatformServer interface { + // Lists Applications in a given project and location. + ListApplications(context.Context, *ListApplicationsRequest) (*ListApplicationsResponse, error) + // Gets details of a single Application. + GetApplication(context.Context, *GetApplicationRequest) (*Application, error) + // Creates a new Application in a given project and location. + CreateApplication(context.Context, *CreateApplicationRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Application. + UpdateApplication(context.Context, *UpdateApplicationRequest) (*longrunningpb.Operation, error) + // Deletes a single Application. + DeleteApplication(context.Context, *DeleteApplicationRequest) (*longrunningpb.Operation, error) + // Deploys a single Application. + DeployApplication(context.Context, *DeployApplicationRequest) (*longrunningpb.Operation, error) + // Undeploys a single Application. + UndeployApplication(context.Context, *UndeployApplicationRequest) (*longrunningpb.Operation, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + AddApplicationStreamInput(context.Context, *AddApplicationStreamInputRequest) (*longrunningpb.Operation, error) + // Remove target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deleted. If the stream + // is not in the Application, the RPC will fail. + RemoveApplicationStreamInput(context.Context, *RemoveApplicationStreamInputRequest) (*longrunningpb.Operation, error) + // Update target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deployed. For + // CreateOrUpdate behavior, set allow_missing to true. + UpdateApplicationStreamInput(context.Context, *UpdateApplicationStreamInputRequest) (*longrunningpb.Operation, error) + // Lists Instances in a given project and location. + ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error) + // Gets details of a single Instance. + GetInstance(context.Context, *GetInstanceRequest) (*Instance, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + CreateApplicationInstances(context.Context, *CreateApplicationInstancesRequest) (*longrunningpb.Operation, error) + // Remove target stream input to the Application, if the Application is + // deployed, the corresponding instance based will be deleted. If the stream + // is not in the Application, the RPC will fail. + DeleteApplicationInstances(context.Context, *DeleteApplicationInstancesRequest) (*longrunningpb.Operation, error) + // Adds target stream input to the Application. + // If the Application is deployed, the corresponding new Application instance + // will be created. If the stream has already been in the Application, the RPC + // will fail. + UpdateApplicationInstances(context.Context, *UpdateApplicationInstancesRequest) (*longrunningpb.Operation, error) + // Lists Drafts in a given project and location. + ListDrafts(context.Context, *ListDraftsRequest) (*ListDraftsResponse, error) + // Gets details of a single Draft. + GetDraft(context.Context, *GetDraftRequest) (*Draft, error) + // Creates a new Draft in a given project and location. + CreateDraft(context.Context, *CreateDraftRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Draft. + UpdateDraft(context.Context, *UpdateDraftRequest) (*longrunningpb.Operation, error) + // Deletes a single Draft. + DeleteDraft(context.Context, *DeleteDraftRequest) (*longrunningpb.Operation, error) + // Lists Processors in a given project and location. + ListProcessors(context.Context, *ListProcessorsRequest) (*ListProcessorsResponse, error) + // ListPrebuiltProcessors is a custom pass-through verb that Lists Prebuilt + // Processors. + ListPrebuiltProcessors(context.Context, *ListPrebuiltProcessorsRequest) (*ListPrebuiltProcessorsResponse, error) + // Gets details of a single Processor. + GetProcessor(context.Context, *GetProcessorRequest) (*Processor, error) + // Creates a new Processor in a given project and location. + CreateProcessor(context.Context, *CreateProcessorRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Processor. + UpdateProcessor(context.Context, *UpdateProcessorRequest) (*longrunningpb.Operation, error) + // Deletes a single Processor. + DeleteProcessor(context.Context, *DeleteProcessorRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedAppPlatformServer can be embedded to have forward compatible implementations. +type UnimplementedAppPlatformServer struct { +} + +func (*UnimplementedAppPlatformServer) ListApplications(context.Context, *ListApplicationsRequest) (*ListApplicationsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListApplications not implemented") +} +func (*UnimplementedAppPlatformServer) GetApplication(context.Context, *GetApplicationRequest) (*Application, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetApplication not implemented") +} +func (*UnimplementedAppPlatformServer) CreateApplication(context.Context, *CreateApplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApplication not implemented") +} +func (*UnimplementedAppPlatformServer) UpdateApplication(context.Context, *UpdateApplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApplication not implemented") +} +func (*UnimplementedAppPlatformServer) DeleteApplication(context.Context, *DeleteApplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApplication not implemented") +} +func (*UnimplementedAppPlatformServer) DeployApplication(context.Context, *DeployApplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeployApplication not implemented") +} +func (*UnimplementedAppPlatformServer) UndeployApplication(context.Context, *UndeployApplicationRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UndeployApplication not implemented") +} +func (*UnimplementedAppPlatformServer) AddApplicationStreamInput(context.Context, *AddApplicationStreamInputRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddApplicationStreamInput not implemented") +} +func (*UnimplementedAppPlatformServer) RemoveApplicationStreamInput(context.Context, *RemoveApplicationStreamInputRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveApplicationStreamInput not implemented") +} +func (*UnimplementedAppPlatformServer) UpdateApplicationStreamInput(context.Context, *UpdateApplicationStreamInputRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationStreamInput not implemented") +} +func (*UnimplementedAppPlatformServer) ListInstances(context.Context, *ListInstancesRequest) (*ListInstancesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListInstances not implemented") +} +func (*UnimplementedAppPlatformServer) GetInstance(context.Context, *GetInstanceRequest) (*Instance, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInstance not implemented") +} +func (*UnimplementedAppPlatformServer) CreateApplicationInstances(context.Context, *CreateApplicationInstancesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateApplicationInstances not implemented") +} +func (*UnimplementedAppPlatformServer) DeleteApplicationInstances(context.Context, *DeleteApplicationInstancesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteApplicationInstances not implemented") +} +func (*UnimplementedAppPlatformServer) UpdateApplicationInstances(context.Context, *UpdateApplicationInstancesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateApplicationInstances not implemented") +} +func (*UnimplementedAppPlatformServer) ListDrafts(context.Context, *ListDraftsRequest) (*ListDraftsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListDrafts not implemented") +} +func (*UnimplementedAppPlatformServer) GetDraft(context.Context, *GetDraftRequest) (*Draft, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDraft not implemented") +} +func (*UnimplementedAppPlatformServer) CreateDraft(context.Context, *CreateDraftRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateDraft not implemented") +} +func (*UnimplementedAppPlatformServer) UpdateDraft(context.Context, *UpdateDraftRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateDraft not implemented") +} +func (*UnimplementedAppPlatformServer) DeleteDraft(context.Context, *DeleteDraftRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteDraft not implemented") +} +func (*UnimplementedAppPlatformServer) ListProcessors(context.Context, *ListProcessorsRequest) (*ListProcessorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListProcessors not implemented") +} +func (*UnimplementedAppPlatformServer) ListPrebuiltProcessors(context.Context, *ListPrebuiltProcessorsRequest) (*ListPrebuiltProcessorsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListPrebuiltProcessors not implemented") +} +func (*UnimplementedAppPlatformServer) GetProcessor(context.Context, *GetProcessorRequest) (*Processor, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetProcessor not implemented") +} +func (*UnimplementedAppPlatformServer) CreateProcessor(context.Context, *CreateProcessorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateProcessor not implemented") +} +func (*UnimplementedAppPlatformServer) UpdateProcessor(context.Context, *UpdateProcessorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProcessor not implemented") +} +func (*UnimplementedAppPlatformServer) DeleteProcessor(context.Context, *DeleteProcessorRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProcessor not implemented") +} + +func RegisterAppPlatformServer(s *grpc.Server, srv AppPlatformServer) { + s.RegisterService(&_AppPlatform_serviceDesc, srv) +} + +func _AppPlatform_ListApplications_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListApplicationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).ListApplications(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListApplications", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).ListApplications(ctx, req.(*ListApplicationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_GetApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).GetApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).GetApplication(ctx, req.(*GetApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_CreateApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).CreateApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).CreateApplication(ctx, req.(*CreateApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UpdateApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UpdateApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UpdateApplication(ctx, req.(*UpdateApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_DeleteApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).DeleteApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).DeleteApplication(ctx, req.(*DeleteApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_DeployApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeployApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).DeployApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeployApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).DeployApplication(ctx, req.(*DeployApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UndeployApplication_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UndeployApplicationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UndeployApplication(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UndeployApplication", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UndeployApplication(ctx, req.(*UndeployApplicationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_AddApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddApplicationStreamInputRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).AddApplicationStreamInput(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/AddApplicationStreamInput", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).AddApplicationStreamInput(ctx, req.(*AddApplicationStreamInputRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_RemoveApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveApplicationStreamInputRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).RemoveApplicationStreamInput(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/RemoveApplicationStreamInput", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).RemoveApplicationStreamInput(ctx, req.(*RemoveApplicationStreamInputRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UpdateApplicationStreamInput_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApplicationStreamInputRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UpdateApplicationStreamInput(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationStreamInput", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UpdateApplicationStreamInput(ctx, req.(*UpdateApplicationStreamInputRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_ListInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListInstancesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).ListInstances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListInstances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).ListInstances(ctx, req.(*ListInstancesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_GetInstance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInstanceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).GetInstance(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetInstance", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).GetInstance(ctx, req.(*GetInstanceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_CreateApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateApplicationInstancesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).CreateApplicationInstances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateApplicationInstances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).CreateApplicationInstances(ctx, req.(*CreateApplicationInstancesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_DeleteApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteApplicationInstancesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).DeleteApplicationInstances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteApplicationInstances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).DeleteApplicationInstances(ctx, req.(*DeleteApplicationInstancesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UpdateApplicationInstances_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateApplicationInstancesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UpdateApplicationInstances(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateApplicationInstances", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UpdateApplicationInstances(ctx, req.(*UpdateApplicationInstancesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_ListDrafts_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDraftsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).ListDrafts(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListDrafts", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).ListDrafts(ctx, req.(*ListDraftsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_GetDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDraftRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).GetDraft(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetDraft", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).GetDraft(ctx, req.(*GetDraftRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_CreateDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDraftRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).CreateDraft(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateDraft", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).CreateDraft(ctx, req.(*CreateDraftRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UpdateDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDraftRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UpdateDraft(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateDraft", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UpdateDraft(ctx, req.(*UpdateDraftRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_DeleteDraft_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDraftRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).DeleteDraft(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteDraft", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).DeleteDraft(ctx, req.(*DeleteDraftRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_ListProcessors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListProcessorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).ListProcessors(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListProcessors", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).ListProcessors(ctx, req.(*ListProcessorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_ListPrebuiltProcessors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListPrebuiltProcessorsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).ListPrebuiltProcessors(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/ListPrebuiltProcessors", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).ListPrebuiltProcessors(ctx, req.(*ListPrebuiltProcessorsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_GetProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetProcessorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).GetProcessor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/GetProcessor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).GetProcessor(ctx, req.(*GetProcessorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_CreateProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateProcessorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).CreateProcessor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/CreateProcessor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).CreateProcessor(ctx, req.(*CreateProcessorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_UpdateProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateProcessorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).UpdateProcessor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/UpdateProcessor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).UpdateProcessor(ctx, req.(*UpdateProcessorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AppPlatform_DeleteProcessor_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteProcessorRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AppPlatformServer).DeleteProcessor(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.AppPlatform/DeleteProcessor", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AppPlatformServer).DeleteProcessor(ctx, req.(*DeleteProcessorRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _AppPlatform_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.AppPlatform", + HandlerType: (*AppPlatformServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListApplications", + Handler: _AppPlatform_ListApplications_Handler, + }, + { + MethodName: "GetApplication", + Handler: _AppPlatform_GetApplication_Handler, + }, + { + MethodName: "CreateApplication", + Handler: _AppPlatform_CreateApplication_Handler, + }, + { + MethodName: "UpdateApplication", + Handler: _AppPlatform_UpdateApplication_Handler, + }, + { + MethodName: "DeleteApplication", + Handler: _AppPlatform_DeleteApplication_Handler, + }, + { + MethodName: "DeployApplication", + Handler: _AppPlatform_DeployApplication_Handler, + }, + { + MethodName: "UndeployApplication", + Handler: _AppPlatform_UndeployApplication_Handler, + }, + { + MethodName: "AddApplicationStreamInput", + Handler: _AppPlatform_AddApplicationStreamInput_Handler, + }, + { + MethodName: "RemoveApplicationStreamInput", + Handler: _AppPlatform_RemoveApplicationStreamInput_Handler, + }, + { + MethodName: "UpdateApplicationStreamInput", + Handler: _AppPlatform_UpdateApplicationStreamInput_Handler, + }, + { + MethodName: "ListInstances", + Handler: _AppPlatform_ListInstances_Handler, + }, + { + MethodName: "GetInstance", + Handler: _AppPlatform_GetInstance_Handler, + }, + { + MethodName: "CreateApplicationInstances", + Handler: _AppPlatform_CreateApplicationInstances_Handler, + }, + { + MethodName: "DeleteApplicationInstances", + Handler: _AppPlatform_DeleteApplicationInstances_Handler, + }, + { + MethodName: "UpdateApplicationInstances", + Handler: _AppPlatform_UpdateApplicationInstances_Handler, + }, + { + MethodName: "ListDrafts", + Handler: _AppPlatform_ListDrafts_Handler, + }, + { + MethodName: "GetDraft", + Handler: _AppPlatform_GetDraft_Handler, + }, + { + MethodName: "CreateDraft", + Handler: _AppPlatform_CreateDraft_Handler, + }, + { + MethodName: "UpdateDraft", + Handler: _AppPlatform_UpdateDraft_Handler, + }, + { + MethodName: "DeleteDraft", + Handler: _AppPlatform_DeleteDraft_Handler, + }, + { + MethodName: "ListProcessors", + Handler: _AppPlatform_ListProcessors_Handler, + }, + { + MethodName: "ListPrebuiltProcessors", + Handler: _AppPlatform_ListPrebuiltProcessors_Handler, + }, + { + MethodName: "GetProcessor", + Handler: _AppPlatform_GetProcessor_Handler, + }, + { + MethodName: "CreateProcessor", + Handler: _AppPlatform_CreateProcessor_Handler, + }, + { + MethodName: "UpdateProcessor", + Handler: _AppPlatform_UpdateProcessor_Handler, + }, + { + MethodName: "DeleteProcessor", + Handler: _AppPlatform_DeleteProcessor_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/visionai/v1/platform.proto", +} diff --git a/visionai/apiv1/visionaipb/streaming_resources.pb.go b/visionai/apiv1/visionaipb/streaming_resources.pb.go new file mode 100755 index 00000000000..a2713c28ee8 --- /dev/null +++ b/visionai/apiv1/visionaipb/streaming_resources.pb.go @@ -0,0 +1,949 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/streaming_resources.proto + +package visionaipb + +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" + durationpb "google.golang.org/protobuf/types/known/durationpb" + structpb "google.golang.org/protobuf/types/known/structpb" + 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) +) + +// The descriptor for a gstreamer buffer payload. +type GstreamerBufferDescriptor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The caps string of the payload. + CapsString string `protobuf:"bytes,1,opt,name=caps_string,json=capsString,proto3" json:"caps_string,omitempty"` + // Whether the buffer is a key frame. + IsKeyFrame bool `protobuf:"varint,2,opt,name=is_key_frame,json=isKeyFrame,proto3" json:"is_key_frame,omitempty"` + // PTS of the frame. + PtsTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=pts_time,json=ptsTime,proto3" json:"pts_time,omitempty"` + // DTS of the frame. + DtsTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=dts_time,json=dtsTime,proto3" json:"dts_time,omitempty"` + // Duration of the frame. + Duration *durationpb.Duration `protobuf:"bytes,5,opt,name=duration,proto3" json:"duration,omitempty"` +} + +func (x *GstreamerBufferDescriptor) Reset() { + *x = GstreamerBufferDescriptor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GstreamerBufferDescriptor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GstreamerBufferDescriptor) ProtoMessage() {} + +func (x *GstreamerBufferDescriptor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 GstreamerBufferDescriptor.ProtoReflect.Descriptor instead. +func (*GstreamerBufferDescriptor) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *GstreamerBufferDescriptor) GetCapsString() string { + if x != nil { + return x.CapsString + } + return "" +} + +func (x *GstreamerBufferDescriptor) GetIsKeyFrame() bool { + if x != nil { + return x.IsKeyFrame + } + return false +} + +func (x *GstreamerBufferDescriptor) GetPtsTime() *timestamppb.Timestamp { + if x != nil { + return x.PtsTime + } + return nil +} + +func (x *GstreamerBufferDescriptor) GetDtsTime() *timestamppb.Timestamp { + if x != nil { + return x.DtsTime + } + return nil +} + +func (x *GstreamerBufferDescriptor) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +// The descriptor for a raw image. +type RawImageDescriptor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Raw image format. Its possible values are: "srgb". + Format string `protobuf:"bytes,1,opt,name=format,proto3" json:"format,omitempty"` + // The height of the image. + Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + // The width of the image. + Width int32 `protobuf:"varint,3,opt,name=width,proto3" json:"width,omitempty"` +} + +func (x *RawImageDescriptor) Reset() { + *x = RawImageDescriptor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RawImageDescriptor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RawImageDescriptor) ProtoMessage() {} + +func (x *RawImageDescriptor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 RawImageDescriptor.ProtoReflect.Descriptor instead. +func (*RawImageDescriptor) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *RawImageDescriptor) GetFormat() string { + if x != nil { + return x.Format + } + return "" +} + +func (x *RawImageDescriptor) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *RawImageDescriptor) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +// The message that represents the data type of a packet. +type PacketType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type class of the packet. Its possible values are: + // "gst", "protobuf", and "string". + TypeClass string `protobuf:"bytes,1,opt,name=type_class,json=typeClass,proto3" json:"type_class,omitempty"` + // The type descriptor. + TypeDescriptor *PacketType_TypeDescriptor `protobuf:"bytes,2,opt,name=type_descriptor,json=typeDescriptor,proto3" json:"type_descriptor,omitempty"` +} + +func (x *PacketType) Reset() { + *x = PacketType{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PacketType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PacketType) ProtoMessage() {} + +func (x *PacketType) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 PacketType.ProtoReflect.Descriptor instead. +func (*PacketType) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *PacketType) GetTypeClass() string { + if x != nil { + return x.TypeClass + } + return "" +} + +func (x *PacketType) GetTypeDescriptor() *PacketType_TypeDescriptor { + if x != nil { + return x.TypeDescriptor + } + return nil +} + +// The message that represents server metadata. +type ServerMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The offset position for the packet in its stream. + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` + // The timestamp at which the stream server receives this packet. This is + // based on the local clock of on the server side. It is guaranteed to be + // monotonically increasing for the packets within each session; however + // this timestamp is not comparable across packets sent to the same stream + // different sessions. Session here refers to one individual gRPC streaming + // request to the stream server. + IngestTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=ingest_time,json=ingestTime,proto3" json:"ingest_time,omitempty"` +} + +func (x *ServerMetadata) Reset() { + *x = ServerMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ServerMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ServerMetadata) ProtoMessage() {} + +func (x *ServerMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 ServerMetadata.ProtoReflect.Descriptor instead. +func (*ServerMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{3} +} + +func (x *ServerMetadata) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +func (x *ServerMetadata) GetIngestTime() *timestamppb.Timestamp { + if x != nil { + return x.IngestTime + } + return nil +} + +// The message that represents series metadata. +type SeriesMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Series name. It's in the format of + // "projects/{project}/locations/{location}/clusters/{cluster}/series/{stream}". + Series string `protobuf:"bytes,1,opt,name=series,proto3" json:"series,omitempty"` +} + +func (x *SeriesMetadata) Reset() { + *x = SeriesMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SeriesMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SeriesMetadata) ProtoMessage() {} + +func (x *SeriesMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 SeriesMetadata.ProtoReflect.Descriptor instead. +func (*SeriesMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{4} +} + +func (x *SeriesMetadata) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +// The message that represents packet header. +type PacketHeader struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Input only. The capture time of the packet. + CaptureTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=capture_time,json=captureTime,proto3" json:"capture_time,omitempty"` + // Input only. Immutable. The type of the payload. + Type *PacketType `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` + // Input only. This field is for users to attach user managed metadata. + Metadata *structpb.Struct `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"` + // Output only. Metadata that the server appends to each packet before sending + // it to receivers. You don't need to set a value for this field when sending + // packets. + ServerMetadata *ServerMetadata `protobuf:"bytes,4,opt,name=server_metadata,json=serverMetadata,proto3" json:"server_metadata,omitempty"` + // Input only. Immutable. Metadata that the server needs to know where to + // write the packets to. It's only required for the first packet. + SeriesMetadata *SeriesMetadata `protobuf:"bytes,5,opt,name=series_metadata,json=seriesMetadata,proto3" json:"series_metadata,omitempty"` + // Immutable. Packet flag set. SDK will set the flag automatically. + Flags int32 `protobuf:"varint,6,opt,name=flags,proto3" json:"flags,omitempty"` + // Immutable. Header string for tracing across services. It should be set when + // the packet is first arrived in the stream server. + // + // The input format is a lowercase hex string: + // - version_id: 1 byte, currently must be zero - hex encoded (2 characters) + // - trace_id: 16 bytes (opaque blob) - hex encoded (32 characters) + // - span_id: 8 bytes (opaque blob) - hex encoded (16 characters) + // - trace_options: 1 byte (LSB means tracing enabled) - hex encoded (2 + // characters) + // + // Example: "00-404142434445464748494a4b4c4d4e4f-6162636465666768-01" + // + // v trace_id span_id options + TraceContext string `protobuf:"bytes,7,opt,name=trace_context,json=traceContext,proto3" json:"trace_context,omitempty"` +} + +func (x *PacketHeader) Reset() { + *x = PacketHeader{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PacketHeader) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PacketHeader) ProtoMessage() {} + +func (x *PacketHeader) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 PacketHeader.ProtoReflect.Descriptor instead. +func (*PacketHeader) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{5} +} + +func (x *PacketHeader) GetCaptureTime() *timestamppb.Timestamp { + if x != nil { + return x.CaptureTime + } + return nil +} + +func (x *PacketHeader) GetType() *PacketType { + if x != nil { + return x.Type + } + return nil +} + +func (x *PacketHeader) GetMetadata() *structpb.Struct { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *PacketHeader) GetServerMetadata() *ServerMetadata { + if x != nil { + return x.ServerMetadata + } + return nil +} + +func (x *PacketHeader) GetSeriesMetadata() *SeriesMetadata { + if x != nil { + return x.SeriesMetadata + } + return nil +} + +func (x *PacketHeader) GetFlags() int32 { + if x != nil { + return x.Flags + } + return 0 +} + +func (x *PacketHeader) GetTraceContext() string { + if x != nil { + return x.TraceContext + } + return "" +} + +// The quanta of datum that the series accepts. +type Packet struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The packet header. + Header *PacketHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"` + // The payload of the packet. + Payload []byte `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *Packet) Reset() { + *x = Packet{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Packet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Packet) ProtoMessage() {} + +func (x *Packet) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 Packet.ProtoReflect.Descriptor instead. +func (*Packet) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{6} +} + +func (x *Packet) GetHeader() *PacketHeader { + if x != nil { + return x.Header + } + return nil +} + +func (x *Packet) GetPayload() []byte { + if x != nil { + return x.Payload + } + return nil +} + +// The message that fully specifies the type of the packet. +type PacketType_TypeDescriptor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Detailed information about the type. + // + // It is non-empty only for specific type class codecs. Needed only when the + // type string alone is not enough to disambiguate the specific type. + // + // Types that are assignable to TypeDetails: + // + // *PacketType_TypeDescriptor_GstreamerBufferDescriptor + // *PacketType_TypeDescriptor_RawImageDescriptor + TypeDetails isPacketType_TypeDescriptor_TypeDetails `protobuf_oneof:"type_details"` + // The type of the packet. Its possible values is codec dependent. + // + // The fully qualified type name is always the concatenation of the + // value in `type_class` together with the value in `type`, separated by a + // '/'. + // + // Note that specific codecs can define their own type hierarchy, and so the + // type string here can in fact be separated by multiple '/'s of its own. + // + // Please see the open source SDK for specific codec documentation. + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` +} + +func (x *PacketType_TypeDescriptor) Reset() { + *x = PacketType_TypeDescriptor{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PacketType_TypeDescriptor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PacketType_TypeDescriptor) ProtoMessage() {} + +func (x *PacketType_TypeDescriptor) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_resources_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 PacketType_TypeDescriptor.ProtoReflect.Descriptor instead. +func (*PacketType_TypeDescriptor) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP(), []int{2, 0} +} + +func (m *PacketType_TypeDescriptor) GetTypeDetails() isPacketType_TypeDescriptor_TypeDetails { + if m != nil { + return m.TypeDetails + } + return nil +} + +func (x *PacketType_TypeDescriptor) GetGstreamerBufferDescriptor() *GstreamerBufferDescriptor { + if x, ok := x.GetTypeDetails().(*PacketType_TypeDescriptor_GstreamerBufferDescriptor); ok { + return x.GstreamerBufferDescriptor + } + return nil +} + +func (x *PacketType_TypeDescriptor) GetRawImageDescriptor() *RawImageDescriptor { + if x, ok := x.GetTypeDetails().(*PacketType_TypeDescriptor_RawImageDescriptor); ok { + return x.RawImageDescriptor + } + return nil +} + +func (x *PacketType_TypeDescriptor) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +type isPacketType_TypeDescriptor_TypeDetails interface { + isPacketType_TypeDescriptor_TypeDetails() +} + +type PacketType_TypeDescriptor_GstreamerBufferDescriptor struct { + // GstreamerBufferDescriptor is the descriptor for gstreamer buffer type. + GstreamerBufferDescriptor *GstreamerBufferDescriptor `protobuf:"bytes,2,opt,name=gstreamer_buffer_descriptor,json=gstreamerBufferDescriptor,proto3,oneof"` +} + +type PacketType_TypeDescriptor_RawImageDescriptor struct { + // RawImageDescriptor is the descriptor for the raw image type. + RawImageDescriptor *RawImageDescriptor `protobuf:"bytes,3,opt,name=raw_image_descriptor,json=rawImageDescriptor,proto3,oneof"` +} + +func (*PacketType_TypeDescriptor_GstreamerBufferDescriptor) isPacketType_TypeDescriptor_TypeDetails() { +} + +func (*PacketType_TypeDescriptor_RawImageDescriptor) isPacketType_TypeDescriptor_TypeDetails() {} + +var File_google_cloud_visionai_v1_streaming_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_streaming_resources_proto_rawDesc = []byte{ + 0x0a, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 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, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x70, 0x73, 0x5f, + 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, + 0x70, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x20, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x6b, + 0x65, 0x79, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x69, 0x73, 0x4b, 0x65, 0x79, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x70, 0x74, + 0x73, 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, 0x52, 0x07, 0x70, 0x74, 0x73, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x74, 0x73, 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, 0x52, + 0x07, 0x64, 0x74, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 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, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x5a, 0x0a, 0x12, 0x52, 0x61, 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x22, 0x99, 0x03, 0x0a, 0x0a, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x79, + 0x70, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x74, 0x79, 0x70, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x5c, 0x0a, 0x0f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0e, 0x74, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x1a, 0x8d, 0x02, 0x0a, 0x0e, 0x54, 0x79, 0x70, 0x65, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x12, 0x75, 0x0a, 0x1b, 0x67, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x65, 0x72, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x19, 0x67, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x65, + 0x72, 0x42, 0x75, 0x66, 0x66, 0x65, 0x72, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, + 0x72, 0x12, 0x60, 0x0a, 0x14, 0x72, 0x61, 0x77, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x48, 0x00, 0x52, + 0x12, 0x72, 0x61, 0x77, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x74, 0x79, 0x70, 0x65, 0x5f, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x22, 0x65, 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x3b, 0x0a, 0x0b, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 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, 0x52, 0x0a, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x4d, + 0x0a, 0x0e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x3b, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x23, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0xc6, 0x03, + 0x0a, 0x0c, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x42, + 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x03, 0xe0, 0x41, 0x04, 0x52, 0x0b, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x42, 0x06, 0xe0, 0x41, 0x04, 0xe0, 0x41, 0x05, 0x52, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 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, 0x42, + 0x03, 0xe0, 0x41, 0x04, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x56, + 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x59, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0xe0, 0x41, 0x04, 0xe0, 0x41, + 0x05, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x28, 0x0a, 0x0d, + 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x63, 0x65, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x62, 0x0a, 0x06, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x12, 0x3e, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0xc7, 0x01, 0x0a, 0x1c, 0x63, + 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x17, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, + 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_streaming_resources_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_streaming_resources_proto_rawDescData = file_google_cloud_visionai_v1_streaming_resources_proto_rawDesc +) + +func file_google_cloud_visionai_v1_streaming_resources_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_streaming_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_streaming_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_streaming_resources_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_streaming_resources_proto_rawDescData +} + +var file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_google_cloud_visionai_v1_streaming_resources_proto_goTypes = []interface{}{ + (*GstreamerBufferDescriptor)(nil), // 0: google.cloud.visionai.v1.GstreamerBufferDescriptor + (*RawImageDescriptor)(nil), // 1: google.cloud.visionai.v1.RawImageDescriptor + (*PacketType)(nil), // 2: google.cloud.visionai.v1.PacketType + (*ServerMetadata)(nil), // 3: google.cloud.visionai.v1.ServerMetadata + (*SeriesMetadata)(nil), // 4: google.cloud.visionai.v1.SeriesMetadata + (*PacketHeader)(nil), // 5: google.cloud.visionai.v1.PacketHeader + (*Packet)(nil), // 6: google.cloud.visionai.v1.Packet + (*PacketType_TypeDescriptor)(nil), // 7: google.cloud.visionai.v1.PacketType.TypeDescriptor + (*timestamppb.Timestamp)(nil), // 8: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 9: google.protobuf.Duration + (*structpb.Struct)(nil), // 10: google.protobuf.Struct +} +var file_google_cloud_visionai_v1_streaming_resources_proto_depIdxs = []int32{ + 8, // 0: google.cloud.visionai.v1.GstreamerBufferDescriptor.pts_time:type_name -> google.protobuf.Timestamp + 8, // 1: google.cloud.visionai.v1.GstreamerBufferDescriptor.dts_time:type_name -> google.protobuf.Timestamp + 9, // 2: google.cloud.visionai.v1.GstreamerBufferDescriptor.duration:type_name -> google.protobuf.Duration + 7, // 3: google.cloud.visionai.v1.PacketType.type_descriptor:type_name -> google.cloud.visionai.v1.PacketType.TypeDescriptor + 8, // 4: google.cloud.visionai.v1.ServerMetadata.ingest_time:type_name -> google.protobuf.Timestamp + 8, // 5: google.cloud.visionai.v1.PacketHeader.capture_time:type_name -> google.protobuf.Timestamp + 2, // 6: google.cloud.visionai.v1.PacketHeader.type:type_name -> google.cloud.visionai.v1.PacketType + 10, // 7: google.cloud.visionai.v1.PacketHeader.metadata:type_name -> google.protobuf.Struct + 3, // 8: google.cloud.visionai.v1.PacketHeader.server_metadata:type_name -> google.cloud.visionai.v1.ServerMetadata + 4, // 9: google.cloud.visionai.v1.PacketHeader.series_metadata:type_name -> google.cloud.visionai.v1.SeriesMetadata + 5, // 10: google.cloud.visionai.v1.Packet.header:type_name -> google.cloud.visionai.v1.PacketHeader + 0, // 11: google.cloud.visionai.v1.PacketType.TypeDescriptor.gstreamer_buffer_descriptor:type_name -> google.cloud.visionai.v1.GstreamerBufferDescriptor + 1, // 12: google.cloud.visionai.v1.PacketType.TypeDescriptor.raw_image_descriptor:type_name -> google.cloud.visionai.v1.RawImageDescriptor + 13, // [13:13] is the sub-list for method output_type + 13, // [13:13] 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_visionai_v1_streaming_resources_proto_init() } +func file_google_cloud_visionai_v1_streaming_resources_proto_init() { + if File_google_cloud_visionai_v1_streaming_resources_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GstreamerBufferDescriptor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RawImageDescriptor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PacketType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ServerMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SeriesMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PacketHeader); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Packet); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PacketType_TypeDescriptor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes[7].OneofWrappers = []interface{}{ + (*PacketType_TypeDescriptor_GstreamerBufferDescriptor)(nil), + (*PacketType_TypeDescriptor_RawImageDescriptor)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_streaming_resources_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_streaming_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_streaming_resources_proto_depIdxs, + MessageInfos: file_google_cloud_visionai_v1_streaming_resources_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_streaming_resources_proto = out.File + file_google_cloud_visionai_v1_streaming_resources_proto_rawDesc = nil + file_google_cloud_visionai_v1_streaming_resources_proto_goTypes = nil + file_google_cloud_visionai_v1_streaming_resources_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/streaming_service.pb.go b/visionai/apiv1/visionaipb/streaming_service.pb.go new file mode 100755 index 00000000000..f57d464103c --- /dev/null +++ b/visionai/apiv1/visionaipb/streaming_service.pb.go @@ -0,0 +1,2773 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/streaming_service.proto + +package visionaipb + +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" + durationpb "google.golang.org/protobuf/types/known/durationpb" + 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) +) + +// The lease type. +type LeaseType int32 + +const ( + // Lease type unspecified. + LeaseType_LEASE_TYPE_UNSPECIFIED LeaseType = 0 + // Lease for stream reader. + LeaseType_LEASE_TYPE_READER LeaseType = 1 + // Lease for stream writer. + LeaseType_LEASE_TYPE_WRITER LeaseType = 2 +) + +// Enum value maps for LeaseType. +var ( + LeaseType_name = map[int32]string{ + 0: "LEASE_TYPE_UNSPECIFIED", + 1: "LEASE_TYPE_READER", + 2: "LEASE_TYPE_WRITER", + } + LeaseType_value = map[string]int32{ + "LEASE_TYPE_UNSPECIFIED": 0, + "LEASE_TYPE_READER": 1, + "LEASE_TYPE_WRITER": 2, + } +) + +func (x LeaseType) Enum() *LeaseType { + p := new(LeaseType) + *p = x + return p +} + +func (x LeaseType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LeaseType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_streaming_service_proto_enumTypes[0].Descriptor() +} + +func (LeaseType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_streaming_service_proto_enumTypes[0] +} + +func (x LeaseType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LeaseType.Descriptor instead. +func (LeaseType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{0} +} + +// Request message for ReceiveEvents. +type ReceiveEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Request: + // + // *ReceiveEventsRequest_SetupRequest_ + // *ReceiveEventsRequest_CommitRequest + Request isReceiveEventsRequest_Request `protobuf_oneof:"request"` +} + +func (x *ReceiveEventsRequest) Reset() { + *x = ReceiveEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveEventsRequest) ProtoMessage() {} + +func (x *ReceiveEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceiveEventsRequest.ProtoReflect.Descriptor instead. +func (*ReceiveEventsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{0} +} + +func (m *ReceiveEventsRequest) GetRequest() isReceiveEventsRequest_Request { + if m != nil { + return m.Request + } + return nil +} + +func (x *ReceiveEventsRequest) GetSetupRequest() *ReceiveEventsRequest_SetupRequest { + if x, ok := x.GetRequest().(*ReceiveEventsRequest_SetupRequest_); ok { + return x.SetupRequest + } + return nil +} + +func (x *ReceiveEventsRequest) GetCommitRequest() *CommitRequest { + if x, ok := x.GetRequest().(*ReceiveEventsRequest_CommitRequest); ok { + return x.CommitRequest + } + return nil +} + +type isReceiveEventsRequest_Request interface { + isReceiveEventsRequest_Request() +} + +type ReceiveEventsRequest_SetupRequest_ struct { + // The setup request to setup the RPC connection. + SetupRequest *ReceiveEventsRequest_SetupRequest `protobuf:"bytes,1,opt,name=setup_request,json=setupRequest,proto3,oneof"` +} + +type ReceiveEventsRequest_CommitRequest struct { + // This request checkpoints the consumer's read progress. + CommitRequest *CommitRequest `protobuf:"bytes,2,opt,name=commit_request,json=commitRequest,proto3,oneof"` +} + +func (*ReceiveEventsRequest_SetupRequest_) isReceiveEventsRequest_Request() {} + +func (*ReceiveEventsRequest_CommitRequest) isReceiveEventsRequest_Request() {} + +// The event update message. +type EventUpdate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The name of the stream that the event is attached to. + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` + // The name of the event. + Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` + // The name of the series. + Series string `protobuf:"bytes,3,opt,name=series,proto3" json:"series,omitempty"` + // The timestamp when the Event update happens. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The offset of the message that will be used to acknowledge of the message + // receiving. + Offset int64 `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *EventUpdate) Reset() { + *x = EventUpdate{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EventUpdate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EventUpdate) ProtoMessage() {} + +func (x *EventUpdate) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 EventUpdate.ProtoReflect.Descriptor instead. +func (*EventUpdate) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{1} +} + +func (x *EventUpdate) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *EventUpdate) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +func (x *EventUpdate) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *EventUpdate) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *EventUpdate) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +// Control message for a ReceiveEventsResponse. +type ReceiveEventsControlResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Possible control messages. + // + // Types that are assignable to Control: + // + // *ReceiveEventsControlResponse_Heartbeat + // *ReceiveEventsControlResponse_WritesDoneRequest + Control isReceiveEventsControlResponse_Control `protobuf_oneof:"control"` +} + +func (x *ReceiveEventsControlResponse) Reset() { + *x = ReceiveEventsControlResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveEventsControlResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveEventsControlResponse) ProtoMessage() {} + +func (x *ReceiveEventsControlResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceiveEventsControlResponse.ProtoReflect.Descriptor instead. +func (*ReceiveEventsControlResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{2} +} + +func (m *ReceiveEventsControlResponse) GetControl() isReceiveEventsControlResponse_Control { + if m != nil { + return m.Control + } + return nil +} + +func (x *ReceiveEventsControlResponse) GetHeartbeat() bool { + if x, ok := x.GetControl().(*ReceiveEventsControlResponse_Heartbeat); ok { + return x.Heartbeat + } + return false +} + +func (x *ReceiveEventsControlResponse) GetWritesDoneRequest() bool { + if x, ok := x.GetControl().(*ReceiveEventsControlResponse_WritesDoneRequest); ok { + return x.WritesDoneRequest + } + return false +} + +type isReceiveEventsControlResponse_Control interface { + isReceiveEventsControlResponse_Control() +} + +type ReceiveEventsControlResponse_Heartbeat struct { + // A server heartbeat. + Heartbeat bool `protobuf:"varint,1,opt,name=heartbeat,proto3,oneof"` +} + +type ReceiveEventsControlResponse_WritesDoneRequest struct { + // A request to the receiver to complete any final writes followed by a + // `WritesDone`; e.g. issue any final `CommitRequest`s. + // + // May be ignored if `WritesDone` has already been issued at any point + // prior to receiving this message. + // + // If `WritesDone` does not get issued, then the server will forcefully + // cancel the connection, and the receiver will likely receive an + // uninformative after `Read` returns `false` and `Finish` is called. + WritesDoneRequest bool `protobuf:"varint,2,opt,name=writes_done_request,json=writesDoneRequest,proto3,oneof"` +} + +func (*ReceiveEventsControlResponse_Heartbeat) isReceiveEventsControlResponse_Control() {} + +func (*ReceiveEventsControlResponse_WritesDoneRequest) isReceiveEventsControlResponse_Control() {} + +// Response message for the ReceiveEvents. +type ReceiveEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Possible response types. + // + // Types that are assignable to Response: + // + // *ReceiveEventsResponse_EventUpdate + // *ReceiveEventsResponse_Control + Response isReceiveEventsResponse_Response `protobuf_oneof:"response"` +} + +func (x *ReceiveEventsResponse) Reset() { + *x = ReceiveEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveEventsResponse) ProtoMessage() {} + +func (x *ReceiveEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceiveEventsResponse.ProtoReflect.Descriptor instead. +func (*ReceiveEventsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{3} +} + +func (m *ReceiveEventsResponse) GetResponse() isReceiveEventsResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *ReceiveEventsResponse) GetEventUpdate() *EventUpdate { + if x, ok := x.GetResponse().(*ReceiveEventsResponse_EventUpdate); ok { + return x.EventUpdate + } + return nil +} + +func (x *ReceiveEventsResponse) GetControl() *ReceiveEventsControlResponse { + if x, ok := x.GetResponse().(*ReceiveEventsResponse_Control); ok { + return x.Control + } + return nil +} + +type isReceiveEventsResponse_Response interface { + isReceiveEventsResponse_Response() +} + +type ReceiveEventsResponse_EventUpdate struct { + // The event update message. + EventUpdate *EventUpdate `protobuf:"bytes,1,opt,name=event_update,json=eventUpdate,proto3,oneof"` +} + +type ReceiveEventsResponse_Control struct { + // A control message from the server. + Control *ReceiveEventsControlResponse `protobuf:"bytes,2,opt,name=control,proto3,oneof"` +} + +func (*ReceiveEventsResponse_EventUpdate) isReceiveEventsResponse_Response() {} + +func (*ReceiveEventsResponse_Control) isReceiveEventsResponse_Response() {} + +// The lease message. +type Lease struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The lease id. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // The series name. + Series string `protobuf:"bytes,2,opt,name=series,proto3" json:"series,omitempty"` + // The owner name. + Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"` + // The lease expire time. + ExpireTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"` + // The lease type. + LeaseType LeaseType `protobuf:"varint,5,opt,name=lease_type,json=leaseType,proto3,enum=google.cloud.visionai.v1.LeaseType" json:"lease_type,omitempty"` +} + +func (x *Lease) Reset() { + *x = Lease{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Lease) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Lease) ProtoMessage() {} + +func (x *Lease) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 Lease.ProtoReflect.Descriptor instead. +func (*Lease) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{4} +} + +func (x *Lease) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *Lease) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *Lease) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *Lease) GetExpireTime() *timestamppb.Timestamp { + if x != nil { + return x.ExpireTime + } + return nil +} + +func (x *Lease) GetLeaseType() LeaseType { + if x != nil { + return x.LeaseType + } + return LeaseType_LEASE_TYPE_UNSPECIFIED +} + +// Request message for acquiring a lease. +type AcquireLeaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The series name. + Series string `protobuf:"bytes,1,opt,name=series,proto3" json:"series,omitempty"` + // The owner name. + Owner string `protobuf:"bytes,2,opt,name=owner,proto3" json:"owner,omitempty"` + // The lease term. + Term *durationpb.Duration `protobuf:"bytes,3,opt,name=term,proto3" json:"term,omitempty"` + // The lease type. + LeaseType LeaseType `protobuf:"varint,4,opt,name=lease_type,json=leaseType,proto3,enum=google.cloud.visionai.v1.LeaseType" json:"lease_type,omitempty"` +} + +func (x *AcquireLeaseRequest) Reset() { + *x = AcquireLeaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AcquireLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcquireLeaseRequest) ProtoMessage() {} + +func (x *AcquireLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 AcquireLeaseRequest.ProtoReflect.Descriptor instead. +func (*AcquireLeaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{5} +} + +func (x *AcquireLeaseRequest) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *AcquireLeaseRequest) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *AcquireLeaseRequest) GetTerm() *durationpb.Duration { + if x != nil { + return x.Term + } + return nil +} + +func (x *AcquireLeaseRequest) GetLeaseType() LeaseType { + if x != nil { + return x.LeaseType + } + return LeaseType_LEASE_TYPE_UNSPECIFIED +} + +// Request message for renewing a lease. +type RenewLeaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lease id. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Series name. + Series string `protobuf:"bytes,2,opt,name=series,proto3" json:"series,omitempty"` + // Lease owner. + Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"` + // Lease term. + Term *durationpb.Duration `protobuf:"bytes,4,opt,name=term,proto3" json:"term,omitempty"` +} + +func (x *RenewLeaseRequest) Reset() { + *x = RenewLeaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RenewLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RenewLeaseRequest) ProtoMessage() {} + +func (x *RenewLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 RenewLeaseRequest.ProtoReflect.Descriptor instead. +func (*RenewLeaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{6} +} + +func (x *RenewLeaseRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *RenewLeaseRequest) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *RenewLeaseRequest) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *RenewLeaseRequest) GetTerm() *durationpb.Duration { + if x != nil { + return x.Term + } + return nil +} + +// Request message for releasing lease. +type ReleaseLeaseRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lease id. + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + // Series name. + Series string `protobuf:"bytes,2,opt,name=series,proto3" json:"series,omitempty"` + // Lease owner. + Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"` +} + +func (x *ReleaseLeaseRequest) Reset() { + *x = ReleaseLeaseRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReleaseLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseLeaseRequest) ProtoMessage() {} + +func (x *ReleaseLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReleaseLeaseRequest.ProtoReflect.Descriptor instead. +func (*ReleaseLeaseRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ReleaseLeaseRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *ReleaseLeaseRequest) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *ReleaseLeaseRequest) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +// Response message for release lease. +type ReleaseLeaseResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ReleaseLeaseResponse) Reset() { + *x = ReleaseLeaseResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReleaseLeaseResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseLeaseResponse) ProtoMessage() {} + +func (x *ReleaseLeaseResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReleaseLeaseResponse.ProtoReflect.Descriptor instead. +func (*ReleaseLeaseResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{8} +} + +// RequestMetadata is the metadata message for the request. +type RequestMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Stream name. + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` + // Evevt name. + Event string `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` + // Series name. + Series string `protobuf:"bytes,3,opt,name=series,proto3" json:"series,omitempty"` + // Lease id. + LeaseId string `protobuf:"bytes,4,opt,name=lease_id,json=leaseId,proto3" json:"lease_id,omitempty"` + // Owner name. + Owner string `protobuf:"bytes,5,opt,name=owner,proto3" json:"owner,omitempty"` + // Lease term specifies how long the client wants the session to be maintained + // by the server after the client leaves. If the lease term is not set, the + // server will release the session immediately and the client cannot reconnect + // to the same session later. + LeaseTerm *durationpb.Duration `protobuf:"bytes,6,opt,name=lease_term,json=leaseTerm,proto3" json:"lease_term,omitempty"` +} + +func (x *RequestMetadata) Reset() { + *x = RequestMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RequestMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RequestMetadata) ProtoMessage() {} + +func (x *RequestMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 RequestMetadata.ProtoReflect.Descriptor instead. +func (*RequestMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{9} +} + +func (x *RequestMetadata) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *RequestMetadata) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +func (x *RequestMetadata) GetSeries() string { + if x != nil { + return x.Series + } + return "" +} + +func (x *RequestMetadata) GetLeaseId() string { + if x != nil { + return x.LeaseId + } + return "" +} + +func (x *RequestMetadata) GetOwner() string { + if x != nil { + return x.Owner + } + return "" +} + +func (x *RequestMetadata) GetLeaseTerm() *durationpb.Duration { + if x != nil { + return x.LeaseTerm + } + return nil +} + +// Request message for sending packets. +type SendPacketsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Request: + // + // *SendPacketsRequest_Packet + // *SendPacketsRequest_Metadata + Request isSendPacketsRequest_Request `protobuf_oneof:"request"` +} + +func (x *SendPacketsRequest) Reset() { + *x = SendPacketsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendPacketsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPacketsRequest) ProtoMessage() {} + +func (x *SendPacketsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 SendPacketsRequest.ProtoReflect.Descriptor instead. +func (*SendPacketsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{10} +} + +func (m *SendPacketsRequest) GetRequest() isSendPacketsRequest_Request { + if m != nil { + return m.Request + } + return nil +} + +func (x *SendPacketsRequest) GetPacket() *Packet { + if x, ok := x.GetRequest().(*SendPacketsRequest_Packet); ok { + return x.Packet + } + return nil +} + +func (x *SendPacketsRequest) GetMetadata() *RequestMetadata { + if x, ok := x.GetRequest().(*SendPacketsRequest_Metadata); ok { + return x.Metadata + } + return nil +} + +type isSendPacketsRequest_Request interface { + isSendPacketsRequest_Request() +} + +type SendPacketsRequest_Packet struct { + // Packets sent over the streaming rpc. + Packet *Packet `protobuf:"bytes,1,opt,name=packet,proto3,oneof"` +} + +type SendPacketsRequest_Metadata struct { + // The first message of the streaming rpc including the request metadata. + Metadata *RequestMetadata `protobuf:"bytes,2,opt,name=metadata,proto3,oneof"` +} + +func (*SendPacketsRequest_Packet) isSendPacketsRequest_Request() {} + +func (*SendPacketsRequest_Metadata) isSendPacketsRequest_Request() {} + +// Response message for sending packets. +type SendPacketsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SendPacketsResponse) Reset() { + *x = SendPacketsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SendPacketsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPacketsResponse) ProtoMessage() {} + +func (x *SendPacketsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 SendPacketsResponse.ProtoReflect.Descriptor instead. +func (*SendPacketsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{11} +} + +// Request message for receiving packets. +type ReceivePacketsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Possible request types from the client. + // + // Types that are assignable to Request: + // + // *ReceivePacketsRequest_SetupRequest_ + // *ReceivePacketsRequest_CommitRequest + Request isReceivePacketsRequest_Request `protobuf_oneof:"request"` +} + +func (x *ReceivePacketsRequest) Reset() { + *x = ReceivePacketsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceivePacketsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceivePacketsRequest) ProtoMessage() {} + +func (x *ReceivePacketsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceivePacketsRequest.ProtoReflect.Descriptor instead. +func (*ReceivePacketsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{12} +} + +func (m *ReceivePacketsRequest) GetRequest() isReceivePacketsRequest_Request { + if m != nil { + return m.Request + } + return nil +} + +func (x *ReceivePacketsRequest) GetSetupRequest() *ReceivePacketsRequest_SetupRequest { + if x, ok := x.GetRequest().(*ReceivePacketsRequest_SetupRequest_); ok { + return x.SetupRequest + } + return nil +} + +func (x *ReceivePacketsRequest) GetCommitRequest() *CommitRequest { + if x, ok := x.GetRequest().(*ReceivePacketsRequest_CommitRequest); ok { + return x.CommitRequest + } + return nil +} + +type isReceivePacketsRequest_Request interface { + isReceivePacketsRequest_Request() +} + +type ReceivePacketsRequest_SetupRequest_ struct { + // The request to setup the initial state of session. + // + // The client must send and only send this as the first message. + SetupRequest *ReceivePacketsRequest_SetupRequest `protobuf:"bytes,6,opt,name=setup_request,json=setupRequest,proto3,oneof"` +} + +type ReceivePacketsRequest_CommitRequest struct { + // This request checkpoints the consumer's read progress. + CommitRequest *CommitRequest `protobuf:"bytes,7,opt,name=commit_request,json=commitRequest,proto3,oneof"` +} + +func (*ReceivePacketsRequest_SetupRequest_) isReceivePacketsRequest_Request() {} + +func (*ReceivePacketsRequest_CommitRequest) isReceivePacketsRequest_Request() {} + +// Control message for a ReceivePacketsResponse. +type ReceivePacketsControlResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Possible control messages. + // + // Types that are assignable to Control: + // + // *ReceivePacketsControlResponse_Heartbeat + // *ReceivePacketsControlResponse_WritesDoneRequest + Control isReceivePacketsControlResponse_Control `protobuf_oneof:"control"` +} + +func (x *ReceivePacketsControlResponse) Reset() { + *x = ReceivePacketsControlResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceivePacketsControlResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceivePacketsControlResponse) ProtoMessage() {} + +func (x *ReceivePacketsControlResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceivePacketsControlResponse.ProtoReflect.Descriptor instead. +func (*ReceivePacketsControlResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{13} +} + +func (m *ReceivePacketsControlResponse) GetControl() isReceivePacketsControlResponse_Control { + if m != nil { + return m.Control + } + return nil +} + +func (x *ReceivePacketsControlResponse) GetHeartbeat() bool { + if x, ok := x.GetControl().(*ReceivePacketsControlResponse_Heartbeat); ok { + return x.Heartbeat + } + return false +} + +func (x *ReceivePacketsControlResponse) GetWritesDoneRequest() bool { + if x, ok := x.GetControl().(*ReceivePacketsControlResponse_WritesDoneRequest); ok { + return x.WritesDoneRequest + } + return false +} + +type isReceivePacketsControlResponse_Control interface { + isReceivePacketsControlResponse_Control() +} + +type ReceivePacketsControlResponse_Heartbeat struct { + // A server heartbeat. + Heartbeat bool `protobuf:"varint,1,opt,name=heartbeat,proto3,oneof"` +} + +type ReceivePacketsControlResponse_WritesDoneRequest struct { + // A request to the receiver to complete any final writes followed by a + // `WritesDone`; e.g. issue any final `CommitRequest`s. + // + // May be ignored if `WritesDone` has already been issued at any point + // prior to receiving this message. + // + // If `WritesDone` does not get issued, then the server will forcefully + // cancel the connection, and the receiver will likely receive an + // uninformative after `Read` returns `false` and `Finish` is called. + WritesDoneRequest bool `protobuf:"varint,2,opt,name=writes_done_request,json=writesDoneRequest,proto3,oneof"` +} + +func (*ReceivePacketsControlResponse_Heartbeat) isReceivePacketsControlResponse_Control() {} + +func (*ReceivePacketsControlResponse_WritesDoneRequest) isReceivePacketsControlResponse_Control() {} + +// Response message from ReceivePackets. +type ReceivePacketsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Possible response types. + // + // Types that are assignable to Response: + // + // *ReceivePacketsResponse_Packet + // *ReceivePacketsResponse_Control + Response isReceivePacketsResponse_Response `protobuf_oneof:"response"` +} + +func (x *ReceivePacketsResponse) Reset() { + *x = ReceivePacketsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceivePacketsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceivePacketsResponse) ProtoMessage() {} + +func (x *ReceivePacketsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceivePacketsResponse.ProtoReflect.Descriptor instead. +func (*ReceivePacketsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{14} +} + +func (m *ReceivePacketsResponse) GetResponse() isReceivePacketsResponse_Response { + if m != nil { + return m.Response + } + return nil +} + +func (x *ReceivePacketsResponse) GetPacket() *Packet { + if x, ok := x.GetResponse().(*ReceivePacketsResponse_Packet); ok { + return x.Packet + } + return nil +} + +func (x *ReceivePacketsResponse) GetControl() *ReceivePacketsControlResponse { + if x, ok := x.GetResponse().(*ReceivePacketsResponse_Control); ok { + return x.Control + } + return nil +} + +type isReceivePacketsResponse_Response interface { + isReceivePacketsResponse_Response() +} + +type ReceivePacketsResponse_Packet struct { + // A genuine data payload originating from the sender. + Packet *Packet `protobuf:"bytes,1,opt,name=packet,proto3,oneof"` +} + +type ReceivePacketsResponse_Control struct { + // A control message from the server. + Control *ReceivePacketsControlResponse `protobuf:"bytes,3,opt,name=control,proto3,oneof"` +} + +func (*ReceivePacketsResponse_Packet) isReceivePacketsResponse_Response() {} + +func (*ReceivePacketsResponse_Control) isReceivePacketsResponse_Response() {} + +// The options for receiver under the eager mode. +type EagerMode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *EagerMode) Reset() { + *x = EagerMode{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EagerMode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EagerMode) ProtoMessage() {} + +func (x *EagerMode) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 EagerMode.ProtoReflect.Descriptor instead. +func (*EagerMode) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{15} +} + +// The options for receiver under the controlled mode. +type ControlledMode struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // This is the offset from which to start receiveing. + // + // Types that are assignable to StartingOffset: + // + // *ControlledMode_StartingLogicalOffset + StartingOffset isControlledMode_StartingOffset `protobuf_oneof:"starting_offset"` + // This is the logical starting point to fallback upon should the + // specified starting offset be unavailable. + // + // This can be one of the following values: + // + // "begin": This will read from the earliest available message. + // + // "end": This will read only future messages. + FallbackStartingOffset string `protobuf:"bytes,2,opt,name=fallback_starting_offset,json=fallbackStartingOffset,proto3" json:"fallback_starting_offset,omitempty"` +} + +func (x *ControlledMode) Reset() { + *x = ControlledMode{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ControlledMode) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ControlledMode) ProtoMessage() {} + +func (x *ControlledMode) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ControlledMode.ProtoReflect.Descriptor instead. +func (*ControlledMode) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{16} +} + +func (m *ControlledMode) GetStartingOffset() isControlledMode_StartingOffset { + if m != nil { + return m.StartingOffset + } + return nil +} + +func (x *ControlledMode) GetStartingLogicalOffset() string { + if x, ok := x.GetStartingOffset().(*ControlledMode_StartingLogicalOffset); ok { + return x.StartingLogicalOffset + } + return "" +} + +func (x *ControlledMode) GetFallbackStartingOffset() string { + if x != nil { + return x.FallbackStartingOffset + } + return "" +} + +type isControlledMode_StartingOffset interface { + isControlledMode_StartingOffset() +} + +type ControlledMode_StartingLogicalOffset struct { + // This can be set to the following logical starting points: + // + // "begin": This will read from the earliest available message. + // + // "most-recent": This will read from the latest available message. + // + // "end": This will read only future messages. + // + // "stored": This will resume reads one past the last committed offset. + // + // It is the only option that resumes progress; all others + // jump unilaterally. + StartingLogicalOffset string `protobuf:"bytes,1,opt,name=starting_logical_offset,json=startingLogicalOffset,proto3,oneof"` +} + +func (*ControlledMode_StartingLogicalOffset) isControlledMode_StartingOffset() {} + +// The message for explicitly committing the read progress. +// +// This may only be used when `ReceivePacketsControlledMode` is set in the +// initial setup request. +type CommitRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The offset to commit. + Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` +} + +func (x *CommitRequest) Reset() { + *x = CommitRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CommitRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CommitRequest) ProtoMessage() {} + +func (x *CommitRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 CommitRequest.ProtoReflect.Descriptor instead. +func (*CommitRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{17} +} + +func (x *CommitRequest) GetOffset() int64 { + if x != nil { + return x.Offset + } + return 0 +} + +// SetupRequest is the first message sent to the service to setup the RPC +// connection. +type ReceiveEventsRequest_SetupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The cluster name. + Cluster string `protobuf:"bytes,1,opt,name=cluster,proto3" json:"cluster,omitempty"` + // The stream name. The service will return the events for the given stream. + Stream string `protobuf:"bytes,2,opt,name=stream,proto3" json:"stream,omitempty"` + // A name for the receiver to self-identify. + // + // This is used to keep track of a receiver's read progress. + Receiver string `protobuf:"bytes,3,opt,name=receiver,proto3" json:"receiver,omitempty"` + // Controller mode configuration for receiving events from the server. + ControlledMode *ControlledMode `protobuf:"bytes,4,opt,name=controlled_mode,json=controlledMode,proto3" json:"controlled_mode,omitempty"` + // The maximum duration of server silence before the client determines the + // server unreachable. + // + // The client must either receive an `Event` update or a heart beat message + // before this duration expires; otherwise, the client will automatically + // cancel the current connection and retry. + HeartbeatInterval *durationpb.Duration `protobuf:"bytes,5,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` + // The grace period after which a `writes_done_request` is issued, that a + // `WritesDone` is expected from the client. + // + // The server is free to cancel the RPC should this expire. + // + // A system default will be chosen if unset. + WritesDoneGracePeriod *durationpb.Duration `protobuf:"bytes,6,opt,name=writes_done_grace_period,json=writesDoneGracePeriod,proto3" json:"writes_done_grace_period,omitempty"` +} + +func (x *ReceiveEventsRequest_SetupRequest) Reset() { + *x = ReceiveEventsRequest_SetupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceiveEventsRequest_SetupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceiveEventsRequest_SetupRequest) ProtoMessage() {} + +func (x *ReceiveEventsRequest_SetupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceiveEventsRequest_SetupRequest.ProtoReflect.Descriptor instead. +func (*ReceiveEventsRequest_SetupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *ReceiveEventsRequest_SetupRequest) GetCluster() string { + if x != nil { + return x.Cluster + } + return "" +} + +func (x *ReceiveEventsRequest_SetupRequest) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *ReceiveEventsRequest_SetupRequest) GetReceiver() string { + if x != nil { + return x.Receiver + } + return "" +} + +func (x *ReceiveEventsRequest_SetupRequest) GetControlledMode() *ControlledMode { + if x != nil { + return x.ControlledMode + } + return nil +} + +func (x *ReceiveEventsRequest_SetupRequest) GetHeartbeatInterval() *durationpb.Duration { + if x != nil { + return x.HeartbeatInterval + } + return nil +} + +func (x *ReceiveEventsRequest_SetupRequest) GetWritesDoneGracePeriod() *durationpb.Duration { + if x != nil { + return x.WritesDoneGracePeriod + } + return nil +} + +// The message specifying the initial settings for the ReceivePackets session. +type ReceivePacketsRequest_SetupRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The mode in which the consumer reads messages. + // + // Types that are assignable to ConsumerMode: + // + // *ReceivePacketsRequest_SetupRequest_EagerReceiveMode + // *ReceivePacketsRequest_SetupRequest_ControlledReceiveMode + ConsumerMode isReceivePacketsRequest_SetupRequest_ConsumerMode `protobuf_oneof:"consumer_mode"` + // The configurations that specify where packets are retrieved. + Metadata *RequestMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` + // A name for the receiver to self-identify. + // + // This is used to keep track of a receiver's read progress. + Receiver string `protobuf:"bytes,2,opt,name=receiver,proto3" json:"receiver,omitempty"` + // The maximum duration of server silence before the client determines the + // server unreachable. + // + // The client must either receive a `Packet` or a heart beat message before + // this duration expires; otherwise, the client will automatically cancel + // the current connection and retry. + HeartbeatInterval *durationpb.Duration `protobuf:"bytes,5,opt,name=heartbeat_interval,json=heartbeatInterval,proto3" json:"heartbeat_interval,omitempty"` + // The grace period after which a `writes_done_request` is issued, that a + // `WritesDone` is expected from the client. + // + // The server is free to cancel the RPC should this expire. + // + // A system default will be chosen if unset. + WritesDoneGracePeriod *durationpb.Duration `protobuf:"bytes,6,opt,name=writes_done_grace_period,json=writesDoneGracePeriod,proto3" json:"writes_done_grace_period,omitempty"` +} + +func (x *ReceivePacketsRequest_SetupRequest) Reset() { + *x = ReceivePacketsRequest_SetupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ReceivePacketsRequest_SetupRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReceivePacketsRequest_SetupRequest) ProtoMessage() {} + +func (x *ReceivePacketsRequest_SetupRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streaming_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 ReceivePacketsRequest_SetupRequest.ProtoReflect.Descriptor instead. +func (*ReceivePacketsRequest_SetupRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP(), []int{12, 0} +} + +func (m *ReceivePacketsRequest_SetupRequest) GetConsumerMode() isReceivePacketsRequest_SetupRequest_ConsumerMode { + if m != nil { + return m.ConsumerMode + } + return nil +} + +func (x *ReceivePacketsRequest_SetupRequest) GetEagerReceiveMode() *EagerMode { + if x, ok := x.GetConsumerMode().(*ReceivePacketsRequest_SetupRequest_EagerReceiveMode); ok { + return x.EagerReceiveMode + } + return nil +} + +func (x *ReceivePacketsRequest_SetupRequest) GetControlledReceiveMode() *ControlledMode { + if x, ok := x.GetConsumerMode().(*ReceivePacketsRequest_SetupRequest_ControlledReceiveMode); ok { + return x.ControlledReceiveMode + } + return nil +} + +func (x *ReceivePacketsRequest_SetupRequest) GetMetadata() *RequestMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +func (x *ReceivePacketsRequest_SetupRequest) GetReceiver() string { + if x != nil { + return x.Receiver + } + return "" +} + +func (x *ReceivePacketsRequest_SetupRequest) GetHeartbeatInterval() *durationpb.Duration { + if x != nil { + return x.HeartbeatInterval + } + return nil +} + +func (x *ReceivePacketsRequest_SetupRequest) GetWritesDoneGracePeriod() *durationpb.Duration { + if x != nil { + return x.WritesDoneGracePeriod + } + return nil +} + +type isReceivePacketsRequest_SetupRequest_ConsumerMode interface { + isReceivePacketsRequest_SetupRequest_ConsumerMode() +} + +type ReceivePacketsRequest_SetupRequest_EagerReceiveMode struct { + // Options for configuring eager mode. + EagerReceiveMode *EagerMode `protobuf:"bytes,3,opt,name=eager_receive_mode,json=eagerReceiveMode,proto3,oneof"` +} + +type ReceivePacketsRequest_SetupRequest_ControlledReceiveMode struct { + // Options for configuring controlled mode. + ControlledReceiveMode *ControlledMode `protobuf:"bytes,4,opt,name=controlled_receive_mode,json=controlledReceiveMode,proto3,oneof"` +} + +func (*ReceivePacketsRequest_SetupRequest_EagerReceiveMode) isReceivePacketsRequest_SetupRequest_ConsumerMode() { +} + +func (*ReceivePacketsRequest_SetupRequest_ControlledReceiveMode) isReceivePacketsRequest_SetupRequest_ConsumerMode() { +} + +var File_google_cloud_visionai_v1_streaming_service_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_streaming_service_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x32, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 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, 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, 0x04, 0x0a, 0x14, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x62, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0xcd, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x48, 0x0a, 0x12, 0x68, 0x65, 0x61, + 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, + 0x05, 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, 0x11, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, + 0x76, 0x61, 0x6c, 0x12, 0x52, 0x0a, 0x18, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, + 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, + 0x06, 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, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x63, + 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x0b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x3b, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x7b, 0x0a, + 0x1c, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, + 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x30, 0x0a, + 0x13, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x77, 0x72, + 0x69, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0xc3, 0x01, 0x0a, 0x15, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x48, 0x00, 0x52, 0x0b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x52, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xc6, 0x01, 0x0a, 0x05, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, + 0x72, 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, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb6, 0x01, 0x0a, 0x13, 0x41, 0x63, + 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, + 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x03, 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, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x12, 0x42, + 0x0a, 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, + 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x4c, 0x65, 0x61, 0x73, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x04, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x04, + 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, + 0x04, 0x74, 0x65, 0x72, 0x6d, 0x22, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xc2, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x38, 0x0a, + 0x0a, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x5f, 0x74, 0x65, 0x72, 0x6d, 0x18, 0x06, 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, 0x09, 0x6c, 0x65, + 0x61, 0x73, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x22, 0xa4, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, + 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, + 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, + 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb5, 0x05, 0x0a, 0x15, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x63, 0x0a, 0x0d, 0x73, 0x65, 0x74, 0x75, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x5f, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0xd9, 0x03, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x12, 0x65, 0x61, 0x67, 0x65, 0x72, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x61, 0x67, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x10, 0x65, 0x61, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x62, 0x0a, 0x17, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x48, 0x00, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x12, 0x45, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x12, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, + 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 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, 0x11, 0x68, 0x65, 0x61, 0x72, + 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x52, 0x0a, + 0x18, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x5f, 0x67, 0x72, 0x61, + 0x63, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x06, 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, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x5f, 0x6d, 0x6f, + 0x64, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7c, 0x0a, + 0x1d, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, + 0x0a, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x09, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x30, + 0x0a, 0x13, 0x77, 0x72, 0x69, 0x74, 0x65, 0x73, 0x5f, 0x64, 0x6f, 0x6e, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x77, + 0x72, 0x69, 0x74, 0x65, 0x73, 0x44, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x22, 0xb5, 0x01, 0x0a, 0x16, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x53, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x0b, 0x0a, 0x09, 0x45, 0x61, 0x67, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, + 0x22, 0x97, 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x64, 0x4d, + 0x6f, 0x64, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x15, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, + 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x38, 0x0a, + 0x18, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x16, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, + 0x67, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x27, 0x0a, 0x0d, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x2a, 0x55, 0x0a, 0x09, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, + 0x4c, 0x45, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x45, + 0x52, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x4c, 0x45, 0x41, 0x53, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x57, 0x52, 0x49, 0x54, 0x45, 0x52, 0x10, 0x02, 0x32, 0xe3, 0x07, 0x0a, 0x10, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x70, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, + 0x01, 0x12, 0x79, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0x76, 0x0a, 0x0d, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2e, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x28, 0x01, 0x30, 0x01, 0x12, 0xaf, 0x01, 0x0a, 0x0c, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x63, 0x71, 0x75, 0x69, 0x72, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, + 0x22, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x63, 0x71, 0x75, 0x69, 0x72, + 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0xa9, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x6e, 0x65, 0x77, + 0x4c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, + 0x61, 0x73, 0x65, 0x22, 0x4d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x01, 0x2a, 0x22, 0x42, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x4c, 0x65, 0x61, + 0x73, 0x65, 0x12, 0xbe, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4c, 0x65, + 0x61, 0x73, 0x65, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x3a, 0x01, 0x2a, 0x22, 0x44, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, + 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4c, 0x65, + 0x61, 0x73, 0x65, 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 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, 0xc5, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x42, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_streaming_service_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_streaming_service_proto_rawDescData = file_google_cloud_visionai_v1_streaming_service_proto_rawDesc +) + +func file_google_cloud_visionai_v1_streaming_service_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_streaming_service_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_streaming_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_streaming_service_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_streaming_service_proto_rawDescData +} + +var file_google_cloud_visionai_v1_streaming_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_visionai_v1_streaming_service_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_google_cloud_visionai_v1_streaming_service_proto_goTypes = []interface{}{ + (LeaseType)(0), // 0: google.cloud.visionai.v1.LeaseType + (*ReceiveEventsRequest)(nil), // 1: google.cloud.visionai.v1.ReceiveEventsRequest + (*EventUpdate)(nil), // 2: google.cloud.visionai.v1.EventUpdate + (*ReceiveEventsControlResponse)(nil), // 3: google.cloud.visionai.v1.ReceiveEventsControlResponse + (*ReceiveEventsResponse)(nil), // 4: google.cloud.visionai.v1.ReceiveEventsResponse + (*Lease)(nil), // 5: google.cloud.visionai.v1.Lease + (*AcquireLeaseRequest)(nil), // 6: google.cloud.visionai.v1.AcquireLeaseRequest + (*RenewLeaseRequest)(nil), // 7: google.cloud.visionai.v1.RenewLeaseRequest + (*ReleaseLeaseRequest)(nil), // 8: google.cloud.visionai.v1.ReleaseLeaseRequest + (*ReleaseLeaseResponse)(nil), // 9: google.cloud.visionai.v1.ReleaseLeaseResponse + (*RequestMetadata)(nil), // 10: google.cloud.visionai.v1.RequestMetadata + (*SendPacketsRequest)(nil), // 11: google.cloud.visionai.v1.SendPacketsRequest + (*SendPacketsResponse)(nil), // 12: google.cloud.visionai.v1.SendPacketsResponse + (*ReceivePacketsRequest)(nil), // 13: google.cloud.visionai.v1.ReceivePacketsRequest + (*ReceivePacketsControlResponse)(nil), // 14: google.cloud.visionai.v1.ReceivePacketsControlResponse + (*ReceivePacketsResponse)(nil), // 15: google.cloud.visionai.v1.ReceivePacketsResponse + (*EagerMode)(nil), // 16: google.cloud.visionai.v1.EagerMode + (*ControlledMode)(nil), // 17: google.cloud.visionai.v1.ControlledMode + (*CommitRequest)(nil), // 18: google.cloud.visionai.v1.CommitRequest + (*ReceiveEventsRequest_SetupRequest)(nil), // 19: google.cloud.visionai.v1.ReceiveEventsRequest.SetupRequest + (*ReceivePacketsRequest_SetupRequest)(nil), // 20: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest + (*timestamppb.Timestamp)(nil), // 21: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 22: google.protobuf.Duration + (*Packet)(nil), // 23: google.cloud.visionai.v1.Packet +} +var file_google_cloud_visionai_v1_streaming_service_proto_depIdxs = []int32{ + 19, // 0: google.cloud.visionai.v1.ReceiveEventsRequest.setup_request:type_name -> google.cloud.visionai.v1.ReceiveEventsRequest.SetupRequest + 18, // 1: google.cloud.visionai.v1.ReceiveEventsRequest.commit_request:type_name -> google.cloud.visionai.v1.CommitRequest + 21, // 2: google.cloud.visionai.v1.EventUpdate.update_time:type_name -> google.protobuf.Timestamp + 2, // 3: google.cloud.visionai.v1.ReceiveEventsResponse.event_update:type_name -> google.cloud.visionai.v1.EventUpdate + 3, // 4: google.cloud.visionai.v1.ReceiveEventsResponse.control:type_name -> google.cloud.visionai.v1.ReceiveEventsControlResponse + 21, // 5: google.cloud.visionai.v1.Lease.expire_time:type_name -> google.protobuf.Timestamp + 0, // 6: google.cloud.visionai.v1.Lease.lease_type:type_name -> google.cloud.visionai.v1.LeaseType + 22, // 7: google.cloud.visionai.v1.AcquireLeaseRequest.term:type_name -> google.protobuf.Duration + 0, // 8: google.cloud.visionai.v1.AcquireLeaseRequest.lease_type:type_name -> google.cloud.visionai.v1.LeaseType + 22, // 9: google.cloud.visionai.v1.RenewLeaseRequest.term:type_name -> google.protobuf.Duration + 22, // 10: google.cloud.visionai.v1.RequestMetadata.lease_term:type_name -> google.protobuf.Duration + 23, // 11: google.cloud.visionai.v1.SendPacketsRequest.packet:type_name -> google.cloud.visionai.v1.Packet + 10, // 12: google.cloud.visionai.v1.SendPacketsRequest.metadata:type_name -> google.cloud.visionai.v1.RequestMetadata + 20, // 13: google.cloud.visionai.v1.ReceivePacketsRequest.setup_request:type_name -> google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest + 18, // 14: google.cloud.visionai.v1.ReceivePacketsRequest.commit_request:type_name -> google.cloud.visionai.v1.CommitRequest + 23, // 15: google.cloud.visionai.v1.ReceivePacketsResponse.packet:type_name -> google.cloud.visionai.v1.Packet + 14, // 16: google.cloud.visionai.v1.ReceivePacketsResponse.control:type_name -> google.cloud.visionai.v1.ReceivePacketsControlResponse + 17, // 17: google.cloud.visionai.v1.ReceiveEventsRequest.SetupRequest.controlled_mode:type_name -> google.cloud.visionai.v1.ControlledMode + 22, // 18: google.cloud.visionai.v1.ReceiveEventsRequest.SetupRequest.heartbeat_interval:type_name -> google.protobuf.Duration + 22, // 19: google.cloud.visionai.v1.ReceiveEventsRequest.SetupRequest.writes_done_grace_period:type_name -> google.protobuf.Duration + 16, // 20: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest.eager_receive_mode:type_name -> google.cloud.visionai.v1.EagerMode + 17, // 21: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest.controlled_receive_mode:type_name -> google.cloud.visionai.v1.ControlledMode + 10, // 22: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest.metadata:type_name -> google.cloud.visionai.v1.RequestMetadata + 22, // 23: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest.heartbeat_interval:type_name -> google.protobuf.Duration + 22, // 24: google.cloud.visionai.v1.ReceivePacketsRequest.SetupRequest.writes_done_grace_period:type_name -> google.protobuf.Duration + 11, // 25: google.cloud.visionai.v1.StreamingService.SendPackets:input_type -> google.cloud.visionai.v1.SendPacketsRequest + 13, // 26: google.cloud.visionai.v1.StreamingService.ReceivePackets:input_type -> google.cloud.visionai.v1.ReceivePacketsRequest + 1, // 27: google.cloud.visionai.v1.StreamingService.ReceiveEvents:input_type -> google.cloud.visionai.v1.ReceiveEventsRequest + 6, // 28: google.cloud.visionai.v1.StreamingService.AcquireLease:input_type -> google.cloud.visionai.v1.AcquireLeaseRequest + 7, // 29: google.cloud.visionai.v1.StreamingService.RenewLease:input_type -> google.cloud.visionai.v1.RenewLeaseRequest + 8, // 30: google.cloud.visionai.v1.StreamingService.ReleaseLease:input_type -> google.cloud.visionai.v1.ReleaseLeaseRequest + 12, // 31: google.cloud.visionai.v1.StreamingService.SendPackets:output_type -> google.cloud.visionai.v1.SendPacketsResponse + 15, // 32: google.cloud.visionai.v1.StreamingService.ReceivePackets:output_type -> google.cloud.visionai.v1.ReceivePacketsResponse + 4, // 33: google.cloud.visionai.v1.StreamingService.ReceiveEvents:output_type -> google.cloud.visionai.v1.ReceiveEventsResponse + 5, // 34: google.cloud.visionai.v1.StreamingService.AcquireLease:output_type -> google.cloud.visionai.v1.Lease + 5, // 35: google.cloud.visionai.v1.StreamingService.RenewLease:output_type -> google.cloud.visionai.v1.Lease + 9, // 36: google.cloud.visionai.v1.StreamingService.ReleaseLease:output_type -> google.cloud.visionai.v1.ReleaseLeaseResponse + 31, // [31:37] is the sub-list for method output_type + 25, // [25:31] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_streaming_service_proto_init() } +func file_google_cloud_visionai_v1_streaming_service_proto_init() { + if File_google_cloud_visionai_v1_streaming_service_proto != nil { + return + } + file_google_cloud_visionai_v1_streaming_resources_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EventUpdate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveEventsControlResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Lease); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AcquireLeaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RenewLeaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseLeaseRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReleaseLeaseResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendPacketsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SendPacketsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceivePacketsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceivePacketsControlResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceivePacketsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EagerMode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ControlledMode); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommitRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceiveEventsRequest_SetupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReceivePacketsRequest_SetupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[0].OneofWrappers = []interface{}{ + (*ReceiveEventsRequest_SetupRequest_)(nil), + (*ReceiveEventsRequest_CommitRequest)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[2].OneofWrappers = []interface{}{ + (*ReceiveEventsControlResponse_Heartbeat)(nil), + (*ReceiveEventsControlResponse_WritesDoneRequest)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[3].OneofWrappers = []interface{}{ + (*ReceiveEventsResponse_EventUpdate)(nil), + (*ReceiveEventsResponse_Control)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[10].OneofWrappers = []interface{}{ + (*SendPacketsRequest_Packet)(nil), + (*SendPacketsRequest_Metadata)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[12].OneofWrappers = []interface{}{ + (*ReceivePacketsRequest_SetupRequest_)(nil), + (*ReceivePacketsRequest_CommitRequest)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[13].OneofWrappers = []interface{}{ + (*ReceivePacketsControlResponse_Heartbeat)(nil), + (*ReceivePacketsControlResponse_WritesDoneRequest)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[14].OneofWrappers = []interface{}{ + (*ReceivePacketsResponse_Packet)(nil), + (*ReceivePacketsResponse_Control)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[16].OneofWrappers = []interface{}{ + (*ControlledMode_StartingLogicalOffset)(nil), + } + file_google_cloud_visionai_v1_streaming_service_proto_msgTypes[19].OneofWrappers = []interface{}{ + (*ReceivePacketsRequest_SetupRequest_EagerReceiveMode)(nil), + (*ReceivePacketsRequest_SetupRequest_ControlledReceiveMode)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_streaming_service_proto_rawDesc, + NumEnums: 1, + NumMessages: 20, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_streaming_service_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_streaming_service_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_streaming_service_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_streaming_service_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_streaming_service_proto = out.File + file_google_cloud_visionai_v1_streaming_service_proto_rawDesc = nil + file_google_cloud_visionai_v1_streaming_service_proto_goTypes = nil + file_google_cloud_visionai_v1_streaming_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 + +// StreamingServiceClient is the client API for StreamingService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type StreamingServiceClient interface { + // Send packets to the series. + SendPackets(ctx context.Context, opts ...grpc.CallOption) (StreamingService_SendPacketsClient, error) + // Receive packets from the series. + ReceivePackets(ctx context.Context, opts ...grpc.CallOption) (StreamingService_ReceivePacketsClient, error) + // Receive events given the stream name. + ReceiveEvents(ctx context.Context, opts ...grpc.CallOption) (StreamingService_ReceiveEventsClient, error) + // AcquireLease acquires a lease. + AcquireLease(ctx context.Context, in *AcquireLeaseRequest, opts ...grpc.CallOption) (*Lease, error) + // RenewLease renews a lease. + RenewLease(ctx context.Context, in *RenewLeaseRequest, opts ...grpc.CallOption) (*Lease, error) + // RleaseLease releases a lease. + ReleaseLease(ctx context.Context, in *ReleaseLeaseRequest, opts ...grpc.CallOption) (*ReleaseLeaseResponse, error) +} + +type streamingServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewStreamingServiceClient(cc grpc.ClientConnInterface) StreamingServiceClient { + return &streamingServiceClient{cc} +} + +func (c *streamingServiceClient) SendPackets(ctx context.Context, opts ...grpc.CallOption) (StreamingService_SendPacketsClient, error) { + stream, err := c.cc.NewStream(ctx, &_StreamingService_serviceDesc.Streams[0], "/google.cloud.visionai.v1.StreamingService/SendPackets", opts...) + if err != nil { + return nil, err + } + x := &streamingServiceSendPacketsClient{stream} + return x, nil +} + +type StreamingService_SendPacketsClient interface { + Send(*SendPacketsRequest) error + Recv() (*SendPacketsResponse, error) + grpc.ClientStream +} + +type streamingServiceSendPacketsClient struct { + grpc.ClientStream +} + +func (x *streamingServiceSendPacketsClient) Send(m *SendPacketsRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *streamingServiceSendPacketsClient) Recv() (*SendPacketsResponse, error) { + m := new(SendPacketsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *streamingServiceClient) ReceivePackets(ctx context.Context, opts ...grpc.CallOption) (StreamingService_ReceivePacketsClient, error) { + stream, err := c.cc.NewStream(ctx, &_StreamingService_serviceDesc.Streams[1], "/google.cloud.visionai.v1.StreamingService/ReceivePackets", opts...) + if err != nil { + return nil, err + } + x := &streamingServiceReceivePacketsClient{stream} + return x, nil +} + +type StreamingService_ReceivePacketsClient interface { + Send(*ReceivePacketsRequest) error + Recv() (*ReceivePacketsResponse, error) + grpc.ClientStream +} + +type streamingServiceReceivePacketsClient struct { + grpc.ClientStream +} + +func (x *streamingServiceReceivePacketsClient) Send(m *ReceivePacketsRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *streamingServiceReceivePacketsClient) Recv() (*ReceivePacketsResponse, error) { + m := new(ReceivePacketsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *streamingServiceClient) ReceiveEvents(ctx context.Context, opts ...grpc.CallOption) (StreamingService_ReceiveEventsClient, error) { + stream, err := c.cc.NewStream(ctx, &_StreamingService_serviceDesc.Streams[2], "/google.cloud.visionai.v1.StreamingService/ReceiveEvents", opts...) + if err != nil { + return nil, err + } + x := &streamingServiceReceiveEventsClient{stream} + return x, nil +} + +type StreamingService_ReceiveEventsClient interface { + Send(*ReceiveEventsRequest) error + Recv() (*ReceiveEventsResponse, error) + grpc.ClientStream +} + +type streamingServiceReceiveEventsClient struct { + grpc.ClientStream +} + +func (x *streamingServiceReceiveEventsClient) Send(m *ReceiveEventsRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *streamingServiceReceiveEventsClient) Recv() (*ReceiveEventsResponse, error) { + m := new(ReceiveEventsResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *streamingServiceClient) AcquireLease(ctx context.Context, in *AcquireLeaseRequest, opts ...grpc.CallOption) (*Lease, error) { + out := new(Lease) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamingService/AcquireLease", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamingServiceClient) RenewLease(ctx context.Context, in *RenewLeaseRequest, opts ...grpc.CallOption) (*Lease, error) { + out := new(Lease) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamingService/RenewLease", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamingServiceClient) ReleaseLease(ctx context.Context, in *ReleaseLeaseRequest, opts ...grpc.CallOption) (*ReleaseLeaseResponse, error) { + out := new(ReleaseLeaseResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamingService/ReleaseLease", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// StreamingServiceServer is the server API for StreamingService service. +type StreamingServiceServer interface { + // Send packets to the series. + SendPackets(StreamingService_SendPacketsServer) error + // Receive packets from the series. + ReceivePackets(StreamingService_ReceivePacketsServer) error + // Receive events given the stream name. + ReceiveEvents(StreamingService_ReceiveEventsServer) error + // AcquireLease acquires a lease. + AcquireLease(context.Context, *AcquireLeaseRequest) (*Lease, error) + // RenewLease renews a lease. + RenewLease(context.Context, *RenewLeaseRequest) (*Lease, error) + // RleaseLease releases a lease. + ReleaseLease(context.Context, *ReleaseLeaseRequest) (*ReleaseLeaseResponse, error) +} + +// UnimplementedStreamingServiceServer can be embedded to have forward compatible implementations. +type UnimplementedStreamingServiceServer struct { +} + +func (*UnimplementedStreamingServiceServer) SendPackets(StreamingService_SendPacketsServer) error { + return status.Errorf(codes.Unimplemented, "method SendPackets not implemented") +} +func (*UnimplementedStreamingServiceServer) ReceivePackets(StreamingService_ReceivePacketsServer) error { + return status.Errorf(codes.Unimplemented, "method ReceivePackets not implemented") +} +func (*UnimplementedStreamingServiceServer) ReceiveEvents(StreamingService_ReceiveEventsServer) error { + return status.Errorf(codes.Unimplemented, "method ReceiveEvents not implemented") +} +func (*UnimplementedStreamingServiceServer) AcquireLease(context.Context, *AcquireLeaseRequest) (*Lease, error) { + return nil, status.Errorf(codes.Unimplemented, "method AcquireLease not implemented") +} +func (*UnimplementedStreamingServiceServer) RenewLease(context.Context, *RenewLeaseRequest) (*Lease, error) { + return nil, status.Errorf(codes.Unimplemented, "method RenewLease not implemented") +} +func (*UnimplementedStreamingServiceServer) ReleaseLease(context.Context, *ReleaseLeaseRequest) (*ReleaseLeaseResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ReleaseLease not implemented") +} + +func RegisterStreamingServiceServer(s *grpc.Server, srv StreamingServiceServer) { + s.RegisterService(&_StreamingService_serviceDesc, srv) +} + +func _StreamingService_SendPackets_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(StreamingServiceServer).SendPackets(&streamingServiceSendPacketsServer{stream}) +} + +type StreamingService_SendPacketsServer interface { + Send(*SendPacketsResponse) error + Recv() (*SendPacketsRequest, error) + grpc.ServerStream +} + +type streamingServiceSendPacketsServer struct { + grpc.ServerStream +} + +func (x *streamingServiceSendPacketsServer) Send(m *SendPacketsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *streamingServiceSendPacketsServer) Recv() (*SendPacketsRequest, error) { + m := new(SendPacketsRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _StreamingService_ReceivePackets_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(StreamingServiceServer).ReceivePackets(&streamingServiceReceivePacketsServer{stream}) +} + +type StreamingService_ReceivePacketsServer interface { + Send(*ReceivePacketsResponse) error + Recv() (*ReceivePacketsRequest, error) + grpc.ServerStream +} + +type streamingServiceReceivePacketsServer struct { + grpc.ServerStream +} + +func (x *streamingServiceReceivePacketsServer) Send(m *ReceivePacketsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *streamingServiceReceivePacketsServer) Recv() (*ReceivePacketsRequest, error) { + m := new(ReceivePacketsRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _StreamingService_ReceiveEvents_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(StreamingServiceServer).ReceiveEvents(&streamingServiceReceiveEventsServer{stream}) +} + +type StreamingService_ReceiveEventsServer interface { + Send(*ReceiveEventsResponse) error + Recv() (*ReceiveEventsRequest, error) + grpc.ServerStream +} + +type streamingServiceReceiveEventsServer struct { + grpc.ServerStream +} + +func (x *streamingServiceReceiveEventsServer) Send(m *ReceiveEventsResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *streamingServiceReceiveEventsServer) Recv() (*ReceiveEventsRequest, error) { + m := new(ReceiveEventsRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _StreamingService_AcquireLease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AcquireLeaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamingServiceServer).AcquireLease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamingService/AcquireLease", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamingServiceServer).AcquireLease(ctx, req.(*AcquireLeaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamingService_RenewLease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RenewLeaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamingServiceServer).RenewLease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamingService/RenewLease", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamingServiceServer).RenewLease(ctx, req.(*RenewLeaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamingService_ReleaseLease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ReleaseLeaseRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamingServiceServer).ReleaseLease(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamingService/ReleaseLease", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamingServiceServer).ReleaseLease(ctx, req.(*ReleaseLeaseRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _StreamingService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.StreamingService", + HandlerType: (*StreamingServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AcquireLease", + Handler: _StreamingService_AcquireLease_Handler, + }, + { + MethodName: "RenewLease", + Handler: _StreamingService_RenewLease_Handler, + }, + { + MethodName: "ReleaseLease", + Handler: _StreamingService_ReleaseLease_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "SendPackets", + Handler: _StreamingService_SendPackets_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "ReceivePackets", + Handler: _StreamingService_ReceivePackets_Handler, + ServerStreams: true, + ClientStreams: true, + }, + { + StreamName: "ReceiveEvents", + Handler: _StreamingService_ReceiveEvents_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "google/cloud/visionai/v1/streaming_service.proto", +} diff --git a/visionai/apiv1/visionaipb/streams_resources.pb.go b/visionai/apiv1/visionaipb/streams_resources.pb.go new file mode 100755 index 00000000000..04d2da19d22 --- /dev/null +++ b/visionai/apiv1/visionaipb/streams_resources.pb.go @@ -0,0 +1,860 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/streams_resources.proto + +package visionaipb + +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" + durationpb "google.golang.org/protobuf/types/known/durationpb" + 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) +) + +// Clock that will be used for joining streams. +type Event_Clock int32 + +const ( + // Clock is not specified. + Event_CLOCK_UNSPECIFIED Event_Clock = 0 + // Use the timestamp when the data is captured. Clients need to sync the + // clock. + Event_CAPTURE Event_Clock = 1 + // Use the timestamp when the data is received. + Event_INGEST Event_Clock = 2 +) + +// Enum value maps for Event_Clock. +var ( + Event_Clock_name = map[int32]string{ + 0: "CLOCK_UNSPECIFIED", + 1: "CAPTURE", + 2: "INGEST", + } + Event_Clock_value = map[string]int32{ + "CLOCK_UNSPECIFIED": 0, + "CAPTURE": 1, + "INGEST": 2, + } +) + +func (x Event_Clock) Enum() *Event_Clock { + p := new(Event_Clock) + *p = x + return p +} + +func (x Event_Clock) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Event_Clock) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_streams_resources_proto_enumTypes[0].Descriptor() +} + +func (Event_Clock) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_streams_resources_proto_enumTypes[0] +} + +func (x Event_Clock) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Event_Clock.Descriptor instead. +func (Event_Clock) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP(), []int{1, 0} +} + +// Message describing the Stream object. The Stream and the Event resources are +// many to many; i.e., each Stream resource can associate to many Event +// resources and each Event resource can associate to many Stream resources. +type Stream struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations to allow clients to store small amounts of arbitrary data. + Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The display name for the stream resource. + DisplayName string `protobuf:"bytes,6,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Whether to enable the HLS playback service on this stream. + EnableHlsPlayback bool `protobuf:"varint,7,opt,name=enable_hls_playback,json=enableHlsPlayback,proto3" json:"enable_hls_playback,omitempty"` + // The name of the media warehouse asset for long term storage of stream data. + // Format: projects/${p_id}/locations/${l_id}/corpora/${c_id}/assets/${a_id} + // Remain empty if the media warehouse storage is not needed for the stream. + MediaWarehouseAsset string `protobuf:"bytes,8,opt,name=media_warehouse_asset,json=mediaWarehouseAsset,proto3" json:"media_warehouse_asset,omitempty"` +} + +func (x *Stream) Reset() { + *x = Stream{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Stream) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Stream) ProtoMessage() {} + +func (x *Stream) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_resources_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 Stream.ProtoReflect.Descriptor instead. +func (*Stream) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP(), []int{0} +} + +func (x *Stream) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Stream) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Stream) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Stream) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Stream) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Stream) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Stream) GetEnableHlsPlayback() bool { + if x != nil { + return x.EnableHlsPlayback + } + return false +} + +func (x *Stream) GetMediaWarehouseAsset() string { + if x != nil { + return x.MediaWarehouseAsset + } + return "" +} + +// Message describing the Event object. +type Event struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations to allow clients to store small amounts of arbitrary data. + Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // The clock used for joining streams. + AlignmentClock Event_Clock `protobuf:"varint,6,opt,name=alignment_clock,json=alignmentClock,proto3,enum=google.cloud.visionai.v1.Event_Clock" json:"alignment_clock,omitempty"` + // Grace period for cleaning up the event. This is the time the controller + // waits for before deleting the event. During this period, if there is any + // active channel on the event. The deletion of the event after grace_period + // will be ignored. + GracePeriod *durationpb.Duration `protobuf:"bytes,7,opt,name=grace_period,json=gracePeriod,proto3" json:"grace_period,omitempty"` +} + +func (x *Event) Reset() { + *x = Event{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Event) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Event) ProtoMessage() {} + +func (x *Event) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_resources_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 Event.ProtoReflect.Descriptor instead. +func (*Event) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP(), []int{1} +} + +func (x *Event) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Event) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Event) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Event) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Event) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Event) GetAlignmentClock() Event_Clock { + if x != nil { + return x.AlignmentClock + } + return Event_CLOCK_UNSPECIFIED +} + +func (x *Event) GetGracePeriod() *durationpb.Duration { + if x != nil { + return x.GracePeriod + } + return nil +} + +// Message describing the Series object. +type Series struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations to allow clients to store small amounts of arbitrary data. + Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. Stream that is associated with this series. + Stream string `protobuf:"bytes,6,opt,name=stream,proto3" json:"stream,omitempty"` + // Required. Event that is associated with this series. + Event string `protobuf:"bytes,7,opt,name=event,proto3" json:"event,omitempty"` +} + +func (x *Series) Reset() { + *x = Series{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Series) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Series) ProtoMessage() {} + +func (x *Series) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_resources_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 Series.ProtoReflect.Descriptor instead. +func (*Series) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP(), []int{2} +} + +func (x *Series) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Series) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Series) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Series) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Series) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Series) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *Series) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +// Message describing the Channel object. +type Channel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Labels as key value pairs. + Labels map[string]string `protobuf:"bytes,4,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Annotations to allow clients to store small amounts of arbitrary data. + Annotations map[string]string `protobuf:"bytes,5,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // Required. Stream that is associated with this series. + Stream string `protobuf:"bytes,6,opt,name=stream,proto3" json:"stream,omitempty"` + // Required. Event that is associated with this series. + Event string `protobuf:"bytes,7,opt,name=event,proto3" json:"event,omitempty"` +} + +func (x *Channel) Reset() { + *x = Channel{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Channel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Channel) ProtoMessage() {} + +func (x *Channel) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_resources_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 Channel.ProtoReflect.Descriptor instead. +func (*Channel) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP(), []int{3} +} + +func (x *Channel) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Channel) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Channel) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Channel) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *Channel) GetAnnotations() map[string]string { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *Channel) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *Channel) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +var File_google_cloud_visionai_v1_streams_resources_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_streams_resources_proto_rawDesc = []byte{ + 0x0a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 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, 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, 0xaf, 0x05, 0x0a, 0x06, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 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, 0x44, 0x0a, 0x06, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x68, 0x6c, 0x73, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, + 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x48, + 0x6c, 0x73, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x5f, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x5f, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x6d, 0x65, 0x64, 0x69, 0x61, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x41, 0x73, 0x73, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x70, 0xea, 0x41, 0x6d, 0x0a, 0x1e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x4b, + 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x7d, 0x22, 0xe9, 0x05, 0x0a, 0x05, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 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, 0x43, 0x0a, + 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, + 0x6c, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x2e, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x52, 0x0e, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x0c, 0x67, 0x72, 0x61, 0x63, 0x65, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 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, 0x0b, 0x67, 0x72, 0x61, 0x63, 0x65, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 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, 0x1a, + 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x37, 0x0a, 0x05, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x4c, 0x4f, 0x43, + 0x4b, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x50, 0x54, 0x55, 0x52, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, + 0x49, 0x4e, 0x47, 0x45, 0x53, 0x54, 0x10, 0x02, 0x3a, 0x6d, 0xea, 0x41, 0x6a, 0x0a, 0x1d, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x49, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x7b, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x7d, 0x22, 0xa4, 0x05, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 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, 0x44, 0x0a, 0x06, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x4c, 0x61, 0x62, + 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, + 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3b, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, + 0x6e, 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, 0x1a, 0x3e, 0x0a, + 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x6f, 0xea, + 0x41, 0x6c, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x4a, 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, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x7d, 0x22, 0xab, + 0x05, 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 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, 0x45, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x3e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, + 0x3b, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 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, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x73, 0xea, 0x41, 0x70, 0x0a, 0x1f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x4d, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, + 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, + 0x6c, 0x73, 0x2f, 0x7b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x7d, 0x42, 0xc5, 0x01, 0x0a, + 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x15, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, + 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, + 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_streams_resources_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_streams_resources_proto_rawDescData = file_google_cloud_visionai_v1_streams_resources_proto_rawDesc +) + +func file_google_cloud_visionai_v1_streams_resources_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_streams_resources_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_streams_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_streams_resources_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_streams_resources_proto_rawDescData +} + +var file_google_cloud_visionai_v1_streams_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_google_cloud_visionai_v1_streams_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_google_cloud_visionai_v1_streams_resources_proto_goTypes = []interface{}{ + (Event_Clock)(0), // 0: google.cloud.visionai.v1.Event.Clock + (*Stream)(nil), // 1: google.cloud.visionai.v1.Stream + (*Event)(nil), // 2: google.cloud.visionai.v1.Event + (*Series)(nil), // 3: google.cloud.visionai.v1.Series + (*Channel)(nil), // 4: google.cloud.visionai.v1.Channel + nil, // 5: google.cloud.visionai.v1.Stream.LabelsEntry + nil, // 6: google.cloud.visionai.v1.Stream.AnnotationsEntry + nil, // 7: google.cloud.visionai.v1.Event.LabelsEntry + nil, // 8: google.cloud.visionai.v1.Event.AnnotationsEntry + nil, // 9: google.cloud.visionai.v1.Series.LabelsEntry + nil, // 10: google.cloud.visionai.v1.Series.AnnotationsEntry + nil, // 11: google.cloud.visionai.v1.Channel.LabelsEntry + nil, // 12: google.cloud.visionai.v1.Channel.AnnotationsEntry + (*timestamppb.Timestamp)(nil), // 13: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 14: google.protobuf.Duration +} +var file_google_cloud_visionai_v1_streams_resources_proto_depIdxs = []int32{ + 13, // 0: google.cloud.visionai.v1.Stream.create_time:type_name -> google.protobuf.Timestamp + 13, // 1: google.cloud.visionai.v1.Stream.update_time:type_name -> google.protobuf.Timestamp + 5, // 2: google.cloud.visionai.v1.Stream.labels:type_name -> google.cloud.visionai.v1.Stream.LabelsEntry + 6, // 3: google.cloud.visionai.v1.Stream.annotations:type_name -> google.cloud.visionai.v1.Stream.AnnotationsEntry + 13, // 4: google.cloud.visionai.v1.Event.create_time:type_name -> google.protobuf.Timestamp + 13, // 5: google.cloud.visionai.v1.Event.update_time:type_name -> google.protobuf.Timestamp + 7, // 6: google.cloud.visionai.v1.Event.labels:type_name -> google.cloud.visionai.v1.Event.LabelsEntry + 8, // 7: google.cloud.visionai.v1.Event.annotations:type_name -> google.cloud.visionai.v1.Event.AnnotationsEntry + 0, // 8: google.cloud.visionai.v1.Event.alignment_clock:type_name -> google.cloud.visionai.v1.Event.Clock + 14, // 9: google.cloud.visionai.v1.Event.grace_period:type_name -> google.protobuf.Duration + 13, // 10: google.cloud.visionai.v1.Series.create_time:type_name -> google.protobuf.Timestamp + 13, // 11: google.cloud.visionai.v1.Series.update_time:type_name -> google.protobuf.Timestamp + 9, // 12: google.cloud.visionai.v1.Series.labels:type_name -> google.cloud.visionai.v1.Series.LabelsEntry + 10, // 13: google.cloud.visionai.v1.Series.annotations:type_name -> google.cloud.visionai.v1.Series.AnnotationsEntry + 13, // 14: google.cloud.visionai.v1.Channel.create_time:type_name -> google.protobuf.Timestamp + 13, // 15: google.cloud.visionai.v1.Channel.update_time:type_name -> google.protobuf.Timestamp + 11, // 16: google.cloud.visionai.v1.Channel.labels:type_name -> google.cloud.visionai.v1.Channel.LabelsEntry + 12, // 17: google.cloud.visionai.v1.Channel.annotations:type_name -> google.cloud.visionai.v1.Channel.AnnotationsEntry + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_streams_resources_proto_init() } +func file_google_cloud_visionai_v1_streams_resources_proto_init() { + if File_google_cloud_visionai_v1_streams_resources_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Stream); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Event); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Series); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Channel); 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_visionai_v1_streams_resources_proto_rawDesc, + NumEnums: 1, + NumMessages: 12, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_google_cloud_visionai_v1_streams_resources_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_streams_resources_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_streams_resources_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_streams_resources_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_streams_resources_proto = out.File + file_google_cloud_visionai_v1_streams_resources_proto_rawDesc = nil + file_google_cloud_visionai_v1_streams_resources_proto_goTypes = nil + file_google_cloud_visionai_v1_streams_resources_proto_depIdxs = nil +} diff --git a/visionai/apiv1/visionaipb/streams_service.pb.go b/visionai/apiv1/visionaipb/streams_service.pb.go new file mode 100755 index 00000000000..a4a32e2a6d5 --- /dev/null +++ b/visionai/apiv1/visionaipb/streams_service.pb.go @@ -0,0 +1,4190 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/streams_service.proto + +package visionaipb + +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" + 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) +) + +// Message for requesting list of Clusters. +type ListClustersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListClustersRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListClustersRequest) Reset() { + *x = ListClustersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListClustersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListClustersRequest) ProtoMessage() {} + +func (x *ListClustersRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListClustersRequest.ProtoReflect.Descriptor instead. +func (*ListClustersRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{0} +} + +func (x *ListClustersRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListClustersRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListClustersRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListClustersRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListClustersRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Clusters. +type ListClustersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Cluster. + Clusters []*Cluster `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListClustersResponse) Reset() { + *x = ListClustersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListClustersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListClustersResponse) ProtoMessage() {} + +func (x *ListClustersResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListClustersResponse.ProtoReflect.Descriptor instead. +func (*ListClustersResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{1} +} + +func (x *ListClustersResponse) GetClusters() []*Cluster { + if x != nil { + return x.Clusters + } + return nil +} + +func (x *ListClustersResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListClustersResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Cluster. +type GetClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetClusterRequest) Reset() { + *x = GetClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClusterRequest) ProtoMessage() {} + +func (x *GetClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GetClusterRequest.ProtoReflect.Descriptor instead. +func (*GetClusterRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{2} +} + +func (x *GetClusterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Cluster. +type CreateClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + ClusterId string `protobuf:"bytes,2,opt,name=cluster_id,json=clusterId,proto3" json:"cluster_id,omitempty"` + // Required. The resource being created. + Cluster *Cluster `protobuf:"bytes,3,opt,name=cluster,proto3" json:"cluster,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateClusterRequest) Reset() { + *x = CreateClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateClusterRequest) ProtoMessage() {} + +func (x *CreateClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 CreateClusterRequest.ProtoReflect.Descriptor instead. +func (*CreateClusterRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{3} +} + +func (x *CreateClusterRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateClusterRequest) GetClusterId() string { + if x != nil { + return x.ClusterId + } + return "" +} + +func (x *CreateClusterRequest) GetCluster() *Cluster { + if x != nil { + return x.Cluster + } + return nil +} + +func (x *CreateClusterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Cluster. +type UpdateClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Cluster resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated + Cluster *Cluster `protobuf:"bytes,2,opt,name=cluster,proto3" json:"cluster,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateClusterRequest) Reset() { + *x = UpdateClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateClusterRequest) ProtoMessage() {} + +func (x *UpdateClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 UpdateClusterRequest.ProtoReflect.Descriptor instead. +func (*UpdateClusterRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateClusterRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateClusterRequest) GetCluster() *Cluster { + if x != nil { + return x.Cluster + } + return nil +} + +func (x *UpdateClusterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Cluster. +type DeleteClusterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteClusterRequest) Reset() { + *x = DeleteClusterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteClusterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteClusterRequest) ProtoMessage() {} + +func (x *DeleteClusterRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 DeleteClusterRequest.ProtoReflect.Descriptor instead. +func (*DeleteClusterRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteClusterRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteClusterRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Streams. +type ListStreamsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListStreamsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListStreamsRequest) Reset() { + *x = ListStreamsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStreamsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStreamsRequest) ProtoMessage() {} + +func (x *ListStreamsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListStreamsRequest.ProtoReflect.Descriptor instead. +func (*ListStreamsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{6} +} + +func (x *ListStreamsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListStreamsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListStreamsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListStreamsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListStreamsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Streams. +type ListStreamsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Stream. + Streams []*Stream `protobuf:"bytes,1,rep,name=streams,proto3" json:"streams,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListStreamsResponse) Reset() { + *x = ListStreamsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListStreamsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListStreamsResponse) ProtoMessage() {} + +func (x *ListStreamsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListStreamsResponse.ProtoReflect.Descriptor instead. +func (*ListStreamsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListStreamsResponse) GetStreams() []*Stream { + if x != nil { + return x.Streams + } + return nil +} + +func (x *ListStreamsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListStreamsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Stream. +type GetStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetStreamRequest) Reset() { + *x = GetStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStreamRequest) ProtoMessage() {} + +func (x *GetStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GetStreamRequest.ProtoReflect.Descriptor instead. +func (*GetStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{8} +} + +func (x *GetStreamRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Stream. +type CreateStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + StreamId string `protobuf:"bytes,2,opt,name=stream_id,json=streamId,proto3" json:"stream_id,omitempty"` + // Required. The resource being created. + Stream *Stream `protobuf:"bytes,3,opt,name=stream,proto3" json:"stream,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateStreamRequest) Reset() { + *x = CreateStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateStreamRequest) ProtoMessage() {} + +func (x *CreateStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 CreateStreamRequest.ProtoReflect.Descriptor instead. +func (*CreateStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{9} +} + +func (x *CreateStreamRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateStreamRequest) GetStreamId() string { + if x != nil { + return x.StreamId + } + return "" +} + +func (x *CreateStreamRequest) GetStream() *Stream { + if x != nil { + return x.Stream + } + return nil +} + +func (x *CreateStreamRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Stream. +type UpdateStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Stream resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Stream *Stream `protobuf:"bytes,2,opt,name=stream,proto3" json:"stream,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateStreamRequest) Reset() { + *x = UpdateStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateStreamRequest) ProtoMessage() {} + +func (x *UpdateStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 UpdateStreamRequest.ProtoReflect.Descriptor instead. +func (*UpdateStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateStreamRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateStreamRequest) GetStream() *Stream { + if x != nil { + return x.Stream + } + return nil +} + +func (x *UpdateStreamRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Stream. +type DeleteStreamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteStreamRequest) Reset() { + *x = DeleteStreamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteStreamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteStreamRequest) ProtoMessage() {} + +func (x *DeleteStreamRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 DeleteStreamRequest.ProtoReflect.Descriptor instead. +func (*DeleteStreamRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteStreamRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteStreamRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for getting the thumbnail of a Stream. +type GetStreamThumbnailRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the stream for to get the thumbnail from. + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` + // Required. The name of the GCS object to store the thumbnail image. + GcsObjectName string `protobuf:"bytes,2,opt,name=gcs_object_name,json=gcsObjectName,proto3" json:"gcs_object_name,omitempty"` + // Optional. The name of the event. If unspecified, the thumbnail will be + // retrieved from the latest event. + Event string `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"` + // Optional. An optional request ID to identify the requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *GetStreamThumbnailRequest) Reset() { + *x = GetStreamThumbnailRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStreamThumbnailRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStreamThumbnailRequest) ProtoMessage() {} + +func (x *GetStreamThumbnailRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GetStreamThumbnailRequest.ProtoReflect.Descriptor instead. +func (*GetStreamThumbnailRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{12} +} + +func (x *GetStreamThumbnailRequest) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +func (x *GetStreamThumbnailRequest) GetGcsObjectName() string { + if x != nil { + return x.GcsObjectName + } + return "" +} + +func (x *GetStreamThumbnailRequest) GetEvent() string { + if x != nil { + return x.Event + } + return "" +} + +func (x *GetStreamThumbnailRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for the response of GetStreamThumbnail. The empty response message +// indicates the thumbnail image has been uploaded to GCS successfully. +type GetStreamThumbnailResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetStreamThumbnailResponse) Reset() { + *x = GetStreamThumbnailResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStreamThumbnailResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStreamThumbnailResponse) ProtoMessage() {} + +func (x *GetStreamThumbnailResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GetStreamThumbnailResponse.ProtoReflect.Descriptor instead. +func (*GetStreamThumbnailResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{13} +} + +// Request message for getting the auth token to access the stream HLS contents. +type GenerateStreamHlsTokenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the stream. + Stream string `protobuf:"bytes,1,opt,name=stream,proto3" json:"stream,omitempty"` +} + +func (x *GenerateStreamHlsTokenRequest) Reset() { + *x = GenerateStreamHlsTokenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateStreamHlsTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateStreamHlsTokenRequest) ProtoMessage() {} + +func (x *GenerateStreamHlsTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GenerateStreamHlsTokenRequest.ProtoReflect.Descriptor instead. +func (*GenerateStreamHlsTokenRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{14} +} + +func (x *GenerateStreamHlsTokenRequest) GetStream() string { + if x != nil { + return x.Stream + } + return "" +} + +// Response message for GenerateStreamHlsToken. +type GenerateStreamHlsTokenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The generated JWT token. + // + // The caller should insert this token to the authorization header of the HTTP + // requests to get the HLS playlist manifest and the video chunks. + // eg: curl -H "Authorization: Bearer $TOKEN" + // + // https://domain.com/test-stream.playback/master.m3u8 + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + // The expiration time of the token. + ExpirationTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=expiration_time,json=expirationTime,proto3" json:"expiration_time,omitempty"` +} + +func (x *GenerateStreamHlsTokenResponse) Reset() { + *x = GenerateStreamHlsTokenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateStreamHlsTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateStreamHlsTokenResponse) ProtoMessage() {} + +func (x *GenerateStreamHlsTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GenerateStreamHlsTokenResponse.ProtoReflect.Descriptor instead. +func (*GenerateStreamHlsTokenResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{15} +} + +func (x *GenerateStreamHlsTokenResponse) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +func (x *GenerateStreamHlsTokenResponse) GetExpirationTime() *timestamppb.Timestamp { + if x != nil { + return x.ExpirationTime + } + return nil +} + +// Message for requesting list of Events. +type ListEventsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListEventsRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListEventsRequest) Reset() { + *x = ListEventsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEventsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEventsRequest) ProtoMessage() {} + +func (x *ListEventsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListEventsRequest.ProtoReflect.Descriptor instead. +func (*ListEventsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{16} +} + +func (x *ListEventsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListEventsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListEventsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListEventsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListEventsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Events. +type ListEventsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Event. + Events []*Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListEventsResponse) Reset() { + *x = ListEventsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListEventsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListEventsResponse) ProtoMessage() {} + +func (x *ListEventsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 ListEventsResponse.ProtoReflect.Descriptor instead. +func (*ListEventsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{17} +} + +func (x *ListEventsResponse) GetEvents() []*Event { + if x != nil { + return x.Events + } + return nil +} + +func (x *ListEventsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListEventsResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Event. +type GetEventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetEventRequest) Reset() { + *x = GetEventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetEventRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetEventRequest) ProtoMessage() {} + +func (x *GetEventRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 GetEventRequest.ProtoReflect.Descriptor instead. +func (*GetEventRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{18} +} + +func (x *GetEventRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Event. +type CreateEventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + EventId string `protobuf:"bytes,2,opt,name=event_id,json=eventId,proto3" json:"event_id,omitempty"` + // Required. The resource being created. + Event *Event `protobuf:"bytes,3,opt,name=event,proto3" json:"event,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateEventRequest) Reset() { + *x = CreateEventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateEventRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateEventRequest) ProtoMessage() {} + +func (x *CreateEventRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 CreateEventRequest.ProtoReflect.Descriptor instead. +func (*CreateEventRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{19} +} + +func (x *CreateEventRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateEventRequest) GetEventId() string { + if x != nil { + return x.EventId + } + return "" +} + +func (x *CreateEventRequest) GetEvent() *Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *CreateEventRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Event. +type UpdateEventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Event resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. A field will be overwritten if it is in the mask. If the + // user does not provide a mask then all fields will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated. + Event *Event `protobuf:"bytes,2,opt,name=event,proto3" json:"event,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateEventRequest) Reset() { + *x = UpdateEventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateEventRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateEventRequest) ProtoMessage() {} + +func (x *UpdateEventRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_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 UpdateEventRequest.ProtoReflect.Descriptor instead. +func (*UpdateEventRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{20} +} + +func (x *UpdateEventRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateEventRequest) GetEvent() *Event { + if x != nil { + return x.Event + } + return nil +} + +func (x *UpdateEventRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Event. +type DeleteEventRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteEventRequest) Reset() { + *x = DeleteEventRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteEventRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteEventRequest) ProtoMessage() {} + +func (x *DeleteEventRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[21] + 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 DeleteEventRequest.ProtoReflect.Descriptor instead. +func (*DeleteEventRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{21} +} + +func (x *DeleteEventRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteEventRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for requesting list of Series. +type ListSeriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Parent value for ListSeriesRequest. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. Server may return fewer items than requested. + // If unspecified, server will pick an appropriate default. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Filtering results. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` + // Hint for how to order the results. + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` +} + +func (x *ListSeriesRequest) Reset() { + *x = ListSeriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSeriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSeriesRequest) ProtoMessage() {} + +func (x *ListSeriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[22] + 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 ListSeriesRequest.ProtoReflect.Descriptor instead. +func (*ListSeriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{22} +} + +func (x *ListSeriesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSeriesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSeriesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListSeriesRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +func (x *ListSeriesRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + +// Message for response to listing Series. +type ListSeriesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of Series. + Series []*Series `protobuf:"bytes,1,rep,name=series,proto3" json:"series,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Locations that could not be reached. + Unreachable []string `protobuf:"bytes,3,rep,name=unreachable,proto3" json:"unreachable,omitempty"` +} + +func (x *ListSeriesResponse) Reset() { + *x = ListSeriesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSeriesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSeriesResponse) ProtoMessage() {} + +func (x *ListSeriesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[23] + 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 ListSeriesResponse.ProtoReflect.Descriptor instead. +func (*ListSeriesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{23} +} + +func (x *ListSeriesResponse) GetSeries() []*Series { + if x != nil { + return x.Series + } + return nil +} + +func (x *ListSeriesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListSeriesResponse) GetUnreachable() []string { + if x != nil { + return x.Unreachable + } + return nil +} + +// Message for getting a Series. +type GetSeriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSeriesRequest) Reset() { + *x = GetSeriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSeriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSeriesRequest) ProtoMessage() {} + +func (x *GetSeriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[24] + 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 GetSeriesRequest.ProtoReflect.Descriptor instead. +func (*GetSeriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{24} +} + +func (x *GetSeriesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Message for creating a Series. +type CreateSeriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the requesting object. + SeriesId string `protobuf:"bytes,2,opt,name=series_id,json=seriesId,proto3" json:"series_id,omitempty"` + // Required. The resource being created. + Series *Series `protobuf:"bytes,3,opt,name=series,proto3" json:"series,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *CreateSeriesRequest) Reset() { + *x = CreateSeriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSeriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSeriesRequest) ProtoMessage() {} + +func (x *CreateSeriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[25] + 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 CreateSeriesRequest.ProtoReflect.Descriptor instead. +func (*CreateSeriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{25} +} + +func (x *CreateSeriesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSeriesRequest) GetSeriesId() string { + if x != nil { + return x.SeriesId + } + return "" +} + +func (x *CreateSeriesRequest) GetSeries() *Series { + if x != nil { + return x.Series + } + return nil +} + +func (x *CreateSeriesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for updating a Series. +type UpdateSeriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Field mask is used to specify the fields to be overwritten in the + // Series resource by the update. The fields specified in the update_mask are + // relative to the resource, not the full request. A field will be overwritten + // if it is in the mask. If the user does not provide a mask then all fields + // will be overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,1,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Required. The resource being updated + Series *Series `protobuf:"bytes,2,opt,name=series,proto3" json:"series,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,3,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *UpdateSeriesRequest) Reset() { + *x = UpdateSeriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSeriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSeriesRequest) ProtoMessage() {} + +func (x *UpdateSeriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[26] + 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 UpdateSeriesRequest.ProtoReflect.Descriptor instead. +func (*UpdateSeriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{26} +} + +func (x *UpdateSeriesRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +func (x *UpdateSeriesRequest) GetSeries() *Series { + if x != nil { + return x.Series + } + return nil +} + +func (x *UpdateSeriesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for deleting a Series. +type DeleteSeriesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes after the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,2,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *DeleteSeriesRequest) Reset() { + *x = DeleteSeriesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSeriesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSeriesRequest) ProtoMessage() {} + +func (x *DeleteSeriesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[27] + 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 DeleteSeriesRequest.ProtoReflect.Descriptor instead. +func (*DeleteSeriesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{27} +} + +func (x *DeleteSeriesRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DeleteSeriesRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +// Message for materializing a channel. +type MaterializeChannelRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for parent. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. Id of the channel. + ChannelId string `protobuf:"bytes,2,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"` + // Required. The resource being created. + Channel *Channel `protobuf:"bytes,3,opt,name=channel,proto3" json:"channel,omitempty"` + // Optional. An optional request ID to identify requests. Specify a unique + // request ID so that if you must retry your request, the server will know to + // ignore the request if it has already been completed. The server will + // guarantee that for at least 60 minutes since the first request. + // + // For example, consider a situation where you make an initial request and the + // request times out. If you make the request again with the same request ID, + // the server can check if original operation with the same request ID was + // received, and if so, will ignore the second request. This prevents clients + // from accidentally creating duplicate commitments. + // + // The request ID must be a valid UUID with the exception that zero UUID is + // not supported (00000000-0000-0000-0000-000000000000). + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` +} + +func (x *MaterializeChannelRequest) Reset() { + *x = MaterializeChannelRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MaterializeChannelRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MaterializeChannelRequest) ProtoMessage() {} + +func (x *MaterializeChannelRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_streams_service_proto_msgTypes[28] + 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 MaterializeChannelRequest.ProtoReflect.Descriptor instead. +func (*MaterializeChannelRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP(), []int{28} +} + +func (x *MaterializeChannelRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *MaterializeChannelRequest) GetChannelId() string { + if x != nil { + return x.ChannelId + } + return "" +} + +func (x *MaterializeChannelRequest) GetChannel() *Channel { + if x != nil { + return x.Channel + } + return nil +} + +func (x *MaterializeChannelRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + +var File_google_cloud_visionai_v1_streams_service_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_streams_service_proto_rawDesc = []byte{ + 0x0a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0x25, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x30, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 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, 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, 0xc7, 0x01, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x9f, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, + 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x50, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x12, 0x1f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xbe, 0x01, + 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x40, 0x0a, 0x07, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x77, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 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, 0x9b, + 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 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, 0x4e, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, + 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, + 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x13, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x3d, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xa4, + 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x68, 0x75, 0x6d, + 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2b, 0x0a, 0x0f, 0x67, 0x63, 0x73, + 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x67, 0x63, 0x73, 0x4f, 0x62, 0x6a, 0x65, + 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x0a, 0x1d, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x22, 0x7b, 0x0a, 0x1e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x43, 0x0a, 0x0f, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x52, 0x0e, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, + 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x97, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 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, 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, 0x4c, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x01, 0x0a, + 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x65, 0x76, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x49, 0x64, 0x22, 0xb6, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x76, 0x65, 0x6e, 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, 0x3a, 0x0a, + 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, + 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x73, 0x0a, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x49, 0x64, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, + 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 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, 0x98, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 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, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x09, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x49, 0x64, 0x12, 0x3d, + 0x0a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, + 0x64, 0x22, 0xba, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, + 0x65, 0x73, 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, 0x3d, 0x0a, 0x06, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0x75, + 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x49, 0x64, 0x22, 0xe6, 0x01, 0x0a, 0x19, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, + 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x27, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x21, 0x0a, 0x1f, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x07, 0x63, 0x68, 0x61, 0x6e, + 0x6e, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x07, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0a, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, + 0xe0, 0x41, 0x01, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x32, 0xbc, + 0x25, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0xac, 0x01, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x3d, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2e, 0x12, 0x2c, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x12, 0x99, 0x01, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, + 0x3b, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, + 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd8, 0x01, 0x0a, + 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2e, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x78, 0xca, + 0x41, 0x1c, 0x0a, 0x07, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x11, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x2c, + 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, + 0x3a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x22, 0x2c, 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, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0xda, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 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, 0x7a, 0xca, 0x41, 0x1c, 0x0a, 0x07, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x13, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x07, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x32, 0x34, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc8, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x68, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x12, 0x11, 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, + 0x2e, 0x2a, 0x2c, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xb3, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, + 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0xda, 0x41, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x12, 0x36, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0xa0, 0x01, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x22, 0x45, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, + 0x12, 0x36, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdc, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 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, 0x1b, 0x0a, 0x06, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x11, 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, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x69, + 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, + 0x36, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0xdf, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 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, 0x80, 0x01, 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x47, 0x3a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x32, 0x3d, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd0, 0x01, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 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, 0x72, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 0x38, 0x2a, 0x36, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, + 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x86, 0x02, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, + 0x61, 0x69, 0x6c, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, + 0x6c, 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, 0x9b, 0x01, 0xca, 0x41, 0x2f, 0x0a, 0x1a, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x16, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2c, 0x67, 0x63, 0x73, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x3a, 0x01, 0x2a, 0x22, 0x45, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x74, 0x54, 0x68, 0x75, 0x6d, + 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0xf0, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x63, 0xda, 0x41, 0x06, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x54, 0x3a, 0x01, 0x2a, 0x22, 0x4f, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 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, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x2f, 0x2a, + 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x48, 0x6c, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xaf, 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x37, 0x12, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 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, 0x79, 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x65, + 0x76, 0x65, 0x6e, 0x74, 0x2c, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x3e, 0x3a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x35, 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, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 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, 0x7b, + 0xca, 0x41, 0x1a, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x11, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x32, 0x3b, + 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x65, 0x76, 0x65, 0x6e, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, + 0x2a, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcd, 0x01, 0x0a, 0x0b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x45, 0x76, 0x65, + 0x6e, 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, 0x71, 0xca, 0x41, 0x2a, 0x0a, 0x15, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x73, 0x2f, + 0x2a, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x0a, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 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, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x9f, 0x01, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xdb, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, + 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 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, 0x7d, + 0xca, 0x41, 0x1b, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x11, 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, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2c, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x06, + 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x22, 0x35, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0xdd, 0x01, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 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, 0x7f, 0xca, 0x41, + 0x1b, 0x0a, 0x06, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x11, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x12, 0x73, + 0x65, 0x72, 0x69, 0x65, 0x73, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x46, 0x3a, 0x06, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x32, + 0x3c, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, + 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, + 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x53, 0x65, 0x72, 0x69, 0x65, 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, 0x71, 0xca, 0x41, + 0x2a, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x11, 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, 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, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, + 0xee, 0x01, 0x0a, 0x12, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, + 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x43, 0x68, 0x61, + 0x6e, 0x6e, 0x65, 0x6c, 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, 0x83, 0x01, 0xca, 0x41, 0x1c, + 0x0a, 0x07, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x12, 0x11, 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, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x2c, 0x63, 0x68, + 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x3a, 0x07, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 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, 0x2f, 0x63, 0x6c, 0x75, 0x73, + 0x74, 0x65, 0x72, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, + 0x1a, 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0xc3, 0x01, + 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x13, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, + 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, + 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_streams_service_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_streams_service_proto_rawDescData = file_google_cloud_visionai_v1_streams_service_proto_rawDesc +) + +func file_google_cloud_visionai_v1_streams_service_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_streams_service_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_streams_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_streams_service_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_streams_service_proto_rawDescData +} + +var file_google_cloud_visionai_v1_streams_service_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_google_cloud_visionai_v1_streams_service_proto_goTypes = []interface{}{ + (*ListClustersRequest)(nil), // 0: google.cloud.visionai.v1.ListClustersRequest + (*ListClustersResponse)(nil), // 1: google.cloud.visionai.v1.ListClustersResponse + (*GetClusterRequest)(nil), // 2: google.cloud.visionai.v1.GetClusterRequest + (*CreateClusterRequest)(nil), // 3: google.cloud.visionai.v1.CreateClusterRequest + (*UpdateClusterRequest)(nil), // 4: google.cloud.visionai.v1.UpdateClusterRequest + (*DeleteClusterRequest)(nil), // 5: google.cloud.visionai.v1.DeleteClusterRequest + (*ListStreamsRequest)(nil), // 6: google.cloud.visionai.v1.ListStreamsRequest + (*ListStreamsResponse)(nil), // 7: google.cloud.visionai.v1.ListStreamsResponse + (*GetStreamRequest)(nil), // 8: google.cloud.visionai.v1.GetStreamRequest + (*CreateStreamRequest)(nil), // 9: google.cloud.visionai.v1.CreateStreamRequest + (*UpdateStreamRequest)(nil), // 10: google.cloud.visionai.v1.UpdateStreamRequest + (*DeleteStreamRequest)(nil), // 11: google.cloud.visionai.v1.DeleteStreamRequest + (*GetStreamThumbnailRequest)(nil), // 12: google.cloud.visionai.v1.GetStreamThumbnailRequest + (*GetStreamThumbnailResponse)(nil), // 13: google.cloud.visionai.v1.GetStreamThumbnailResponse + (*GenerateStreamHlsTokenRequest)(nil), // 14: google.cloud.visionai.v1.GenerateStreamHlsTokenRequest + (*GenerateStreamHlsTokenResponse)(nil), // 15: google.cloud.visionai.v1.GenerateStreamHlsTokenResponse + (*ListEventsRequest)(nil), // 16: google.cloud.visionai.v1.ListEventsRequest + (*ListEventsResponse)(nil), // 17: google.cloud.visionai.v1.ListEventsResponse + (*GetEventRequest)(nil), // 18: google.cloud.visionai.v1.GetEventRequest + (*CreateEventRequest)(nil), // 19: google.cloud.visionai.v1.CreateEventRequest + (*UpdateEventRequest)(nil), // 20: google.cloud.visionai.v1.UpdateEventRequest + (*DeleteEventRequest)(nil), // 21: google.cloud.visionai.v1.DeleteEventRequest + (*ListSeriesRequest)(nil), // 22: google.cloud.visionai.v1.ListSeriesRequest + (*ListSeriesResponse)(nil), // 23: google.cloud.visionai.v1.ListSeriesResponse + (*GetSeriesRequest)(nil), // 24: google.cloud.visionai.v1.GetSeriesRequest + (*CreateSeriesRequest)(nil), // 25: google.cloud.visionai.v1.CreateSeriesRequest + (*UpdateSeriesRequest)(nil), // 26: google.cloud.visionai.v1.UpdateSeriesRequest + (*DeleteSeriesRequest)(nil), // 27: google.cloud.visionai.v1.DeleteSeriesRequest + (*MaterializeChannelRequest)(nil), // 28: google.cloud.visionai.v1.MaterializeChannelRequest + (*Cluster)(nil), // 29: google.cloud.visionai.v1.Cluster + (*fieldmaskpb.FieldMask)(nil), // 30: google.protobuf.FieldMask + (*Stream)(nil), // 31: google.cloud.visionai.v1.Stream + (*timestamppb.Timestamp)(nil), // 32: google.protobuf.Timestamp + (*Event)(nil), // 33: google.cloud.visionai.v1.Event + (*Series)(nil), // 34: google.cloud.visionai.v1.Series + (*Channel)(nil), // 35: google.cloud.visionai.v1.Channel + (*longrunningpb.Operation)(nil), // 36: google.longrunning.Operation +} +var file_google_cloud_visionai_v1_streams_service_proto_depIdxs = []int32{ + 29, // 0: google.cloud.visionai.v1.ListClustersResponse.clusters:type_name -> google.cloud.visionai.v1.Cluster + 29, // 1: google.cloud.visionai.v1.CreateClusterRequest.cluster:type_name -> google.cloud.visionai.v1.Cluster + 30, // 2: google.cloud.visionai.v1.UpdateClusterRequest.update_mask:type_name -> google.protobuf.FieldMask + 29, // 3: google.cloud.visionai.v1.UpdateClusterRequest.cluster:type_name -> google.cloud.visionai.v1.Cluster + 31, // 4: google.cloud.visionai.v1.ListStreamsResponse.streams:type_name -> google.cloud.visionai.v1.Stream + 31, // 5: google.cloud.visionai.v1.CreateStreamRequest.stream:type_name -> google.cloud.visionai.v1.Stream + 30, // 6: google.cloud.visionai.v1.UpdateStreamRequest.update_mask:type_name -> google.protobuf.FieldMask + 31, // 7: google.cloud.visionai.v1.UpdateStreamRequest.stream:type_name -> google.cloud.visionai.v1.Stream + 32, // 8: google.cloud.visionai.v1.GenerateStreamHlsTokenResponse.expiration_time:type_name -> google.protobuf.Timestamp + 33, // 9: google.cloud.visionai.v1.ListEventsResponse.events:type_name -> google.cloud.visionai.v1.Event + 33, // 10: google.cloud.visionai.v1.CreateEventRequest.event:type_name -> google.cloud.visionai.v1.Event + 30, // 11: google.cloud.visionai.v1.UpdateEventRequest.update_mask:type_name -> google.protobuf.FieldMask + 33, // 12: google.cloud.visionai.v1.UpdateEventRequest.event:type_name -> google.cloud.visionai.v1.Event + 34, // 13: google.cloud.visionai.v1.ListSeriesResponse.series:type_name -> google.cloud.visionai.v1.Series + 34, // 14: google.cloud.visionai.v1.CreateSeriesRequest.series:type_name -> google.cloud.visionai.v1.Series + 30, // 15: google.cloud.visionai.v1.UpdateSeriesRequest.update_mask:type_name -> google.protobuf.FieldMask + 34, // 16: google.cloud.visionai.v1.UpdateSeriesRequest.series:type_name -> google.cloud.visionai.v1.Series + 35, // 17: google.cloud.visionai.v1.MaterializeChannelRequest.channel:type_name -> google.cloud.visionai.v1.Channel + 0, // 18: google.cloud.visionai.v1.StreamsService.ListClusters:input_type -> google.cloud.visionai.v1.ListClustersRequest + 2, // 19: google.cloud.visionai.v1.StreamsService.GetCluster:input_type -> google.cloud.visionai.v1.GetClusterRequest + 3, // 20: google.cloud.visionai.v1.StreamsService.CreateCluster:input_type -> google.cloud.visionai.v1.CreateClusterRequest + 4, // 21: google.cloud.visionai.v1.StreamsService.UpdateCluster:input_type -> google.cloud.visionai.v1.UpdateClusterRequest + 5, // 22: google.cloud.visionai.v1.StreamsService.DeleteCluster:input_type -> google.cloud.visionai.v1.DeleteClusterRequest + 6, // 23: google.cloud.visionai.v1.StreamsService.ListStreams:input_type -> google.cloud.visionai.v1.ListStreamsRequest + 8, // 24: google.cloud.visionai.v1.StreamsService.GetStream:input_type -> google.cloud.visionai.v1.GetStreamRequest + 9, // 25: google.cloud.visionai.v1.StreamsService.CreateStream:input_type -> google.cloud.visionai.v1.CreateStreamRequest + 10, // 26: google.cloud.visionai.v1.StreamsService.UpdateStream:input_type -> google.cloud.visionai.v1.UpdateStreamRequest + 11, // 27: google.cloud.visionai.v1.StreamsService.DeleteStream:input_type -> google.cloud.visionai.v1.DeleteStreamRequest + 12, // 28: google.cloud.visionai.v1.StreamsService.GetStreamThumbnail:input_type -> google.cloud.visionai.v1.GetStreamThumbnailRequest + 14, // 29: google.cloud.visionai.v1.StreamsService.GenerateStreamHlsToken:input_type -> google.cloud.visionai.v1.GenerateStreamHlsTokenRequest + 16, // 30: google.cloud.visionai.v1.StreamsService.ListEvents:input_type -> google.cloud.visionai.v1.ListEventsRequest + 18, // 31: google.cloud.visionai.v1.StreamsService.GetEvent:input_type -> google.cloud.visionai.v1.GetEventRequest + 19, // 32: google.cloud.visionai.v1.StreamsService.CreateEvent:input_type -> google.cloud.visionai.v1.CreateEventRequest + 20, // 33: google.cloud.visionai.v1.StreamsService.UpdateEvent:input_type -> google.cloud.visionai.v1.UpdateEventRequest + 21, // 34: google.cloud.visionai.v1.StreamsService.DeleteEvent:input_type -> google.cloud.visionai.v1.DeleteEventRequest + 22, // 35: google.cloud.visionai.v1.StreamsService.ListSeries:input_type -> google.cloud.visionai.v1.ListSeriesRequest + 24, // 36: google.cloud.visionai.v1.StreamsService.GetSeries:input_type -> google.cloud.visionai.v1.GetSeriesRequest + 25, // 37: google.cloud.visionai.v1.StreamsService.CreateSeries:input_type -> google.cloud.visionai.v1.CreateSeriesRequest + 26, // 38: google.cloud.visionai.v1.StreamsService.UpdateSeries:input_type -> google.cloud.visionai.v1.UpdateSeriesRequest + 27, // 39: google.cloud.visionai.v1.StreamsService.DeleteSeries:input_type -> google.cloud.visionai.v1.DeleteSeriesRequest + 28, // 40: google.cloud.visionai.v1.StreamsService.MaterializeChannel:input_type -> google.cloud.visionai.v1.MaterializeChannelRequest + 1, // 41: google.cloud.visionai.v1.StreamsService.ListClusters:output_type -> google.cloud.visionai.v1.ListClustersResponse + 29, // 42: google.cloud.visionai.v1.StreamsService.GetCluster:output_type -> google.cloud.visionai.v1.Cluster + 36, // 43: google.cloud.visionai.v1.StreamsService.CreateCluster:output_type -> google.longrunning.Operation + 36, // 44: google.cloud.visionai.v1.StreamsService.UpdateCluster:output_type -> google.longrunning.Operation + 36, // 45: google.cloud.visionai.v1.StreamsService.DeleteCluster:output_type -> google.longrunning.Operation + 7, // 46: google.cloud.visionai.v1.StreamsService.ListStreams:output_type -> google.cloud.visionai.v1.ListStreamsResponse + 31, // 47: google.cloud.visionai.v1.StreamsService.GetStream:output_type -> google.cloud.visionai.v1.Stream + 36, // 48: google.cloud.visionai.v1.StreamsService.CreateStream:output_type -> google.longrunning.Operation + 36, // 49: google.cloud.visionai.v1.StreamsService.UpdateStream:output_type -> google.longrunning.Operation + 36, // 50: google.cloud.visionai.v1.StreamsService.DeleteStream:output_type -> google.longrunning.Operation + 36, // 51: google.cloud.visionai.v1.StreamsService.GetStreamThumbnail:output_type -> google.longrunning.Operation + 15, // 52: google.cloud.visionai.v1.StreamsService.GenerateStreamHlsToken:output_type -> google.cloud.visionai.v1.GenerateStreamHlsTokenResponse + 17, // 53: google.cloud.visionai.v1.StreamsService.ListEvents:output_type -> google.cloud.visionai.v1.ListEventsResponse + 33, // 54: google.cloud.visionai.v1.StreamsService.GetEvent:output_type -> google.cloud.visionai.v1.Event + 36, // 55: google.cloud.visionai.v1.StreamsService.CreateEvent:output_type -> google.longrunning.Operation + 36, // 56: google.cloud.visionai.v1.StreamsService.UpdateEvent:output_type -> google.longrunning.Operation + 36, // 57: google.cloud.visionai.v1.StreamsService.DeleteEvent:output_type -> google.longrunning.Operation + 23, // 58: google.cloud.visionai.v1.StreamsService.ListSeries:output_type -> google.cloud.visionai.v1.ListSeriesResponse + 34, // 59: google.cloud.visionai.v1.StreamsService.GetSeries:output_type -> google.cloud.visionai.v1.Series + 36, // 60: google.cloud.visionai.v1.StreamsService.CreateSeries:output_type -> google.longrunning.Operation + 36, // 61: google.cloud.visionai.v1.StreamsService.UpdateSeries:output_type -> google.longrunning.Operation + 36, // 62: google.cloud.visionai.v1.StreamsService.DeleteSeries:output_type -> google.longrunning.Operation + 36, // 63: google.cloud.visionai.v1.StreamsService.MaterializeChannel:output_type -> google.longrunning.Operation + 41, // [41:64] is the sub-list for method output_type + 18, // [18:41] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_streams_service_proto_init() } +func file_google_cloud_visionai_v1_streams_service_proto_init() { + if File_google_cloud_visionai_v1_streams_service_proto != nil { + return + } + file_google_cloud_visionai_v1_common_proto_init() + file_google_cloud_visionai_v1_streams_resources_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListClustersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListClustersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteClusterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStreamsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListStreamsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteStreamRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStreamThumbnailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStreamThumbnailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateStreamHlsTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateStreamHlsTokenResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEventsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListEventsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteEventRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSeriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSeriesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSeriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSeriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSeriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSeriesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_streams_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MaterializeChannelRequest); 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_visionai_v1_streams_service_proto_rawDesc, + NumEnums: 0, + NumMessages: 29, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_streams_service_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_streams_service_proto_depIdxs, + MessageInfos: file_google_cloud_visionai_v1_streams_service_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_streams_service_proto = out.File + file_google_cloud_visionai_v1_streams_service_proto_rawDesc = nil + file_google_cloud_visionai_v1_streams_service_proto_goTypes = nil + file_google_cloud_visionai_v1_streams_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 + +// StreamsServiceClient is the client API for StreamsService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type StreamsServiceClient interface { + // Lists Clusters in a given project and location. + ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error) + // Gets details of a single Cluster. + GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error) + // Creates a new Cluster in a given project and location. + CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Cluster. + UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Cluster. + DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Streams in a given project and location. + ListStreams(ctx context.Context, in *ListStreamsRequest, opts ...grpc.CallOption) (*ListStreamsResponse, error) + // Gets details of a single Stream. + GetStream(ctx context.Context, in *GetStreamRequest, opts ...grpc.CallOption) (*Stream, error) + // Creates a new Stream in a given project and location. + CreateStream(ctx context.Context, in *CreateStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Stream. + UpdateStream(ctx context.Context, in *UpdateStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Stream. + DeleteStream(ctx context.Context, in *DeleteStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets the thumbnail (image snapshot) of a single Stream. + GetStreamThumbnail(ctx context.Context, in *GetStreamThumbnailRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Generate the JWT auth token required to get the stream HLS contents. + GenerateStreamHlsToken(ctx context.Context, in *GenerateStreamHlsTokenRequest, opts ...grpc.CallOption) (*GenerateStreamHlsTokenResponse, error) + // Lists Events in a given project and location. + ListEvents(ctx context.Context, in *ListEventsRequest, opts ...grpc.CallOption) (*ListEventsResponse, error) + // Gets details of a single Event. + GetEvent(ctx context.Context, in *GetEventRequest, opts ...grpc.CallOption) (*Event, error) + // Creates a new Event in a given project and location. + CreateEvent(ctx context.Context, in *CreateEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Event. + UpdateEvent(ctx context.Context, in *UpdateEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Event. + DeleteEvent(ctx context.Context, in *DeleteEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists Series in a given project and location. + ListSeries(ctx context.Context, in *ListSeriesRequest, opts ...grpc.CallOption) (*ListSeriesResponse, error) + // Gets details of a single Series. + GetSeries(ctx context.Context, in *GetSeriesRequest, opts ...grpc.CallOption) (*Series, error) + // Creates a new Series in a given project and location. + CreateSeries(ctx context.Context, in *CreateSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates the parameters of a single Event. + UpdateSeries(ctx context.Context, in *UpdateSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a single Series. + DeleteSeries(ctx context.Context, in *DeleteSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Materialize a channel. + MaterializeChannel(ctx context.Context, in *MaterializeChannelRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) +} + +type streamsServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewStreamsServiceClient(cc grpc.ClientConnInterface) StreamsServiceClient { + return &streamsServiceClient{cc} +} + +func (c *streamsServiceClient) ListClusters(ctx context.Context, in *ListClustersRequest, opts ...grpc.CallOption) (*ListClustersResponse, error) { + out := new(ListClustersResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/ListClusters", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GetCluster(ctx context.Context, in *GetClusterRequest, opts ...grpc.CallOption) (*Cluster, error) { + out := new(Cluster) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GetCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) CreateCluster(ctx context.Context, in *CreateClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/CreateCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) UpdateCluster(ctx context.Context, in *UpdateClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/UpdateCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) DeleteCluster(ctx context.Context, in *DeleteClusterRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/DeleteCluster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) ListStreams(ctx context.Context, in *ListStreamsRequest, opts ...grpc.CallOption) (*ListStreamsResponse, error) { + out := new(ListStreamsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/ListStreams", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GetStream(ctx context.Context, in *GetStreamRequest, opts ...grpc.CallOption) (*Stream, error) { + out := new(Stream) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GetStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) CreateStream(ctx context.Context, in *CreateStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/CreateStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) UpdateStream(ctx context.Context, in *UpdateStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/UpdateStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) DeleteStream(ctx context.Context, in *DeleteStreamRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/DeleteStream", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GetStreamThumbnail(ctx context.Context, in *GetStreamThumbnailRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GetStreamThumbnail", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GenerateStreamHlsToken(ctx context.Context, in *GenerateStreamHlsTokenRequest, opts ...grpc.CallOption) (*GenerateStreamHlsTokenResponse, error) { + out := new(GenerateStreamHlsTokenResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GenerateStreamHlsToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) ListEvents(ctx context.Context, in *ListEventsRequest, opts ...grpc.CallOption) (*ListEventsResponse, error) { + out := new(ListEventsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/ListEvents", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GetEvent(ctx context.Context, in *GetEventRequest, opts ...grpc.CallOption) (*Event, error) { + out := new(Event) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GetEvent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) CreateEvent(ctx context.Context, in *CreateEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/CreateEvent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) UpdateEvent(ctx context.Context, in *UpdateEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/UpdateEvent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) DeleteEvent(ctx context.Context, in *DeleteEventRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/DeleteEvent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) ListSeries(ctx context.Context, in *ListSeriesRequest, opts ...grpc.CallOption) (*ListSeriesResponse, error) { + out := new(ListSeriesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/ListSeries", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) GetSeries(ctx context.Context, in *GetSeriesRequest, opts ...grpc.CallOption) (*Series, error) { + out := new(Series) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/GetSeries", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) CreateSeries(ctx context.Context, in *CreateSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/CreateSeries", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) UpdateSeries(ctx context.Context, in *UpdateSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/UpdateSeries", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) DeleteSeries(ctx context.Context, in *DeleteSeriesRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/DeleteSeries", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *streamsServiceClient) MaterializeChannel(ctx context.Context, in *MaterializeChannelRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.StreamsService/MaterializeChannel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// StreamsServiceServer is the server API for StreamsService service. +type StreamsServiceServer interface { + // Lists Clusters in a given project and location. + ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error) + // Gets details of a single Cluster. + GetCluster(context.Context, *GetClusterRequest) (*Cluster, error) + // Creates a new Cluster in a given project and location. + CreateCluster(context.Context, *CreateClusterRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Cluster. + UpdateCluster(context.Context, *UpdateClusterRequest) (*longrunningpb.Operation, error) + // Deletes a single Cluster. + DeleteCluster(context.Context, *DeleteClusterRequest) (*longrunningpb.Operation, error) + // Lists Streams in a given project and location. + ListStreams(context.Context, *ListStreamsRequest) (*ListStreamsResponse, error) + // Gets details of a single Stream. + GetStream(context.Context, *GetStreamRequest) (*Stream, error) + // Creates a new Stream in a given project and location. + CreateStream(context.Context, *CreateStreamRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Stream. + UpdateStream(context.Context, *UpdateStreamRequest) (*longrunningpb.Operation, error) + // Deletes a single Stream. + DeleteStream(context.Context, *DeleteStreamRequest) (*longrunningpb.Operation, error) + // Gets the thumbnail (image snapshot) of a single Stream. + GetStreamThumbnail(context.Context, *GetStreamThumbnailRequest) (*longrunningpb.Operation, error) + // Generate the JWT auth token required to get the stream HLS contents. + GenerateStreamHlsToken(context.Context, *GenerateStreamHlsTokenRequest) (*GenerateStreamHlsTokenResponse, error) + // Lists Events in a given project and location. + ListEvents(context.Context, *ListEventsRequest) (*ListEventsResponse, error) + // Gets details of a single Event. + GetEvent(context.Context, *GetEventRequest) (*Event, error) + // Creates a new Event in a given project and location. + CreateEvent(context.Context, *CreateEventRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Event. + UpdateEvent(context.Context, *UpdateEventRequest) (*longrunningpb.Operation, error) + // Deletes a single Event. + DeleteEvent(context.Context, *DeleteEventRequest) (*longrunningpb.Operation, error) + // Lists Series in a given project and location. + ListSeries(context.Context, *ListSeriesRequest) (*ListSeriesResponse, error) + // Gets details of a single Series. + GetSeries(context.Context, *GetSeriesRequest) (*Series, error) + // Creates a new Series in a given project and location. + CreateSeries(context.Context, *CreateSeriesRequest) (*longrunningpb.Operation, error) + // Updates the parameters of a single Event. + UpdateSeries(context.Context, *UpdateSeriesRequest) (*longrunningpb.Operation, error) + // Deletes a single Series. + DeleteSeries(context.Context, *DeleteSeriesRequest) (*longrunningpb.Operation, error) + // Materialize a channel. + MaterializeChannel(context.Context, *MaterializeChannelRequest) (*longrunningpb.Operation, error) +} + +// UnimplementedStreamsServiceServer can be embedded to have forward compatible implementations. +type UnimplementedStreamsServiceServer struct { +} + +func (*UnimplementedStreamsServiceServer) ListClusters(context.Context, *ListClustersRequest) (*ListClustersResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListClusters not implemented") +} +func (*UnimplementedStreamsServiceServer) GetCluster(context.Context, *GetClusterRequest) (*Cluster, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetCluster not implemented") +} +func (*UnimplementedStreamsServiceServer) CreateCluster(context.Context, *CreateClusterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateCluster not implemented") +} +func (*UnimplementedStreamsServiceServer) UpdateCluster(context.Context, *UpdateClusterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateCluster not implemented") +} +func (*UnimplementedStreamsServiceServer) DeleteCluster(context.Context, *DeleteClusterRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteCluster not implemented") +} +func (*UnimplementedStreamsServiceServer) ListStreams(context.Context, *ListStreamsRequest) (*ListStreamsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListStreams not implemented") +} +func (*UnimplementedStreamsServiceServer) GetStream(context.Context, *GetStreamRequest) (*Stream, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStream not implemented") +} +func (*UnimplementedStreamsServiceServer) CreateStream(context.Context, *CreateStreamRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateStream not implemented") +} +func (*UnimplementedStreamsServiceServer) UpdateStream(context.Context, *UpdateStreamRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateStream not implemented") +} +func (*UnimplementedStreamsServiceServer) DeleteStream(context.Context, *DeleteStreamRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteStream not implemented") +} +func (*UnimplementedStreamsServiceServer) GetStreamThumbnail(context.Context, *GetStreamThumbnailRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStreamThumbnail not implemented") +} +func (*UnimplementedStreamsServiceServer) GenerateStreamHlsToken(context.Context, *GenerateStreamHlsTokenRequest) (*GenerateStreamHlsTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GenerateStreamHlsToken not implemented") +} +func (*UnimplementedStreamsServiceServer) ListEvents(context.Context, *ListEventsRequest) (*ListEventsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListEvents not implemented") +} +func (*UnimplementedStreamsServiceServer) GetEvent(context.Context, *GetEventRequest) (*Event, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetEvent not implemented") +} +func (*UnimplementedStreamsServiceServer) CreateEvent(context.Context, *CreateEventRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateEvent not implemented") +} +func (*UnimplementedStreamsServiceServer) UpdateEvent(context.Context, *UpdateEventRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateEvent not implemented") +} +func (*UnimplementedStreamsServiceServer) DeleteEvent(context.Context, *DeleteEventRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteEvent not implemented") +} +func (*UnimplementedStreamsServiceServer) ListSeries(context.Context, *ListSeriesRequest) (*ListSeriesResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListSeries not implemented") +} +func (*UnimplementedStreamsServiceServer) GetSeries(context.Context, *GetSeriesRequest) (*Series, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSeries not implemented") +} +func (*UnimplementedStreamsServiceServer) CreateSeries(context.Context, *CreateSeriesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateSeries not implemented") +} +func (*UnimplementedStreamsServiceServer) UpdateSeries(context.Context, *UpdateSeriesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateSeries not implemented") +} +func (*UnimplementedStreamsServiceServer) DeleteSeries(context.Context, *DeleteSeriesRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteSeries not implemented") +} +func (*UnimplementedStreamsServiceServer) MaterializeChannel(context.Context, *MaterializeChannelRequest) (*longrunningpb.Operation, error) { + return nil, status.Errorf(codes.Unimplemented, "method MaterializeChannel not implemented") +} + +func RegisterStreamsServiceServer(s *grpc.Server, srv StreamsServiceServer) { + s.RegisterService(&_StreamsService_serviceDesc, srv) +} + +func _StreamsService_ListClusters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListClustersRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).ListClusters(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/ListClusters", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).ListClusters(ctx, req.(*ListClustersRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GetCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GetCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GetCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GetCluster(ctx, req.(*GetClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_CreateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).CreateCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/CreateCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).CreateCluster(ctx, req.(*CreateClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_UpdateCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).UpdateCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/UpdateCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).UpdateCluster(ctx, req.(*UpdateClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_DeleteCluster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteClusterRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).DeleteCluster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/DeleteCluster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).DeleteCluster(ctx, req.(*DeleteClusterRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_ListStreams_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListStreamsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).ListStreams(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/ListStreams", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).ListStreams(ctx, req.(*ListStreamsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GetStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GetStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GetStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GetStream(ctx, req.(*GetStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_CreateStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).CreateStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/CreateStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).CreateStream(ctx, req.(*CreateStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_UpdateStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).UpdateStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/UpdateStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).UpdateStream(ctx, req.(*UpdateStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_DeleteStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteStreamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).DeleteStream(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/DeleteStream", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).DeleteStream(ctx, req.(*DeleteStreamRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GetStreamThumbnail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStreamThumbnailRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GetStreamThumbnail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GetStreamThumbnail", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GetStreamThumbnail(ctx, req.(*GetStreamThumbnailRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GenerateStreamHlsToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateStreamHlsTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GenerateStreamHlsToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GenerateStreamHlsToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GenerateStreamHlsToken(ctx, req.(*GenerateStreamHlsTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_ListEvents_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListEventsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).ListEvents(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/ListEvents", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).ListEvents(ctx, req.(*ListEventsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GetEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetEventRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GetEvent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GetEvent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GetEvent(ctx, req.(*GetEventRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_CreateEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateEventRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).CreateEvent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/CreateEvent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).CreateEvent(ctx, req.(*CreateEventRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_UpdateEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateEventRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).UpdateEvent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/UpdateEvent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).UpdateEvent(ctx, req.(*UpdateEventRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_DeleteEvent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteEventRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).DeleteEvent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/DeleteEvent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).DeleteEvent(ctx, req.(*DeleteEventRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_ListSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSeriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).ListSeries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/ListSeries", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).ListSeries(ctx, req.(*ListSeriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_GetSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSeriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).GetSeries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/GetSeries", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).GetSeries(ctx, req.(*GetSeriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_CreateSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSeriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).CreateSeries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/CreateSeries", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).CreateSeries(ctx, req.(*CreateSeriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_UpdateSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSeriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).UpdateSeries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/UpdateSeries", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).UpdateSeries(ctx, req.(*UpdateSeriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_DeleteSeries_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSeriesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).DeleteSeries(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/DeleteSeries", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).DeleteSeries(ctx, req.(*DeleteSeriesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _StreamsService_MaterializeChannel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MaterializeChannelRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamsServiceServer).MaterializeChannel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.StreamsService/MaterializeChannel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamsServiceServer).MaterializeChannel(ctx, req.(*MaterializeChannelRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _StreamsService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.StreamsService", + HandlerType: (*StreamsServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "ListClusters", + Handler: _StreamsService_ListClusters_Handler, + }, + { + MethodName: "GetCluster", + Handler: _StreamsService_GetCluster_Handler, + }, + { + MethodName: "CreateCluster", + Handler: _StreamsService_CreateCluster_Handler, + }, + { + MethodName: "UpdateCluster", + Handler: _StreamsService_UpdateCluster_Handler, + }, + { + MethodName: "DeleteCluster", + Handler: _StreamsService_DeleteCluster_Handler, + }, + { + MethodName: "ListStreams", + Handler: _StreamsService_ListStreams_Handler, + }, + { + MethodName: "GetStream", + Handler: _StreamsService_GetStream_Handler, + }, + { + MethodName: "CreateStream", + Handler: _StreamsService_CreateStream_Handler, + }, + { + MethodName: "UpdateStream", + Handler: _StreamsService_UpdateStream_Handler, + }, + { + MethodName: "DeleteStream", + Handler: _StreamsService_DeleteStream_Handler, + }, + { + MethodName: "GetStreamThumbnail", + Handler: _StreamsService_GetStreamThumbnail_Handler, + }, + { + MethodName: "GenerateStreamHlsToken", + Handler: _StreamsService_GenerateStreamHlsToken_Handler, + }, + { + MethodName: "ListEvents", + Handler: _StreamsService_ListEvents_Handler, + }, + { + MethodName: "GetEvent", + Handler: _StreamsService_GetEvent_Handler, + }, + { + MethodName: "CreateEvent", + Handler: _StreamsService_CreateEvent_Handler, + }, + { + MethodName: "UpdateEvent", + Handler: _StreamsService_UpdateEvent_Handler, + }, + { + MethodName: "DeleteEvent", + Handler: _StreamsService_DeleteEvent_Handler, + }, + { + MethodName: "ListSeries", + Handler: _StreamsService_ListSeries_Handler, + }, + { + MethodName: "GetSeries", + Handler: _StreamsService_GetSeries_Handler, + }, + { + MethodName: "CreateSeries", + Handler: _StreamsService_CreateSeries_Handler, + }, + { + MethodName: "UpdateSeries", + Handler: _StreamsService_UpdateSeries_Handler, + }, + { + MethodName: "DeleteSeries", + Handler: _StreamsService_DeleteSeries_Handler, + }, + { + MethodName: "MaterializeChannel", + Handler: _StreamsService_MaterializeChannel_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "google/cloud/visionai/v1/streams_service.proto", +} diff --git a/visionai/apiv1/visionaipb/warehouse.pb.go b/visionai/apiv1/visionaipb/warehouse.pb.go new file mode 100755 index 00000000000..4fc24cb8d2f --- /dev/null +++ b/visionai/apiv1/visionaipb/warehouse.pb.go @@ -0,0 +1,19909 @@ +// 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.32.0 +// protoc v4.23.2 +// source: google/cloud/visionai/v1/warehouse.proto + +package visionaipb + +import ( + context "context" + reflect "reflect" + sync "sync" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + _ "google.golang.org/genproto/googleapis/api/annotations" + status "google.golang.org/genproto/googleapis/rpc/status" + datetime "google.golang.org/genproto/googleapis/type/datetime" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status1 "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + 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) +) + +// Different types for a facet bucket. +type FacetBucketType int32 + +const ( + // Unspecified type. + FacetBucketType_FACET_BUCKET_TYPE_UNSPECIFIED FacetBucketType = 0 + // Value type. + FacetBucketType_FACET_BUCKET_TYPE_VALUE FacetBucketType = 1 + // Datetime type. + FacetBucketType_FACET_BUCKET_TYPE_DATETIME FacetBucketType = 2 + // Fixed Range type. + FacetBucketType_FACET_BUCKET_TYPE_FIXED_RANGE FacetBucketType = 3 + // Custom Range type. + FacetBucketType_FACET_BUCKET_TYPE_CUSTOM_RANGE FacetBucketType = 4 +) + +// Enum value maps for FacetBucketType. +var ( + FacetBucketType_name = map[int32]string{ + 0: "FACET_BUCKET_TYPE_UNSPECIFIED", + 1: "FACET_BUCKET_TYPE_VALUE", + 2: "FACET_BUCKET_TYPE_DATETIME", + 3: "FACET_BUCKET_TYPE_FIXED_RANGE", + 4: "FACET_BUCKET_TYPE_CUSTOM_RANGE", + } + FacetBucketType_value = map[string]int32{ + "FACET_BUCKET_TYPE_UNSPECIFIED": 0, + "FACET_BUCKET_TYPE_VALUE": 1, + "FACET_BUCKET_TYPE_DATETIME": 2, + "FACET_BUCKET_TYPE_FIXED_RANGE": 3, + "FACET_BUCKET_TYPE_CUSTOM_RANGE": 4, + } +) + +func (x FacetBucketType) Enum() *FacetBucketType { + p := new(FacetBucketType) + *p = x + return p +} + +func (x FacetBucketType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FacetBucketType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[0].Descriptor() +} + +func (FacetBucketType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[0] +} + +func (x FacetBucketType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FacetBucketType.Descriptor instead. +func (FacetBucketType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{0} +} + +// The state of the search capability. +type AnalyzeAssetMetadata_AnalysisStatus_State int32 + +const ( + // The default process state should never happen. + AnalyzeAssetMetadata_AnalysisStatus_STATE_UNSPECIFIED AnalyzeAssetMetadata_AnalysisStatus_State = 0 + // The feature is in progress. + AnalyzeAssetMetadata_AnalysisStatus_IN_PROGRESS AnalyzeAssetMetadata_AnalysisStatus_State = 1 + // The process is successfully done. + AnalyzeAssetMetadata_AnalysisStatus_SUCCEEDED AnalyzeAssetMetadata_AnalysisStatus_State = 2 + // The process failed. + AnalyzeAssetMetadata_AnalysisStatus_FAILED AnalyzeAssetMetadata_AnalysisStatus_State = 3 +) + +// Enum value maps for AnalyzeAssetMetadata_AnalysisStatus_State. +var ( + AnalyzeAssetMetadata_AnalysisStatus_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + 2: "SUCCEEDED", + 3: "FAILED", + } + AnalyzeAssetMetadata_AnalysisStatus_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + "SUCCEEDED": 2, + "FAILED": 3, + } +) + +func (x AnalyzeAssetMetadata_AnalysisStatus_State) Enum() *AnalyzeAssetMetadata_AnalysisStatus_State { + p := new(AnalyzeAssetMetadata_AnalysisStatus_State) + *p = x + return p +} + +func (x AnalyzeAssetMetadata_AnalysisStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnalyzeAssetMetadata_AnalysisStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[1].Descriptor() +} + +func (AnalyzeAssetMetadata_AnalysisStatus_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[1] +} + +func (x AnalyzeAssetMetadata_AnalysisStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnalyzeAssetMetadata_AnalysisStatus_State.Descriptor instead. +func (AnalyzeAssetMetadata_AnalysisStatus_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{14, 0, 0} +} + +// State enum for this asset's indexing. +type IndexingStatus_State int32 + +const ( + // The default process state should never happen. + IndexingStatus_STATE_UNSPECIFIED IndexingStatus_State = 0 + // The indexing is in progress. + IndexingStatus_IN_PROGRESS IndexingStatus_State = 1 + // The process is successfully done. + IndexingStatus_SUCCEEDED IndexingStatus_State = 2 + // The process failed. + IndexingStatus_FAILED IndexingStatus_State = 3 +) + +// Enum value maps for IndexingStatus_State. +var ( + IndexingStatus_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "IN_PROGRESS", + 2: "SUCCEEDED", + 3: "FAILED", + } + IndexingStatus_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "IN_PROGRESS": 1, + "SUCCEEDED": 2, + "FAILED": 3, + } +) + +func (x IndexingStatus_State) Enum() *IndexingStatus_State { + p := new(IndexingStatus_State) + *p = x + return p +} + +func (x IndexingStatus_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IndexingStatus_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[2].Descriptor() +} + +func (IndexingStatus_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[2] +} + +func (x IndexingStatus_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IndexingStatus_State.Descriptor instead. +func (IndexingStatus_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{16, 0} +} + +// Capability to perform different search on assets. +type SearchCapability_Type int32 + +const ( + // Unspecified search capability, should never be used. + SearchCapability_TYPE_UNSPECIFIED SearchCapability_Type = 0 + // Embedding search. + SearchCapability_EMBEDDING_SEARCH SearchCapability_Type = 1 +) + +// Enum value maps for SearchCapability_Type. +var ( + SearchCapability_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "EMBEDDING_SEARCH", + } + SearchCapability_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "EMBEDDING_SEARCH": 1, + } +) + +func (x SearchCapability_Type) Enum() *SearchCapability_Type { + p := new(SearchCapability_Type) + *p = x + return p +} + +func (x SearchCapability_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SearchCapability_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[3].Descriptor() +} + +func (SearchCapability_Type) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[3] +} + +func (x SearchCapability_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SearchCapability_Type.Descriptor instead. +func (SearchCapability_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{28, 0} +} + +// CollectionItem types. +type CollectionItem_Type int32 + +const ( + // The default type of item should never happen. + CollectionItem_TYPE_UNSPECIFIED CollectionItem_Type = 0 + // Asset type item. + CollectionItem_ASSET CollectionItem_Type = 1 +) + +// Enum value maps for CollectionItem_Type. +var ( + CollectionItem_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "ASSET", + } + CollectionItem_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "ASSET": 1, + } +) + +func (x CollectionItem_Type) Enum() *CollectionItem_Type { + p := new(CollectionItem_Type) + *p = x + return p +} + +func (x CollectionItem_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CollectionItem_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[4].Descriptor() +} + +func (CollectionItem_Type) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[4] +} + +func (x CollectionItem_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CollectionItem_Type.Descriptor instead. +func (CollectionItem_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{45, 0} +} + +// Enum representing the different states through which an Index might cycle +// during its lifetime. +type Index_State int32 + +const ( + // The default value. Should not be used. + Index_STATE_UNSPECIFIED Index_State = 0 + // State CREATING. + Index_CREATING Index_State = 1 + // State CREATED. + Index_CREATED Index_State = 2 + // State UPDATING. + Index_UPDATING Index_State = 3 +) + +// Enum value maps for Index_State. +var ( + Index_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "CREATED", + 3: "UPDATING", + } + Index_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "CREATED": 2, + "UPDATING": 3, + } +) + +func (x Index_State) Enum() *Index_State { + p := new(Index_State) + *p = x + return p +} + +func (x Index_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Index_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[5].Descriptor() +} + +func (Index_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[5] +} + +func (x Index_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Index_State.Descriptor instead. +func (Index_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{55, 0} +} + +// Type of the asset inside the corpus. +type Corpus_Type int32 + +const ( + // The default type, not supposed to be used. If this default type is used, + // the corpus will be created as STREAM_VIDEO corpus. + Corpus_TYPE_UNSPECIFIED Corpus_Type = 0 + // Asset is a live streaming video. + Corpus_STREAM_VIDEO Corpus_Type = 1 + // Asset is an image. + Corpus_IMAGE Corpus_Type = 2 + // Asset is a batch video. + Corpus_VIDEO_ON_DEMAND Corpus_Type = 3 +) + +// Enum value maps for Corpus_Type. +var ( + Corpus_Type_name = map[int32]string{ + 0: "TYPE_UNSPECIFIED", + 1: "STREAM_VIDEO", + 2: "IMAGE", + 3: "VIDEO_ON_DEMAND", + } + Corpus_Type_value = map[string]int32{ + "TYPE_UNSPECIFIED": 0, + "STREAM_VIDEO": 1, + "IMAGE": 2, + "VIDEO_ON_DEMAND": 3, + } +) + +func (x Corpus_Type) Enum() *Corpus_Type { + p := new(Corpus_Type) + *p = x + return p +} + +func (x Corpus_Type) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Corpus_Type) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[6].Descriptor() +} + +func (Corpus_Type) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[6] +} + +func (x Corpus_Type) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Corpus_Type.Descriptor instead. +func (Corpus_Type) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{57, 0} +} + +// Data type of the annotation. +type DataSchemaDetails_DataType int32 + +const ( + // Unspecified type. + DataSchemaDetails_DATA_TYPE_UNSPECIFIED DataSchemaDetails_DataType = 0 + // Integer type. + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH. + // Supports query by IntRangeArray. + DataSchemaDetails_INTEGER DataSchemaDetails_DataType = 1 + // Float type. + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH. + // Supports query by FloatRangeArray. + DataSchemaDetails_FLOAT DataSchemaDetails_DataType = 2 + // String type. + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH, + // - DataSchema.SearchStrategy.SMART_SEARCH. + DataSchemaDetails_STRING DataSchemaDetails_DataType = 3 + // Supported formats: + // %Y-%m-%dT%H:%M:%E*S%E*z (absl::RFC3339_full) + // %Y-%m-%dT%H:%M:%E*S + // %Y-%m-%dT%H:%M%E*z + // %Y-%m-%dT%H:%M + // %Y-%m-%dT%H%E*z + // %Y-%m-%dT%H + // %Y-%m-%d%E*z + // %Y-%m-%d + // %Y-%m + // %Y + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH. + // Supports query by DateTimeRangeArray. + DataSchemaDetails_DATETIME DataSchemaDetails_DataType = 5 + // Geo coordinate type. + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH. + // Supports query by GeoLocationArray. + DataSchemaDetails_GEO_COORDINATE DataSchemaDetails_DataType = 7 + // Type to pass any proto as available in annotations.proto. Only use + // internally. + // Available proto types and its corresponding search behavior: + // - ImageObjectDetectionPredictionResult, allows SMART_SEARCH on + // display_names and NO_SEARCH. + // - ClassificationPredictionResult, allows SMART_SEARCH on display_names + // and NO_SEARCH. + // - ImageSegmentationPredictionResult, allows NO_SEARCH. + // - VideoActionRecognitionPredictionResult, allows SMART_SEARCH on + // display_name and NO_SEARCH. + // - VideoObjectTrackingPredictionResult, allows SMART_SEARCH on + // display_name and NO_SEARCH. + // - VideoClassificationPredictionResult, allows SMART_SEARCH on + // display_name and NO_SEARCH. + // - OccupancyCountingPredictionResult, allows EXACT_SEARCH on + // stats.full_frame_count.count and NO_SEARCH. + // - ObjectDetectionPredictionResult, allows SMART_SEARCH on + // identified_boxes.entity.label_string and NO_SEARCH. + DataSchemaDetails_PROTO_ANY DataSchemaDetails_DataType = 8 + // Boolean type. + // Allowed search strategies: + // - DataSchema.SearchStrategy.NO_SEARCH, + // - DataSchema.SearchStrategy.EXACT_SEARCH. + DataSchemaDetails_BOOLEAN DataSchemaDetails_DataType = 9 + // List type. + // - Each element in the list must be of the exact same data schema; + // otherwise, they are invalid arguments. + // - List level cannot set search strategy. Leaf node level can do. + // - Elements cannot be another list (no list of list). + // - Elements can be CUSTOMIZED_STRUCT, and max number of layers is 10. + DataSchemaDetails_LIST DataSchemaDetails_DataType = 10 + // Struct type. + // - SearchStrategy: + // - Data Schema that's CUSTOMIZED_STRUCT cannot set search strategy. + // - Leaf-node elements allow setting search strategy based on element's + // SearchStrategy restriction. + // + // - Nested layer restrictions: + // - Data Schema that's CUSTOMIZED_STRUCT allows its fields to be of + // CUSTOMIZED_STRUCT as well, but the overall layers restriction is 10. + DataSchemaDetails_CUSTOMIZED_STRUCT DataSchemaDetails_DataType = 6 +) + +// Enum value maps for DataSchemaDetails_DataType. +var ( + DataSchemaDetails_DataType_name = map[int32]string{ + 0: "DATA_TYPE_UNSPECIFIED", + 1: "INTEGER", + 2: "FLOAT", + 3: "STRING", + 5: "DATETIME", + 7: "GEO_COORDINATE", + 8: "PROTO_ANY", + 9: "BOOLEAN", + 10: "LIST", + 6: "CUSTOMIZED_STRUCT", + } + DataSchemaDetails_DataType_value = map[string]int32{ + "DATA_TYPE_UNSPECIFIED": 0, + "INTEGER": 1, + "FLOAT": 2, + "STRING": 3, + "DATETIME": 5, + "GEO_COORDINATE": 7, + "PROTO_ANY": 8, + "BOOLEAN": 9, + "LIST": 10, + "CUSTOMIZED_STRUCT": 6, + } +) + +func (x DataSchemaDetails_DataType) Enum() *DataSchemaDetails_DataType { + p := new(DataSchemaDetails_DataType) + *p = x + return p +} + +func (x DataSchemaDetails_DataType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataSchemaDetails_DataType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[7].Descriptor() +} + +func (DataSchemaDetails_DataType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[7] +} + +func (x DataSchemaDetails_DataType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataSchemaDetails_DataType.Descriptor instead. +func (DataSchemaDetails_DataType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 0} +} + +// The granularity of annotations under this DataSchema. +type DataSchemaDetails_Granularity int32 + +const ( + // Unspecified granularity. + DataSchemaDetails_GRANULARITY_UNSPECIFIED DataSchemaDetails_Granularity = 0 + // Asset-level granularity (annotations must not contain partition info). + DataSchemaDetails_GRANULARITY_ASSET_LEVEL DataSchemaDetails_Granularity = 1 + // Partition-level granularity (annotations must contain partition info). + DataSchemaDetails_GRANULARITY_PARTITION_LEVEL DataSchemaDetails_Granularity = 2 +) + +// Enum value maps for DataSchemaDetails_Granularity. +var ( + DataSchemaDetails_Granularity_name = map[int32]string{ + 0: "GRANULARITY_UNSPECIFIED", + 1: "GRANULARITY_ASSET_LEVEL", + 2: "GRANULARITY_PARTITION_LEVEL", + } + DataSchemaDetails_Granularity_value = map[string]int32{ + "GRANULARITY_UNSPECIFIED": 0, + "GRANULARITY_ASSET_LEVEL": 1, + "GRANULARITY_PARTITION_LEVEL": 2, + } +) + +func (x DataSchemaDetails_Granularity) Enum() *DataSchemaDetails_Granularity { + p := new(DataSchemaDetails_Granularity) + *p = x + return p +} + +func (x DataSchemaDetails_Granularity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataSchemaDetails_Granularity) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[8].Descriptor() +} + +func (DataSchemaDetails_Granularity) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[8] +} + +func (x DataSchemaDetails_Granularity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataSchemaDetails_Granularity.Descriptor instead. +func (DataSchemaDetails_Granularity) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 1} +} + +// The types of search strategies to be applied on the annotation key. +type DataSchemaDetails_SearchStrategy_SearchStrategyType int32 + +const ( + // Annotatation values of the `key` above will not be searchable. + DataSchemaDetails_SearchStrategy_NO_SEARCH DataSchemaDetails_SearchStrategy_SearchStrategyType = 0 + // When searching with `key`, the value must be exactly as the annotation + // value that has been ingested. + DataSchemaDetails_SearchStrategy_EXACT_SEARCH DataSchemaDetails_SearchStrategy_SearchStrategyType = 1 + // When searching with `key`, Warehouse will perform broad search based on + // semantic of the annotation value. + DataSchemaDetails_SearchStrategy_SMART_SEARCH DataSchemaDetails_SearchStrategy_SearchStrategyType = 2 +) + +// Enum value maps for DataSchemaDetails_SearchStrategy_SearchStrategyType. +var ( + DataSchemaDetails_SearchStrategy_SearchStrategyType_name = map[int32]string{ + 0: "NO_SEARCH", + 1: "EXACT_SEARCH", + 2: "SMART_SEARCH", + } + DataSchemaDetails_SearchStrategy_SearchStrategyType_value = map[string]int32{ + "NO_SEARCH": 0, + "EXACT_SEARCH": 1, + "SMART_SEARCH": 2, + } +) + +func (x DataSchemaDetails_SearchStrategy_SearchStrategyType) Enum() *DataSchemaDetails_SearchStrategy_SearchStrategyType { + p := new(DataSchemaDetails_SearchStrategy_SearchStrategyType) + *p = x + return p +} + +func (x DataSchemaDetails_SearchStrategy_SearchStrategyType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DataSchemaDetails_SearchStrategy_SearchStrategyType) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[9].Descriptor() +} + +func (DataSchemaDetails_SearchStrategy_SearchStrategyType) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[9] +} + +func (x DataSchemaDetails_SearchStrategy_SearchStrategyType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DataSchemaDetails_SearchStrategy_SearchStrategyType.Descriptor instead. +func (DataSchemaDetails_SearchStrategy_SearchStrategyType) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 3, 0} +} + +// IndexEndpoint stage. +type IndexEndpoint_State int32 + +const ( + // The default value. Should not be used. + IndexEndpoint_STATE_UNSPECIFIED IndexEndpoint_State = 0 + // State CREATING. + IndexEndpoint_CREATING IndexEndpoint_State = 1 + // State CREATED. + IndexEndpoint_CREATED IndexEndpoint_State = 2 + // State UPDATING. + IndexEndpoint_UPDATING IndexEndpoint_State = 3 + // State FAILED. + IndexEndpoint_FAILED IndexEndpoint_State = 4 +) + +// Enum value maps for IndexEndpoint_State. +var ( + IndexEndpoint_State_name = map[int32]string{ + 0: "STATE_UNSPECIFIED", + 1: "CREATING", + 2: "CREATED", + 3: "UPDATING", + 4: "FAILED", + } + IndexEndpoint_State_value = map[string]int32{ + "STATE_UNSPECIFIED": 0, + "CREATING": 1, + "CREATED": 2, + "UPDATING": 3, + "FAILED": 4, + } +) + +func (x IndexEndpoint_State) Enum() *IndexEndpoint_State { + p := new(IndexEndpoint_State) + *p = x + return p +} + +func (x IndexEndpoint_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IndexEndpoint_State) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[10].Descriptor() +} + +func (IndexEndpoint_State) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[10] +} + +func (x IndexEndpoint_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IndexEndpoint_State.Descriptor instead. +func (IndexEndpoint_State) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{96, 0} +} + +// Granularity enum for the datetime bucket. +type FacetProperty_DateTimeBucketSpec_Granularity int32 + +const ( + // Unspecified granularity. + FacetProperty_DateTimeBucketSpec_GRANULARITY_UNSPECIFIED FacetProperty_DateTimeBucketSpec_Granularity = 0 + // Granularity is year. + FacetProperty_DateTimeBucketSpec_YEAR FacetProperty_DateTimeBucketSpec_Granularity = 1 + // Granularity is month. + FacetProperty_DateTimeBucketSpec_MONTH FacetProperty_DateTimeBucketSpec_Granularity = 2 + // Granularity is day. + FacetProperty_DateTimeBucketSpec_DAY FacetProperty_DateTimeBucketSpec_Granularity = 3 +) + +// Enum value maps for FacetProperty_DateTimeBucketSpec_Granularity. +var ( + FacetProperty_DateTimeBucketSpec_Granularity_name = map[int32]string{ + 0: "GRANULARITY_UNSPECIFIED", + 1: "YEAR", + 2: "MONTH", + 3: "DAY", + } + FacetProperty_DateTimeBucketSpec_Granularity_value = map[string]int32{ + "GRANULARITY_UNSPECIFIED": 0, + "YEAR": 1, + "MONTH": 2, + "DAY": 3, + } +) + +func (x FacetProperty_DateTimeBucketSpec_Granularity) Enum() *FacetProperty_DateTimeBucketSpec_Granularity { + p := new(FacetProperty_DateTimeBucketSpec_Granularity) + *p = x + return p +} + +func (x FacetProperty_DateTimeBucketSpec_Granularity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FacetProperty_DateTimeBucketSpec_Granularity) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[11].Descriptor() +} + +func (FacetProperty_DateTimeBucketSpec_Granularity) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[11] +} + +func (x FacetProperty_DateTimeBucketSpec_Granularity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FacetProperty_DateTimeBucketSpec_Granularity.Descriptor instead. +func (FacetProperty_DateTimeBucketSpec_Granularity) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{113, 2, 0} +} + +// Container format of the video. +type IngestAssetRequest_Config_VideoType_ContainerFormat int32 + +const ( + // The default type, not supposed to be used. + IngestAssetRequest_Config_VideoType_CONTAINER_FORMAT_UNSPECIFIED IngestAssetRequest_Config_VideoType_ContainerFormat = 0 + // Mp4 container format. + IngestAssetRequest_Config_VideoType_CONTAINER_FORMAT_MP4 IngestAssetRequest_Config_VideoType_ContainerFormat = 1 +) + +// Enum value maps for IngestAssetRequest_Config_VideoType_ContainerFormat. +var ( + IngestAssetRequest_Config_VideoType_ContainerFormat_name = map[int32]string{ + 0: "CONTAINER_FORMAT_UNSPECIFIED", + 1: "CONTAINER_FORMAT_MP4", + } + IngestAssetRequest_Config_VideoType_ContainerFormat_value = map[string]int32{ + "CONTAINER_FORMAT_UNSPECIFIED": 0, + "CONTAINER_FORMAT_MP4": 1, + } +) + +func (x IngestAssetRequest_Config_VideoType_ContainerFormat) Enum() *IngestAssetRequest_Config_VideoType_ContainerFormat { + p := new(IngestAssetRequest_Config_VideoType_ContainerFormat) + *p = x + return p +} + +func (x IngestAssetRequest_Config_VideoType_ContainerFormat) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (IngestAssetRequest_Config_VideoType_ContainerFormat) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[12].Descriptor() +} + +func (IngestAssetRequest_Config_VideoType_ContainerFormat) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[12] +} + +func (x IngestAssetRequest_Config_VideoType_ContainerFormat) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use IngestAssetRequest_Config_VideoType_ContainerFormat.Descriptor instead. +func (IngestAssetRequest_Config_VideoType_ContainerFormat) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{125, 0, 0, 0} +} + +// When one result has multiple values with the same key, specify +// which value is used to sort. By default, AGGREGATE_METHOD_LARGEST +// is used when results are sorted in decreasing order, +// AGGREGATE_METHOD_SMALLEST is used when results are sorted in +// incresing order. +type SchemaKeySortingStrategy_Option_AggregateMethod int32 + +const ( + // The unspecified aggregate method will be overwritten as mentioned + // above. + SchemaKeySortingStrategy_Option_AGGREGATE_METHOD_UNSPECIFIED SchemaKeySortingStrategy_Option_AggregateMethod = 0 + // Take the (lexicographical or numerical) largest value to sort. + SchemaKeySortingStrategy_Option_AGGREGATE_METHOD_LARGEST SchemaKeySortingStrategy_Option_AggregateMethod = 1 + // Take the (lexicographical or numerical) smallest value to sort. + SchemaKeySortingStrategy_Option_AGGREGATE_METHOD_SMALLEST SchemaKeySortingStrategy_Option_AggregateMethod = 2 +) + +// Enum value maps for SchemaKeySortingStrategy_Option_AggregateMethod. +var ( + SchemaKeySortingStrategy_Option_AggregateMethod_name = map[int32]string{ + 0: "AGGREGATE_METHOD_UNSPECIFIED", + 1: "AGGREGATE_METHOD_LARGEST", + 2: "AGGREGATE_METHOD_SMALLEST", + } + SchemaKeySortingStrategy_Option_AggregateMethod_value = map[string]int32{ + "AGGREGATE_METHOD_UNSPECIFIED": 0, + "AGGREGATE_METHOD_LARGEST": 1, + "AGGREGATE_METHOD_SMALLEST": 2, + } +) + +func (x SchemaKeySortingStrategy_Option_AggregateMethod) Enum() *SchemaKeySortingStrategy_Option_AggregateMethod { + p := new(SchemaKeySortingStrategy_Option_AggregateMethod) + *p = x + return p +} + +func (x SchemaKeySortingStrategy_Option_AggregateMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SchemaKeySortingStrategy_Option_AggregateMethod) Descriptor() protoreflect.EnumDescriptor { + return file_google_cloud_visionai_v1_warehouse_proto_enumTypes[13].Descriptor() +} + +func (SchemaKeySortingStrategy_Option_AggregateMethod) Type() protoreflect.EnumType { + return &file_google_cloud_visionai_v1_warehouse_proto_enumTypes[13] +} + +func (x SchemaKeySortingStrategy_Option_AggregateMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SchemaKeySortingStrategy_Option_AggregateMethod.Descriptor instead. +func (SchemaKeySortingStrategy_Option_AggregateMethod) EnumDescriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{134, 0, 0} +} + +// Request message for CreateAssetRequest. +type CreateAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this asset will be created. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The asset to create. + Asset *Asset `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` + // Optional. The ID to use for the asset, which will become the final + // component of the asset's resource name if user choose to specify. + // Otherwise, asset id will be generated by system. + // + // This value should be up to 63 characters, and valid characters + // are /[a-z][0-9]-/. The first character must be a letter, the last could be + // a letter or a number. + AssetId *string `protobuf:"bytes,3,opt,name=asset_id,json=assetId,proto3,oneof" json:"asset_id,omitempty"` +} + +func (x *CreateAssetRequest) Reset() { + *x = CreateAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAssetRequest) ProtoMessage() {} + +func (x *CreateAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 CreateAssetRequest.ProtoReflect.Descriptor instead. +func (*CreateAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{0} +} + +func (x *CreateAssetRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateAssetRequest) GetAsset() *Asset { + if x != nil { + return x.Asset + } + return nil +} + +func (x *CreateAssetRequest) GetAssetId() string { + if x != nil && x.AssetId != nil { + return *x.AssetId + } + return "" +} + +// Request message for GetAsset. +type GetAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the asset to retrieve. + // Format: + // projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetAssetRequest) Reset() { + *x = GetAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAssetRequest) ProtoMessage() {} + +func (x *GetAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 GetAssetRequest.ProtoReflect.Descriptor instead. +func (*GetAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{1} +} + +func (x *GetAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListAssets. +type ListAssetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent, which owns this collection of assets. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of assets to return. The service may return fewer than + // this value. + // If unspecified, at most 50 assets will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListAssets` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAssets` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The filter applied to the returned list. + // Only the following filterings are supported: + // "assets_with_contents = true", which returns assets with contents uploaded; + // "assets_with_contents = false", which returns assets without contents. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListAssetsRequest) Reset() { + *x = ListAssetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAssetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAssetsRequest) ProtoMessage() {} + +func (x *ListAssetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 ListAssetsRequest.ProtoReflect.Descriptor instead. +func (*ListAssetsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{2} +} + +func (x *ListAssetsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListAssetsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListAssetsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListAssetsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListAssets. +type ListAssetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The assets from the specified corpus. + Assets []*Asset `protobuf:"bytes,1,rep,name=assets,proto3" json:"assets,omitempty"` + // A token, which can be sent as `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 *ListAssetsResponse) Reset() { + *x = ListAssetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAssetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAssetsResponse) ProtoMessage() {} + +func (x *ListAssetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 ListAssetsResponse.ProtoReflect.Descriptor instead. +func (*ListAssetsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{3} +} + +func (x *ListAssetsResponse) GetAssets() []*Asset { + if x != nil { + return x.Assets + } + return nil +} + +func (x *ListAssetsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for UpdateAsset. +type UpdateAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The asset to update. + // + // The asset's `name` field is used to identify the asset to be updated. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}` + Asset *Asset `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + // The list of fields to be updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateAssetRequest) Reset() { + *x = UpdateAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAssetRequest) ProtoMessage() {} + +func (x *UpdateAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 UpdateAssetRequest.ProtoReflect.Descriptor instead. +func (*UpdateAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{4} +} + +func (x *UpdateAssetRequest) GetAsset() *Asset { + if x != nil { + return x.Asset + } + return nil +} + +func (x *UpdateAssetRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for DeleteAsset. +type DeleteAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the asset to delete. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteAssetRequest) Reset() { + *x = DeleteAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAssetRequest) ProtoMessage() {} + +func (x *DeleteAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 DeleteAssetRequest.ProtoReflect.Descriptor instead. +func (*DeleteAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{5} +} + +func (x *DeleteAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The source of the asset. +type AssetSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to SourceForm: + // + // *AssetSource_AssetGcsSource_ + // *AssetSource_AssetContentData_ + SourceForm isAssetSource_SourceForm `protobuf_oneof:"source_form"` +} + +func (x *AssetSource) Reset() { + *x = AssetSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssetSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssetSource) ProtoMessage() {} + +func (x *AssetSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 AssetSource.ProtoReflect.Descriptor instead. +func (*AssetSource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{6} +} + +func (m *AssetSource) GetSourceForm() isAssetSource_SourceForm { + if m != nil { + return m.SourceForm + } + return nil +} + +func (x *AssetSource) GetAssetGcsSource() *AssetSource_AssetGcsSource { + if x, ok := x.GetSourceForm().(*AssetSource_AssetGcsSource_); ok { + return x.AssetGcsSource + } + return nil +} + +func (x *AssetSource) GetAssetContentData() *AssetSource_AssetContentData { + if x, ok := x.GetSourceForm().(*AssetSource_AssetContentData_); ok { + return x.AssetContentData + } + return nil +} + +type isAssetSource_SourceForm interface { + isAssetSource_SourceForm() +} + +type AssetSource_AssetGcsSource_ struct { + // The source of the asset is from Cloud Storage. + AssetGcsSource *AssetSource_AssetGcsSource `protobuf:"bytes,1,opt,name=asset_gcs_source,json=assetGcsSource,proto3,oneof"` +} + +type AssetSource_AssetContentData_ struct { + // The source of the asset is from content bytes. + AssetContentData *AssetSource_AssetContentData `protobuf:"bytes,2,opt,name=asset_content_data,json=assetContentData,proto3,oneof"` +} + +func (*AssetSource_AssetGcsSource_) isAssetSource_SourceForm() {} + +func (*AssetSource_AssetContentData_) isAssetSource_SourceForm() {} + +// Request message for UploadAsset. +type UploadAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to upload. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The source of the asset. + AssetSource *AssetSource `protobuf:"bytes,2,opt,name=asset_source,json=assetSource,proto3" json:"asset_source,omitempty"` +} + +func (x *UploadAssetRequest) Reset() { + *x = UploadAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UploadAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UploadAssetRequest) ProtoMessage() {} + +func (x *UploadAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 UploadAssetRequest.ProtoReflect.Descriptor instead. +func (*UploadAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{7} +} + +func (x *UploadAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *UploadAssetRequest) GetAssetSource() *AssetSource { + if x != nil { + return x.AssetSource + } + return nil +} + +// Response message for UploadAsset. +type UploadAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UploadAssetResponse) Reset() { + *x = UploadAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UploadAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UploadAssetResponse) ProtoMessage() {} + +func (x *UploadAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 UploadAssetResponse.ProtoReflect.Descriptor instead. +func (*UploadAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{8} +} + +// Metadata for UploadAsset. +type UploadAssetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The start time of the operation. + StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The update time of the operation. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *UploadAssetMetadata) Reset() { + *x = UploadAssetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UploadAssetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UploadAssetMetadata) ProtoMessage() {} + +func (x *UploadAssetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 UploadAssetMetadata.ProtoReflect.Descriptor instead. +func (*UploadAssetMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{9} +} + +func (x *UploadAssetMetadata) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *UploadAssetMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Request message for GenerateRetrievalUrl API. +type GenerateRetrievalUrlRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to request signed url for. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GenerateRetrievalUrlRequest) Reset() { + *x = GenerateRetrievalUrlRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateRetrievalUrlRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateRetrievalUrlRequest) ProtoMessage() {} + +func (x *GenerateRetrievalUrlRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 GenerateRetrievalUrlRequest.ProtoReflect.Descriptor instead. +func (*GenerateRetrievalUrlRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{10} +} + +func (x *GenerateRetrievalUrlRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Response message for GenerateRetrievalUrl API. +type GenerateRetrievalUrlResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A signed url to download the content of the asset. + SignedUri string `protobuf:"bytes,1,opt,name=signed_uri,json=signedUri,proto3" json:"signed_uri,omitempty"` +} + +func (x *GenerateRetrievalUrlResponse) Reset() { + *x = GenerateRetrievalUrlResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateRetrievalUrlResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateRetrievalUrlResponse) ProtoMessage() {} + +func (x *GenerateRetrievalUrlResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 GenerateRetrievalUrlResponse.ProtoReflect.Descriptor instead. +func (*GenerateRetrievalUrlResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{11} +} + +func (x *GenerateRetrievalUrlResponse) GetSignedUri() string { + if x != nil { + return x.SignedUri + } + return "" +} + +// An asset is a resource in corpus. It represents a media object inside corpus, +// contains metadata and another resource annotation. Different feature could be +// applied to the asset to generate annotations. User could specified annotation +// related to the target asset. +type Asset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the asset. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The duration for which all media assets, associated metadata, and search + // documents can exist. If not set, then it will using the default ttl in the + // parent corpus resource. + Ttl *durationpb.Duration `protobuf:"bytes,2,opt,name=ttl,proto3" json:"ttl,omitempty"` + // Output only. The original cloud storage source uri that is associated with + // this asset. + AssetGcsSource *AssetSource_AssetGcsSource `protobuf:"bytes,4,opt,name=asset_gcs_source,json=assetGcsSource,proto3" json:"asset_gcs_source,omitempty"` +} + +func (x *Asset) Reset() { + *x = Asset{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Asset) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Asset) ProtoMessage() {} + +func (x *Asset) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 Asset.ProtoReflect.Descriptor instead. +func (*Asset) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{12} +} + +func (x *Asset) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Asset) GetTtl() *durationpb.Duration { + if x != nil { + return x.Ttl + } + return nil +} + +func (x *Asset) GetAssetGcsSource() *AssetSource_AssetGcsSource { + if x != nil { + return x.AssetGcsSource + } + return nil +} + +// Request message for AnalyzeAsset. +type AnalyzeAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to analyze. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *AnalyzeAssetRequest) Reset() { + *x = AnalyzeAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeAssetRequest) ProtoMessage() {} + +func (x *AnalyzeAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 AnalyzeAssetRequest.ProtoReflect.Descriptor instead. +func (*AnalyzeAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{13} +} + +func (x *AnalyzeAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Metadata for AnalyzeAsset. +type AnalyzeAssetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The status of analysis on all search capabilities. + AnalysisStatus []*AnalyzeAssetMetadata_AnalysisStatus `protobuf:"bytes,1,rep,name=analysis_status,json=analysisStatus,proto3" json:"analysis_status,omitempty"` + // The start time of the operation. + StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The update time of the operation. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *AnalyzeAssetMetadata) Reset() { + *x = AnalyzeAssetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeAssetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeAssetMetadata) ProtoMessage() {} + +func (x *AnalyzeAssetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 AnalyzeAssetMetadata.ProtoReflect.Descriptor instead. +func (*AnalyzeAssetMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{14} +} + +func (x *AnalyzeAssetMetadata) GetAnalysisStatus() []*AnalyzeAssetMetadata_AnalysisStatus { + if x != nil { + return x.AnalysisStatus + } + return nil +} + +func (x *AnalyzeAssetMetadata) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *AnalyzeAssetMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Response message for AnalyzeAsset. +type AnalyzeAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AnalyzeAssetResponse) Reset() { + *x = AnalyzeAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeAssetResponse) ProtoMessage() {} + +func (x *AnalyzeAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 AnalyzeAssetResponse.ProtoReflect.Descriptor instead. +func (*AnalyzeAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{15} +} + +// The status of indexing for the asset. +type IndexingStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. State of this asset's indexing. + State IndexingStatus_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.visionai.v1.IndexingStatus_State" json:"state,omitempty"` + // Detailed message describing the state. + StatusMessage string `protobuf:"bytes,3,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` +} + +func (x *IndexingStatus) Reset() { + *x = IndexingStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexingStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexingStatus) ProtoMessage() {} + +func (x *IndexingStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 IndexingStatus.ProtoReflect.Descriptor instead. +func (*IndexingStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{16} +} + +func (x *IndexingStatus) GetState() IndexingStatus_State { + if x != nil { + return x.State + } + return IndexingStatus_STATE_UNSPECIFIED +} + +func (x *IndexingStatus) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +// Request message for IndexAsset. +type IndexAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to index. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The name of the index. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Index string `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *IndexAssetRequest) Reset() { + *x = IndexAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexAssetRequest) ProtoMessage() {} + +func (x *IndexAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 IndexAssetRequest.ProtoReflect.Descriptor instead. +func (*IndexAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{17} +} + +func (x *IndexAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IndexAssetRequest) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +// Metadata for IndexAsset. +type IndexAssetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The status of indexing this asset. + Status *IndexingStatus `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` + // The start time of the operation. + StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The update time of the operation. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *IndexAssetMetadata) Reset() { + *x = IndexAssetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexAssetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexAssetMetadata) ProtoMessage() {} + +func (x *IndexAssetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 IndexAssetMetadata.ProtoReflect.Descriptor instead. +func (*IndexAssetMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{18} +} + +func (x *IndexAssetMetadata) GetStatus() *IndexingStatus { + if x != nil { + return x.Status + } + return nil +} + +func (x *IndexAssetMetadata) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *IndexAssetMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Response message for IndexAsset. +type IndexAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *IndexAssetResponse) Reset() { + *x = IndexAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexAssetResponse) ProtoMessage() {} + +func (x *IndexAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 IndexAssetResponse.ProtoReflect.Descriptor instead. +func (*IndexAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{19} +} + +// Request message for RemoveIndexAsset. +type RemoveIndexAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to index. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The name of the index. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Index string `protobuf:"bytes,2,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *RemoveIndexAssetRequest) Reset() { + *x = RemoveIndexAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIndexAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIndexAssetRequest) ProtoMessage() {} + +func (x *RemoveIndexAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_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 RemoveIndexAssetRequest.ProtoReflect.Descriptor instead. +func (*RemoveIndexAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{20} +} + +func (x *RemoveIndexAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *RemoveIndexAssetRequest) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +// Metadata for RemoveIndexAsset. +type RemoveIndexAssetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The status of indexing this asset. + IndexingStatus *IndexingStatus `protobuf:"bytes,1,opt,name=indexing_status,json=indexingStatus,proto3" json:"indexing_status,omitempty"` + // The start time of the operation. + StartTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // The update time of the operation. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *RemoveIndexAssetMetadata) Reset() { + *x = RemoveIndexAssetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIndexAssetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIndexAssetMetadata) ProtoMessage() {} + +func (x *RemoveIndexAssetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[21] + 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 RemoveIndexAssetMetadata.ProtoReflect.Descriptor instead. +func (*RemoveIndexAssetMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{21} +} + +func (x *RemoveIndexAssetMetadata) GetIndexingStatus() *IndexingStatus { + if x != nil { + return x.IndexingStatus + } + return nil +} + +func (x *RemoveIndexAssetMetadata) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *RemoveIndexAssetMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Response message for RemoveIndexAsset. +type RemoveIndexAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RemoveIndexAssetResponse) Reset() { + *x = RemoveIndexAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveIndexAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveIndexAssetResponse) ProtoMessage() {} + +func (x *RemoveIndexAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[22] + 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 RemoveIndexAssetResponse.ProtoReflect.Descriptor instead. +func (*RemoveIndexAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{22} +} + +// An IndexedAsset is an asset that the index is built upon. +type IndexedAsset struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The index that this indexed asset belongs to. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Index string `protobuf:"bytes,1,opt,name=index,proto3" json:"index,omitempty"` + // Required. The resource name of the asset. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Asset string `protobuf:"bytes,2,opt,name=asset,proto3" json:"asset,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *IndexedAsset) Reset() { + *x = IndexedAsset{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexedAsset) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexedAsset) ProtoMessage() {} + +func (x *IndexedAsset) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[23] + 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 IndexedAsset.ProtoReflect.Descriptor instead. +func (*IndexedAsset) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{23} +} + +func (x *IndexedAsset) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +func (x *IndexedAsset) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +func (x *IndexedAsset) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *IndexedAsset) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Request message for ViewIndexedAssets. +type ViewIndexedAssetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The index that owns this collection of assets. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Index string `protobuf:"bytes,1,opt,name=index,proto3" json:"index,omitempty"` + // The maximum number of assets to return. The service may return fewer than + // this value. + // If unspecified, at most 50 assets will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ViewIndexedAssets` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ViewIndexedAssets` must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The filter applied to the returned list. + // Only the following filterings are supported: + // "asset_id = xxxx", which returns asset with specified id. + // "asset_id = xxxx, yyyy, zzzz", which returns assets with specified ids. + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ViewIndexedAssetsRequest) Reset() { + *x = ViewIndexedAssetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewIndexedAssetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewIndexedAssetsRequest) ProtoMessage() {} + +func (x *ViewIndexedAssetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[24] + 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 ViewIndexedAssetsRequest.ProtoReflect.Descriptor instead. +func (*ViewIndexedAssetsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{24} +} + +func (x *ViewIndexedAssetsRequest) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +func (x *ViewIndexedAssetsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ViewIndexedAssetsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ViewIndexedAssetsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ViewIndexedAssets. +type ViewIndexedAssetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The assets from the specified index. + IndexedAssets []*IndexedAsset `protobuf:"bytes,1,rep,name=indexed_assets,json=indexedAssets,proto3" json:"indexed_assets,omitempty"` + // A token, which can be sent as `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 *ViewIndexedAssetsResponse) Reset() { + *x = ViewIndexedAssetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewIndexedAssetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewIndexedAssetsResponse) ProtoMessage() {} + +func (x *ViewIndexedAssetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[25] + 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 ViewIndexedAssetsResponse.ProtoReflect.Descriptor instead. +func (*ViewIndexedAssetsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{25} +} + +func (x *ViewIndexedAssetsResponse) GetIndexedAssets() []*IndexedAsset { + if x != nil { + return x.IndexedAssets + } + return nil +} + +func (x *ViewIndexedAssetsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message of CreateCorpus API. +type CreateCorpusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Form: `projects/{project_number}/locations/{location_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The corpus to be created. + Corpus *Corpus `protobuf:"bytes,2,opt,name=corpus,proto3" json:"corpus,omitempty"` +} + +func (x *CreateCorpusRequest) Reset() { + *x = CreateCorpusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCorpusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCorpusRequest) ProtoMessage() {} + +func (x *CreateCorpusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[26] + 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 CreateCorpusRequest.ProtoReflect.Descriptor instead. +func (*CreateCorpusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{26} +} + +func (x *CreateCorpusRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateCorpusRequest) GetCorpus() *Corpus { + if x != nil { + return x.Corpus + } + return nil +} + +// Metadata for CreateCorpus API. +type CreateCorpusMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The create time of the create corpus operation. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // The update time of the create corpus operation. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *CreateCorpusMetadata) Reset() { + *x = CreateCorpusMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCorpusMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCorpusMetadata) ProtoMessage() {} + +func (x *CreateCorpusMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[27] + 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 CreateCorpusMetadata.ProtoReflect.Descriptor instead. +func (*CreateCorpusMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{27} +} + +func (x *CreateCorpusMetadata) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *CreateCorpusMetadata) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// The capability and metadata of search capability. +type SearchCapability struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The search capability to enable. + Type SearchCapability_Type `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.visionai.v1.SearchCapability_Type" json:"type,omitempty"` +} + +func (x *SearchCapability) Reset() { + *x = SearchCapability{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchCapability) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchCapability) ProtoMessage() {} + +func (x *SearchCapability) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[28] + 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 SearchCapability.ProtoReflect.Descriptor instead. +func (*SearchCapability) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{28} +} + +func (x *SearchCapability) GetType() SearchCapability_Type { + if x != nil { + return x.Type + } + return SearchCapability_TYPE_UNSPECIFIED +} + +// Setting for search capability to enable. +type SearchCapabilitySetting struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The metadata of search capability to enable. + SearchCapabilities []*SearchCapability `protobuf:"bytes,1,rep,name=search_capabilities,json=searchCapabilities,proto3" json:"search_capabilities,omitempty"` +} + +func (x *SearchCapabilitySetting) Reset() { + *x = SearchCapabilitySetting{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchCapabilitySetting) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchCapabilitySetting) ProtoMessage() {} + +func (x *SearchCapabilitySetting) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[29] + 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 SearchCapabilitySetting.ProtoReflect.Descriptor instead. +func (*SearchCapabilitySetting) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{29} +} + +func (x *SearchCapabilitySetting) GetSearchCapabilities() []*SearchCapability { + if x != nil { + return x.SearchCapabilities + } + return nil +} + +// Metadata message for CreateCollectionRequest +type CreateCollectionMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *CreateCollectionMetadata) Reset() { + *x = CreateCollectionMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCollectionMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCollectionMetadata) ProtoMessage() {} + +func (x *CreateCollectionMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[30] + 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 CreateCollectionMetadata.ProtoReflect.Descriptor instead. +func (*CreateCollectionMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{30} +} + +func (x *CreateCollectionMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for CreateCollection. +type CreateCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this collection will be created. + // Format: `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The collection resource to be created. + Collection *Collection `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"` + // Optional. The ID to use for the collection, which will become the final + // component of the resource name if user choose to specify. Otherwise, + // collection id will be generated by system. + // + // This value should be up to 55 characters, and valid characters + // are /[a-z][0-9]-/. The first character must be a letter, the last could be + // a letter or a number. + CollectionId *string `protobuf:"bytes,3,opt,name=collection_id,json=collectionId,proto3,oneof" json:"collection_id,omitempty"` +} + +func (x *CreateCollectionRequest) Reset() { + *x = CreateCollectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateCollectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateCollectionRequest) ProtoMessage() {} + +func (x *CreateCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[31] + 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 CreateCollectionRequest.ProtoReflect.Descriptor instead. +func (*CreateCollectionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{31} +} + +func (x *CreateCollectionRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateCollectionRequest) GetCollection() *Collection { + if x != nil { + return x.Collection + } + return nil +} + +func (x *CreateCollectionRequest) GetCollectionId() string { + if x != nil && x.CollectionId != nil { + return *x.CollectionId + } + return "" +} + +// Metadata message for DeleteCollectionRequest +type DeleteCollectionMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *DeleteCollectionMetadata) Reset() { + *x = DeleteCollectionMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCollectionMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCollectionMetadata) ProtoMessage() {} + +func (x *DeleteCollectionMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[32] + 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 DeleteCollectionMetadata.ProtoReflect.Descriptor instead. +func (*DeleteCollectionMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{32} +} + +func (x *DeleteCollectionMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for DeleteCollectionRequest. +type DeleteCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the collection to delete. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteCollectionRequest) Reset() { + *x = DeleteCollectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCollectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCollectionRequest) ProtoMessage() {} + +func (x *DeleteCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[33] + 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 DeleteCollectionRequest.ProtoReflect.Descriptor instead. +func (*DeleteCollectionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{33} +} + +func (x *DeleteCollectionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for GetCollectionRequest. +type GetCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the collection to retrieve. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetCollectionRequest) Reset() { + *x = GetCollectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCollectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCollectionRequest) ProtoMessage() {} + +func (x *GetCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[34] + 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 GetCollectionRequest.ProtoReflect.Descriptor instead. +func (*GetCollectionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{34} +} + +func (x *GetCollectionRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for UpdateCollectionRequest. +type UpdateCollectionRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The collection to update. + // + // The collection's `name` field is used to identify the collection to be + // updated. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Collection *Collection `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"` + // The list of fields to be updated. + // - Unset `update_mask` or set `update_mask` to be a single "*" only will + // update all updatable fields with the value provided in `collection`. + // - To update `display_name` value to empty string, set it in the + // + // `collection` + // + // to empty string, and set `update_mask` with "display_name". Same applies + // to other updatable string fields in the `collection`. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateCollectionRequest) Reset() { + *x = UpdateCollectionRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCollectionRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCollectionRequest) ProtoMessage() {} + +func (x *UpdateCollectionRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[35] + 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 UpdateCollectionRequest.ProtoReflect.Descriptor instead. +func (*UpdateCollectionRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{35} +} + +func (x *UpdateCollectionRequest) GetCollection() *Collection { + if x != nil { + return x.Collection + } + return nil +} + +func (x *UpdateCollectionRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for ListCollections. +type ListCollectionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent corpus. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of collections to return. The service may return fewer + // than this value. If unspecified, at most 50 collections will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListCollectionsRequest` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListCollectionsRequest` + // must match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListCollectionsRequest) Reset() { + *x = ListCollectionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCollectionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCollectionsRequest) ProtoMessage() {} + +func (x *ListCollectionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[36] + 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 ListCollectionsRequest.ProtoReflect.Descriptor instead. +func (*ListCollectionsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{36} +} + +func (x *ListCollectionsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListCollectionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListCollectionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ListCollections. +type ListCollectionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The collections from the specified corpus. + Collections []*Collection `protobuf:"bytes,1,rep,name=collections,proto3" json:"collections,omitempty"` + // A token, which can be sent as `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 *ListCollectionsResponse) Reset() { + *x = ListCollectionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCollectionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCollectionsResponse) ProtoMessage() {} + +func (x *ListCollectionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[37] + 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 ListCollectionsResponse.ProtoReflect.Descriptor instead. +func (*ListCollectionsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{37} +} + +func (x *ListCollectionsResponse) GetCollections() []*Collection { + if x != nil { + return x.Collections + } + return nil +} + +func (x *ListCollectionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for AddCollectionItem. +type AddCollectionItemRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The item to be added. + Item *CollectionItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *AddCollectionItemRequest) Reset() { + *x = AddCollectionItemRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddCollectionItemRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddCollectionItemRequest) ProtoMessage() {} + +func (x *AddCollectionItemRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[38] + 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 AddCollectionItemRequest.ProtoReflect.Descriptor instead. +func (*AddCollectionItemRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{38} +} + +func (x *AddCollectionItemRequest) GetItem() *CollectionItem { + if x != nil { + return x.Item + } + return nil +} + +// Response message for AddCollectionItem. +type AddCollectionItemResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The item that has already been added. + Item *CollectionItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *AddCollectionItemResponse) Reset() { + *x = AddCollectionItemResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddCollectionItemResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddCollectionItemResponse) ProtoMessage() {} + +func (x *AddCollectionItemResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[39] + 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 AddCollectionItemResponse.ProtoReflect.Descriptor instead. +func (*AddCollectionItemResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{39} +} + +func (x *AddCollectionItemResponse) GetItem() *CollectionItem { + if x != nil { + return x.Item + } + return nil +} + +// Request message for RemoveCollectionItem. +type RemoveCollectionItemRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The item to be removed. + Item *CollectionItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *RemoveCollectionItemRequest) Reset() { + *x = RemoveCollectionItemRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveCollectionItemRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveCollectionItemRequest) ProtoMessage() {} + +func (x *RemoveCollectionItemRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[40] + 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 RemoveCollectionItemRequest.ProtoReflect.Descriptor instead. +func (*RemoveCollectionItemRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{40} +} + +func (x *RemoveCollectionItemRequest) GetItem() *CollectionItem { + if x != nil { + return x.Item + } + return nil +} + +// Request message for RemoveCollectionItem. +type RemoveCollectionItemResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The item that has already been removed. + Item *CollectionItem `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` +} + +func (x *RemoveCollectionItemResponse) Reset() { + *x = RemoveCollectionItemResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RemoveCollectionItemResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoveCollectionItemResponse) ProtoMessage() {} + +func (x *RemoveCollectionItemResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[41] + 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 RemoveCollectionItemResponse.ProtoReflect.Descriptor instead. +func (*RemoveCollectionItemResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{41} +} + +func (x *RemoveCollectionItemResponse) GetItem() *CollectionItem { + if x != nil { + return x.Item + } + return nil +} + +// Request message for ViewCollectionItems. +type ViewCollectionItemsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The collection to view. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"` + // The maximum number of collections to return. The service may return fewer + // than this value. If unspecified, at most 50 collections will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ViewCollectionItemsRequest` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ViewCollectionItemsRequest` must match the call that provided the page + // token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ViewCollectionItemsRequest) Reset() { + *x = ViewCollectionItemsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewCollectionItemsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewCollectionItemsRequest) ProtoMessage() {} + +func (x *ViewCollectionItemsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[42] + 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 ViewCollectionItemsRequest.ProtoReflect.Descriptor instead. +func (*ViewCollectionItemsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{42} +} + +func (x *ViewCollectionItemsRequest) GetCollection() string { + if x != nil { + return x.Collection + } + return "" +} + +func (x *ViewCollectionItemsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ViewCollectionItemsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ViewCollectionItems. +type ViewCollectionItemsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The items from the specified collection. + Items []*CollectionItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + // A token, which can be sent as `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 *ViewCollectionItemsResponse) Reset() { + *x = ViewCollectionItemsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ViewCollectionItemsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ViewCollectionItemsResponse) ProtoMessage() {} + +func (x *ViewCollectionItemsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[43] + 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 ViewCollectionItemsResponse.ProtoReflect.Descriptor instead. +func (*ViewCollectionItemsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{43} +} + +func (x *ViewCollectionItemsResponse) GetItems() []*CollectionItem { + if x != nil { + return x.Items + } + return nil +} + +func (x *ViewCollectionItemsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// A collection is a resource in a corpus. It serves as a container of +// references to original resources. +type Collection struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Resource name of the collection. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The collection name for displaying. + // The name can be up to 256 characters long. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. Description of the collection. Can be up to 25000 characters + // long. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *Collection) Reset() { + *x = Collection{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Collection) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Collection) ProtoMessage() {} + +func (x *Collection) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[44] + 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 Collection.ProtoReflect.Descriptor instead. +func (*Collection) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{44} +} + +func (x *Collection) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Collection) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Collection) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +// A CollectionItem is an item in a collection. +// Each item is a reference to the original resource in a collection. +type CollectionItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The collection name that this item belongs to. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/collections/{collection}` + Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"` + // Required. The type of item. + Type CollectionItem_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.cloud.visionai.v1.CollectionItem_Type" json:"type,omitempty"` + // Required. The name of the CollectionItem. Its format depends on the `type` + // above. For ASSET: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}` + ItemResource string `protobuf:"bytes,3,opt,name=item_resource,json=itemResource,proto3" json:"item_resource,omitempty"` +} + +func (x *CollectionItem) Reset() { + *x = CollectionItem{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CollectionItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CollectionItem) ProtoMessage() {} + +func (x *CollectionItem) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[45] + 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 CollectionItem.ProtoReflect.Descriptor instead. +func (*CollectionItem) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{45} +} + +func (x *CollectionItem) GetCollection() string { + if x != nil { + return x.Collection + } + return "" +} + +func (x *CollectionItem) GetType() CollectionItem_Type { + if x != nil { + return x.Type + } + return CollectionItem_TYPE_UNSPECIFIED +} + +func (x *CollectionItem) GetItemResource() string { + if x != nil { + return x.ItemResource + } + return "" +} + +// Message for creating an Index. +type CreateIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Value for the parent. The resource name of the Corpus under which + // this index is created. Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The ID for the index. This will become the final resource name + // for the index. If the user does not specify this value, it will be + // generated by system. + // + // This value should be up to 63 characters, and valid characters + // are /[a-z][0-9]-/. The first character must be a letter, the last could be + // a letter or a number. + IndexId string `protobuf:"bytes,2,opt,name=index_id,json=indexId,proto3" json:"index_id,omitempty"` + // Required. The index being created. + Index *Index `protobuf:"bytes,3,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *CreateIndexRequest) Reset() { + *x = CreateIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateIndexRequest) ProtoMessage() {} + +func (x *CreateIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[46] + 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 CreateIndexRequest.ProtoReflect.Descriptor instead. +func (*CreateIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{46} +} + +func (x *CreateIndexRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateIndexRequest) GetIndexId() string { + if x != nil { + return x.IndexId + } + return "" +} + +func (x *CreateIndexRequest) GetIndex() *Index { + if x != nil { + return x.Index + } + return nil +} + +// Metadata message for CreateIndexRequest +type CreateIndexMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *CreateIndexMetadata) Reset() { + *x = CreateIndexMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateIndexMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateIndexMetadata) ProtoMessage() {} + +func (x *CreateIndexMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[47] + 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 CreateIndexMetadata.ProtoReflect.Descriptor instead. +func (*CreateIndexMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{47} +} + +func (x *CreateIndexMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for UpdateIndex. +type UpdateIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource being updated. + Index *Index `protobuf:"bytes,1,opt,name=index,proto3" json:"index,omitempty"` + // Required. Field mask is used to specify the fields to be overwritten in the + // Index resource by the update. The fields specified in the update_mask are + // relative to the resource, not the full request. A field of the resource + // will be overwritten if it is in the mask. Empty field mask is not allowed. + // If the mask is "*", it triggers a full update of the index, and also a + // whole rebuild of index data. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateIndexRequest) Reset() { + *x = UpdateIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateIndexRequest) ProtoMessage() {} + +func (x *UpdateIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[48] + 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 UpdateIndexRequest.ProtoReflect.Descriptor instead. +func (*UpdateIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{48} +} + +func (x *UpdateIndexRequest) GetIndex() *Index { + if x != nil { + return x.Index + } + return nil +} + +func (x *UpdateIndexRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Metadata message for UpdateIndexRequest +type UpdateIndexMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *UpdateIndexMetadata) Reset() { + *x = UpdateIndexMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateIndexMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateIndexMetadata) ProtoMessage() {} + +func (x *UpdateIndexMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[49] + 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 UpdateIndexMetadata.ProtoReflect.Descriptor instead. +func (*UpdateIndexMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{49} +} + +func (x *UpdateIndexMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for getting an Index. +type GetIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the Index resource. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetIndexRequest) Reset() { + *x = GetIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIndexRequest) ProtoMessage() {} + +func (x *GetIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[50] + 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 GetIndexRequest.ProtoReflect.Descriptor instead. +func (*GetIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{50} +} + +func (x *GetIndexRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for listing Indexes. +type ListIndexesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent corpus that owns this collection of indexes. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of indexes to return. The service may return fewer than + // this value. + // If unspecified, at most 50 indexes will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListIndexes` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListIndexes` must match + // the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListIndexesRequest) Reset() { + *x = ListIndexesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexesRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexesRequest) ProtoMessage() {} + +func (x *ListIndexesRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[51] + 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 ListIndexesRequest.ProtoReflect.Descriptor instead. +func (*ListIndexesRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{51} +} + +func (x *ListIndexesRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListIndexesRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListIndexesRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ListIndexes. +type ListIndexesResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The indexes under the specified corpus. + Indexes []*Index `protobuf:"bytes,1,rep,name=indexes,proto3" json:"indexes,omitempty"` + // A token, which can be sent as `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 *ListIndexesResponse) Reset() { + *x = ListIndexesResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexesResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexesResponse) ProtoMessage() {} + +func (x *ListIndexesResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[52] + 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 ListIndexesResponse.ProtoReflect.Descriptor instead. +func (*ListIndexesResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{52} +} + +func (x *ListIndexesResponse) GetIndexes() []*Index { + if x != nil { + return x.Indexes + } + return nil +} + +func (x *ListIndexesResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for DeleteIndex. +type DeleteIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the index to delete. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/indexes/{index}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteIndexRequest) Reset() { + *x = DeleteIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteIndexRequest) ProtoMessage() {} + +func (x *DeleteIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[53] + 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 DeleteIndexRequest.ProtoReflect.Descriptor instead. +func (*DeleteIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{53} +} + +func (x *DeleteIndexRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Metadata message for DeleteIndexRequest +type DeleteIndexMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteIndexMetadata) Reset() { + *x = DeleteIndexMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteIndexMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteIndexMetadata) ProtoMessage() {} + +func (x *DeleteIndexMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[54] + 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 DeleteIndexMetadata.ProtoReflect.Descriptor instead. +func (*DeleteIndexMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{54} +} + +// An Index is a resource in Corpus. It contains an indexed version of the +// assets and annotations. When deployed to an endpoint, it will allow users to +// search the Index. +type Index struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Specifies how assets are selected for this index. Default to + // entire_corpus if unspecified. Behavior in UpdateIndex: if update_mask + // includes one of the asset_filter field paths, the index will be rebuilt + // with latest assets, including their analyzed data and annotations. + // + // Types that are assignable to AssetFilter: + // + // *Index_EntireCorpus + AssetFilter isIndex_AssetFilter `protobuf_oneof:"asset_filter"` + // Output only. Resource name of the Index resource. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/indexes/{index_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Optional user-specified display name of the index. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. Optional description of the index. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Output only. State of the index. + State Index_State `protobuf:"varint,4,opt,name=state,proto3,enum=google.cloud.visionai.v1.Index_State" json:"state,omitempty"` + // Output only. The create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // Output only. References to the deployed index instance. + // Index of VIDEO_ON_DEMAND corpus can have at most one deployed index. + // Index of IMAGE corpus can have multiple deployed indexes. + DeployedIndexes []*DeployedIndexReference `protobuf:"bytes,8,rep,name=deployed_indexes,json=deployedIndexes,proto3" json:"deployed_indexes,omitempty"` +} + +func (x *Index) Reset() { + *x = Index{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Index) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Index) ProtoMessage() {} + +func (x *Index) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[55] + 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 Index.ProtoReflect.Descriptor instead. +func (*Index) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{55} +} + +func (m *Index) GetAssetFilter() isIndex_AssetFilter { + if m != nil { + return m.AssetFilter + } + return nil +} + +func (x *Index) GetEntireCorpus() bool { + if x, ok := x.GetAssetFilter().(*Index_EntireCorpus); ok { + return x.EntireCorpus + } + return false +} + +func (x *Index) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Index) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Index) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Index) GetState() Index_State { + if x != nil { + return x.State + } + return Index_STATE_UNSPECIFIED +} + +func (x *Index) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *Index) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +func (x *Index) GetDeployedIndexes() []*DeployedIndexReference { + if x != nil { + return x.DeployedIndexes + } + return nil +} + +type isIndex_AssetFilter interface { + isIndex_AssetFilter() +} + +type Index_EntireCorpus struct { + // Include all assets under the corpus. + EntireCorpus bool `protobuf:"varint,9,opt,name=entire_corpus,json=entireCorpus,proto3,oneof"` +} + +func (*Index_EntireCorpus) isIndex_AssetFilter() {} + +// Points to a DeployedIndex. +type DeployedIndexReference struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Immutable. A resource name of the IndexEndpoint. + IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` +} + +func (x *DeployedIndexReference) Reset() { + *x = DeployedIndexReference{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployedIndexReference) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployedIndexReference) ProtoMessage() {} + +func (x *DeployedIndexReference) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[56] + 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 DeployedIndexReference.ProtoReflect.Descriptor instead. +func (*DeployedIndexReference) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{56} +} + +func (x *DeployedIndexReference) GetIndexEndpoint() string { + if x != nil { + return x.IndexEndpoint + } + return "" +} + +// Corpus is a set of media contents for management. +// Within a corpus, media shares the same data schema. Search is also restricted +// within a single corpus. +type Corpus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the corpus. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The corpus name to shown in the UI. The name can be up to 32 + // characters long. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. Description of the corpus. Can be up to 25000 characters long. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Optional. The default TTL value for all assets under the corpus without a + // asset level user-defined TTL. For STREAM_VIDEO type corpora, this is + // required and the maximum allowed + // + // default_ttl is 10 years. + DefaultTtl *durationpb.Duration `protobuf:"bytes,5,opt,name=default_ttl,json=defaultTtl,proto3" json:"default_ttl,omitempty"` + // Optional. Type of the asset inside corpus. + Type Corpus_Type `protobuf:"varint,7,opt,name=type,proto3,enum=google.cloud.visionai.v1.Corpus_Type" json:"type,omitempty"` + // Default search capability setting on corpus level. + SearchCapabilitySetting *SearchCapabilitySetting `protobuf:"bytes,8,opt,name=search_capability_setting,json=searchCapabilitySetting,proto3" json:"search_capability_setting,omitempty"` +} + +func (x *Corpus) Reset() { + *x = Corpus{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Corpus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Corpus) ProtoMessage() {} + +func (x *Corpus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[57] + 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 Corpus.ProtoReflect.Descriptor instead. +func (*Corpus) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{57} +} + +func (x *Corpus) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Corpus) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *Corpus) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Corpus) GetDefaultTtl() *durationpb.Duration { + if x != nil { + return x.DefaultTtl + } + return nil +} + +func (x *Corpus) GetType() Corpus_Type { + if x != nil { + return x.Type + } + return Corpus_TYPE_UNSPECIFIED +} + +func (x *Corpus) GetSearchCapabilitySetting() *SearchCapabilitySetting { + if x != nil { + return x.SearchCapabilitySetting + } + return nil +} + +// Request message for GetCorpus. +type GetCorpusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the corpus to retrieve. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetCorpusRequest) Reset() { + *x = GetCorpusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCorpusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCorpusRequest) ProtoMessage() {} + +func (x *GetCorpusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[58] + 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 GetCorpusRequest.ProtoReflect.Descriptor instead. +func (*GetCorpusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{58} +} + +func (x *GetCorpusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for UpdateCorpus. +type UpdateCorpusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The corpus which replaces the resource on the server. + Corpus *Corpus `protobuf:"bytes,1,opt,name=corpus,proto3" json:"corpus,omitempty"` + // The list of fields to be updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateCorpusRequest) Reset() { + *x = UpdateCorpusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateCorpusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateCorpusRequest) ProtoMessage() {} + +func (x *UpdateCorpusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[59] + 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 UpdateCorpusRequest.ProtoReflect.Descriptor instead. +func (*UpdateCorpusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{59} +} + +func (x *UpdateCorpusRequest) GetCorpus() *Corpus { + if x != nil { + return x.Corpus + } + return nil +} + +func (x *UpdateCorpusRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for ListCorpora. +type ListCorporaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the project from which to list corpora. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Requested page size. API may return fewer results than requested. + // If negative, INVALID_ARGUMENT error will be returned. + // If unspecified or 0, API will pick a default size, which is 10. + // If the requested page size is larger than the maximum size, API will pick + // use the maximum size, which is 20. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A token identifying a page of results for the server to return. + // Typically obtained via + // [ListCorporaResponse.next_page_token][google.cloud.visionai.v1.ListCorporaResponse.next_page_token] + // of the previous + // [Warehouse.ListCorpora][google.cloud.visionai.v1.Warehouse.ListCorpora] + // call. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The filter applied to the returned corpora list. + // Only the following restrictions are supported: + // `type=`, + // `type!=`. + Filter string `protobuf:"bytes,5,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListCorporaRequest) Reset() { + *x = ListCorporaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCorporaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCorporaRequest) ProtoMessage() {} + +func (x *ListCorporaRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[60] + 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 ListCorporaRequest.ProtoReflect.Descriptor instead. +func (*ListCorporaRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{60} +} + +func (x *ListCorporaRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListCorporaRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListCorporaRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListCorporaRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListCorpora. +type ListCorporaResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The corpora in the project. + Corpora []*Corpus `protobuf:"bytes,1,rep,name=corpora,proto3" json:"corpora,omitempty"` + // A token to retrieve next page of results. + // Pass to + // [ListCorporaRequest.page_token][google.cloud.visionai.v1.ListCorporaRequest.page_token] + // to obtain that page. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListCorporaResponse) Reset() { + *x = ListCorporaResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListCorporaResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCorporaResponse) ProtoMessage() {} + +func (x *ListCorporaResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[61] + 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 ListCorporaResponse.ProtoReflect.Descriptor instead. +func (*ListCorporaResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{61} +} + +func (x *ListCorporaResponse) GetCorpora() []*Corpus { + if x != nil { + return x.Corpora + } + return nil +} + +func (x *ListCorporaResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for DeleteCorpus. +type DeleteCorpusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the corpus to delete. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteCorpusRequest) Reset() { + *x = DeleteCorpusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteCorpusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteCorpusRequest) ProtoMessage() {} + +func (x *DeleteCorpusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[62] + 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 DeleteCorpusRequest.ProtoReflect.Descriptor instead. +func (*DeleteCorpusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{62} +} + +func (x *DeleteCorpusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for AnalyzeCorpus. +type AnalyzeCorpusRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent corpus resource where the assets will be analyzed. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *AnalyzeCorpusRequest) Reset() { + *x = AnalyzeCorpusRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeCorpusRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeCorpusRequest) ProtoMessage() {} + +func (x *AnalyzeCorpusRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[63] + 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 AnalyzeCorpusRequest.ProtoReflect.Descriptor instead. +func (*AnalyzeCorpusRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{63} +} + +func (x *AnalyzeCorpusRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The metadata message for AnalyzeCorpus LRO. +type AnalyzeCorpusMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The metadata of the operation. + Metadata *OperationMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *AnalyzeCorpusMetadata) Reset() { + *x = AnalyzeCorpusMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeCorpusMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeCorpusMetadata) ProtoMessage() {} + +func (x *AnalyzeCorpusMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[64] + 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 AnalyzeCorpusMetadata.ProtoReflect.Descriptor instead. +func (*AnalyzeCorpusMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{64} +} + +func (x *AnalyzeCorpusMetadata) GetMetadata() *OperationMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +// The response message for AnalyzeCorpus LRO. +type AnalyzeCorpusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AnalyzeCorpusResponse) Reset() { + *x = AnalyzeCorpusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeCorpusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeCorpusResponse) ProtoMessage() {} + +func (x *AnalyzeCorpusResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[65] + 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 AnalyzeCorpusResponse.ProtoReflect.Descriptor instead. +func (*AnalyzeCorpusResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{65} +} + +// Request message for CreateDataSchema. +type CreateDataSchemaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this data schema will be created. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The data schema to create. + DataSchema *DataSchema `protobuf:"bytes,2,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"` +} + +func (x *CreateDataSchemaRequest) Reset() { + *x = CreateDataSchemaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[66] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateDataSchemaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateDataSchemaRequest) ProtoMessage() {} + +func (x *CreateDataSchemaRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[66] + 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 CreateDataSchemaRequest.ProtoReflect.Descriptor instead. +func (*CreateDataSchemaRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{66} +} + +func (x *CreateDataSchemaRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateDataSchemaRequest) GetDataSchema() *DataSchema { + if x != nil { + return x.DataSchema + } + return nil +} + +// Data schema indicates how the user specified annotation is interpreted in the +// system. +type DataSchema struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the data schema in the form of: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}` + // where {data_schema} part should be the same as the `key` field below. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The key of this data schema. This key should be matching the key + // of user specified annotation and unique inside corpus. This value can be up + // to 63 characters, and valid characters are /[a-z][0-9]-/. The first + // character must be a letter, the last could be a letter or a number. + Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"` + // The schema details mapping to the key. + SchemaDetails *DataSchemaDetails `protobuf:"bytes,3,opt,name=schema_details,json=schemaDetails,proto3" json:"schema_details,omitempty"` +} + +func (x *DataSchema) Reset() { + *x = DataSchema{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchema) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchema) ProtoMessage() {} + +func (x *DataSchema) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[67] + 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 DataSchema.ProtoReflect.Descriptor instead. +func (*DataSchema) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{67} +} + +func (x *DataSchema) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *DataSchema) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *DataSchema) GetSchemaDetails() *DataSchemaDetails { + if x != nil { + return x.SchemaDetails + } + return nil +} + +// Data schema details indicates the data type and the data struct corresponding +// to the key of user specified annotation. +type DataSchemaDetails struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Type of the annotation. + Type DataSchemaDetails_DataType `protobuf:"varint,1,opt,name=type,proto3,enum=google.cloud.visionai.v1.DataSchemaDetails_DataType" json:"type,omitempty"` + // Config for protobuf any type. + ProtoAnyConfig *DataSchemaDetails_ProtoAnyConfig `protobuf:"bytes,6,opt,name=proto_any_config,json=protoAnyConfig,proto3" json:"proto_any_config,omitempty"` + // Config for List data type. + ListConfig *DataSchemaDetails_ListConfig `protobuf:"bytes,8,opt,name=list_config,json=listConfig,proto3" json:"list_config,omitempty"` + // Config for CustomizedStruct data type. + CustomizedStructConfig *DataSchemaDetails_CustomizedStructConfig `protobuf:"bytes,9,opt,name=customized_struct_config,json=customizedStructConfig,proto3" json:"customized_struct_config,omitempty"` + // The granularity associated with this DataSchema. + Granularity DataSchemaDetails_Granularity `protobuf:"varint,5,opt,name=granularity,proto3,enum=google.cloud.visionai.v1.DataSchemaDetails_Granularity" json:"granularity,omitempty"` + // The search strategy to be applied on the `key` above. + SearchStrategy *DataSchemaDetails_SearchStrategy `protobuf:"bytes,7,opt,name=search_strategy,json=searchStrategy,proto3" json:"search_strategy,omitempty"` +} + +func (x *DataSchemaDetails) Reset() { + *x = DataSchemaDetails{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchemaDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchemaDetails) ProtoMessage() {} + +func (x *DataSchemaDetails) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[68] + 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 DataSchemaDetails.ProtoReflect.Descriptor instead. +func (*DataSchemaDetails) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68} +} + +func (x *DataSchemaDetails) GetType() DataSchemaDetails_DataType { + if x != nil { + return x.Type + } + return DataSchemaDetails_DATA_TYPE_UNSPECIFIED +} + +func (x *DataSchemaDetails) GetProtoAnyConfig() *DataSchemaDetails_ProtoAnyConfig { + if x != nil { + return x.ProtoAnyConfig + } + return nil +} + +func (x *DataSchemaDetails) GetListConfig() *DataSchemaDetails_ListConfig { + if x != nil { + return x.ListConfig + } + return nil +} + +func (x *DataSchemaDetails) GetCustomizedStructConfig() *DataSchemaDetails_CustomizedStructConfig { + if x != nil { + return x.CustomizedStructConfig + } + return nil +} + +func (x *DataSchemaDetails) GetGranularity() DataSchemaDetails_Granularity { + if x != nil { + return x.Granularity + } + return DataSchemaDetails_GRANULARITY_UNSPECIFIED +} + +func (x *DataSchemaDetails) GetSearchStrategy() *DataSchemaDetails_SearchStrategy { + if x != nil { + return x.SearchStrategy + } + return nil +} + +// Request message for UpdateDataSchema. +type UpdateDataSchemaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The data schema's `name` field is used to identify the data + // schema to be updated. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/dataSchemas/{data_schema}` + DataSchema *DataSchema `protobuf:"bytes,1,opt,name=data_schema,json=dataSchema,proto3" json:"data_schema,omitempty"` + // The list of fields to be updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateDataSchemaRequest) Reset() { + *x = UpdateDataSchemaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[69] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateDataSchemaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateDataSchemaRequest) ProtoMessage() {} + +func (x *UpdateDataSchemaRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[69] + 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 UpdateDataSchemaRequest.ProtoReflect.Descriptor instead. +func (*UpdateDataSchemaRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{69} +} + +func (x *UpdateDataSchemaRequest) GetDataSchema() *DataSchema { + if x != nil { + return x.DataSchema + } + return nil +} + +func (x *UpdateDataSchemaRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for GetDataSchema. +type GetDataSchemaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the data schema to retrieve. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetDataSchemaRequest) Reset() { + *x = GetDataSchemaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[70] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDataSchemaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDataSchemaRequest) ProtoMessage() {} + +func (x *GetDataSchemaRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[70] + 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 GetDataSchemaRequest.ProtoReflect.Descriptor instead. +func (*GetDataSchemaRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{70} +} + +func (x *GetDataSchemaRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for DeleteDataSchema. +type DeleteDataSchemaRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the data schema to delete. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/dataSchemas/{data_schema_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteDataSchemaRequest) Reset() { + *x = DeleteDataSchemaRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[71] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteDataSchemaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteDataSchemaRequest) ProtoMessage() {} + +func (x *DeleteDataSchemaRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[71] + 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 DeleteDataSchemaRequest.ProtoReflect.Descriptor instead. +func (*DeleteDataSchemaRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{71} +} + +func (x *DeleteDataSchemaRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListDataSchemas. +type ListDataSchemasRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent, which owns this collection of data schemas. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of data schemas to return. The service may return fewer + // than this value. If unspecified, at most 50 data schemas will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListDataSchemas` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListDataSchemas` must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListDataSchemasRequest) Reset() { + *x = ListDataSchemasRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[72] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataSchemasRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataSchemasRequest) ProtoMessage() {} + +func (x *ListDataSchemasRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[72] + 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 ListDataSchemasRequest.ProtoReflect.Descriptor instead. +func (*ListDataSchemasRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{72} +} + +func (x *ListDataSchemasRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListDataSchemasRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListDataSchemasRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ListDataSchemas. +type ListDataSchemasResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data schemas from the specified corpus. + DataSchemas []*DataSchema `protobuf:"bytes,1,rep,name=data_schemas,json=dataSchemas,proto3" json:"data_schemas,omitempty"` + // A token, which can be sent as `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 *ListDataSchemasResponse) Reset() { + *x = ListDataSchemasResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[73] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListDataSchemasResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListDataSchemasResponse) ProtoMessage() {} + +func (x *ListDataSchemasResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[73] + 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 ListDataSchemasResponse.ProtoReflect.Descriptor instead. +func (*ListDataSchemasResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{73} +} + +func (x *ListDataSchemasResponse) GetDataSchemas() []*DataSchema { + if x != nil { + return x.DataSchemas + } + return nil +} + +func (x *ListDataSchemasResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for CreateAnnotation. +type CreateAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this annotation will be created. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The annotation to create. + Annotation *Annotation `protobuf:"bytes,2,opt,name=annotation,proto3" json:"annotation,omitempty"` + // Optional. The ID to use for the annotation, which will become the final + // component of the annotation's resource name if user choose to specify. + // Otherwise, annotation id will be generated by system. + // + // This value should be up to 63 characters, and valid characters + // are /[a-z][0-9]-/. The first character must be a letter, the last could be + // a letter or a number. + AnnotationId *string `protobuf:"bytes,3,opt,name=annotation_id,json=annotationId,proto3,oneof" json:"annotation_id,omitempty"` +} + +func (x *CreateAnnotationRequest) Reset() { + *x = CreateAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[74] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateAnnotationRequest) ProtoMessage() {} + +func (x *CreateAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[74] + 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 CreateAnnotationRequest.ProtoReflect.Descriptor instead. +func (*CreateAnnotationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{74} +} + +func (x *CreateAnnotationRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateAnnotationRequest) GetAnnotation() *Annotation { + if x != nil { + return x.Annotation + } + return nil +} + +func (x *CreateAnnotationRequest) GetAnnotationId() string { + if x != nil && x.AnnotationId != nil { + return *x.AnnotationId + } + return "" +} + +// An annotation is a resource in asset. It represents a key-value mapping of +// content in asset. +type Annotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the annotation. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // User provided annotation. + UserSpecifiedAnnotation *UserSpecifiedAnnotation `protobuf:"bytes,2,opt,name=user_specified_annotation,json=userSpecifiedAnnotation,proto3" json:"user_specified_annotation,omitempty"` +} + +func (x *Annotation) Reset() { + *x = Annotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[75] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Annotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Annotation) ProtoMessage() {} + +func (x *Annotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[75] + 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 Annotation.ProtoReflect.Descriptor instead. +func (*Annotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{75} +} + +func (x *Annotation) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Annotation) GetUserSpecifiedAnnotation() *UserSpecifiedAnnotation { + if x != nil { + return x.UserSpecifiedAnnotation + } + return nil +} + +// Annotation provided by users. +type UserSpecifiedAnnotation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Key of the annotation. The key must be set with type by + // CreateDataSchema. + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + // Value of the annotation. The value must be able to convert + // to the type according to the data schema. + Value *AnnotationValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + // Partition information in time and space for the sub-asset level annotation. + Partition *Partition `protobuf:"bytes,3,opt,name=partition,proto3" json:"partition,omitempty"` +} + +func (x *UserSpecifiedAnnotation) Reset() { + *x = UserSpecifiedAnnotation{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[76] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSpecifiedAnnotation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSpecifiedAnnotation) ProtoMessage() {} + +func (x *UserSpecifiedAnnotation) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[76] + 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 UserSpecifiedAnnotation.ProtoReflect.Descriptor instead. +func (*UserSpecifiedAnnotation) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{76} +} + +func (x *UserSpecifiedAnnotation) GetKey() string { + if x != nil { + return x.Key + } + return "" +} + +func (x *UserSpecifiedAnnotation) GetValue() *AnnotationValue { + if x != nil { + return x.Value + } + return nil +} + +func (x *UserSpecifiedAnnotation) GetPartition() *Partition { + if x != nil { + return x.Partition + } + return nil +} + +// Location Coordinate Representation +type GeoCoordinate struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Latitude Coordinate. Degrees [-90 .. 90] + Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"` + // Longitude Coordinate. Degrees [-180 .. 180] + Longitude float64 `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"` +} + +func (x *GeoCoordinate) Reset() { + *x = GeoCoordinate{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[77] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeoCoordinate) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeoCoordinate) ProtoMessage() {} + +func (x *GeoCoordinate) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[77] + 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 GeoCoordinate.ProtoReflect.Descriptor instead. +func (*GeoCoordinate) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{77} +} + +func (x *GeoCoordinate) GetLatitude() float64 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *GeoCoordinate) GetLongitude() float64 { + if x != nil { + return x.Longitude + } + return 0 +} + +// Value of annotation, including all types available in data schema. +type AnnotationValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: + // + // *AnnotationValue_IntValue + // *AnnotationValue_FloatValue + // *AnnotationValue_StrValue + // *AnnotationValue_DatetimeValue + // *AnnotationValue_GeoCoordinate + // *AnnotationValue_ProtoAnyValue + // *AnnotationValue_BoolValue + // *AnnotationValue_CustomizedStructDataValue + // *AnnotationValue_ListValue + // *AnnotationValue_CustomizedStructValue + Value isAnnotationValue_Value `protobuf_oneof:"value"` +} + +func (x *AnnotationValue) Reset() { + *x = AnnotationValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[78] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotationValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotationValue) ProtoMessage() {} + +func (x *AnnotationValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[78] + 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 AnnotationValue.ProtoReflect.Descriptor instead. +func (*AnnotationValue) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{78} +} + +func (m *AnnotationValue) GetValue() isAnnotationValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *AnnotationValue) GetIntValue() int64 { + if x, ok := x.GetValue().(*AnnotationValue_IntValue); ok { + return x.IntValue + } + return 0 +} + +func (x *AnnotationValue) GetFloatValue() float32 { + if x, ok := x.GetValue().(*AnnotationValue_FloatValue); ok { + return x.FloatValue + } + return 0 +} + +func (x *AnnotationValue) GetStrValue() string { + if x, ok := x.GetValue().(*AnnotationValue_StrValue); ok { + return x.StrValue + } + return "" +} + +func (x *AnnotationValue) GetDatetimeValue() string { + if x, ok := x.GetValue().(*AnnotationValue_DatetimeValue); ok { + return x.DatetimeValue + } + return "" +} + +func (x *AnnotationValue) GetGeoCoordinate() *GeoCoordinate { + if x, ok := x.GetValue().(*AnnotationValue_GeoCoordinate); ok { + return x.GeoCoordinate + } + return nil +} + +func (x *AnnotationValue) GetProtoAnyValue() *anypb.Any { + if x, ok := x.GetValue().(*AnnotationValue_ProtoAnyValue); ok { + return x.ProtoAnyValue + } + return nil +} + +func (x *AnnotationValue) GetBoolValue() bool { + if x, ok := x.GetValue().(*AnnotationValue_BoolValue); ok { + return x.BoolValue + } + return false +} + +func (x *AnnotationValue) GetCustomizedStructDataValue() *structpb.Struct { + if x, ok := x.GetValue().(*AnnotationValue_CustomizedStructDataValue); ok { + return x.CustomizedStructDataValue + } + return nil +} + +func (x *AnnotationValue) GetListValue() *AnnotationList { + if x, ok := x.GetValue().(*AnnotationValue_ListValue); ok { + return x.ListValue + } + return nil +} + +func (x *AnnotationValue) GetCustomizedStructValue() *AnnotationCustomizedStruct { + if x, ok := x.GetValue().(*AnnotationValue_CustomizedStructValue); ok { + return x.CustomizedStructValue + } + return nil +} + +type isAnnotationValue_Value interface { + isAnnotationValue_Value() +} + +type AnnotationValue_IntValue struct { + // Value of int type annotation. + IntValue int64 `protobuf:"varint,1,opt,name=int_value,json=intValue,proto3,oneof"` +} + +type AnnotationValue_FloatValue struct { + // Value of float type annotation. + FloatValue float32 `protobuf:"fixed32,2,opt,name=float_value,json=floatValue,proto3,oneof"` +} + +type AnnotationValue_StrValue struct { + // Value of string type annotation. + StrValue string `protobuf:"bytes,3,opt,name=str_value,json=strValue,proto3,oneof"` +} + +type AnnotationValue_DatetimeValue struct { + // Value of date time type annotation. + DatetimeValue string `protobuf:"bytes,5,opt,name=datetime_value,json=datetimeValue,proto3,oneof"` +} + +type AnnotationValue_GeoCoordinate struct { + // Value of geo coordinate type annotation. + GeoCoordinate *GeoCoordinate `protobuf:"bytes,7,opt,name=geo_coordinate,json=geoCoordinate,proto3,oneof"` +} + +type AnnotationValue_ProtoAnyValue struct { + // Value of any proto value. + ProtoAnyValue *anypb.Any `protobuf:"bytes,8,opt,name=proto_any_value,json=protoAnyValue,proto3,oneof"` +} + +type AnnotationValue_BoolValue struct { + // Value of boolean type annotation. + BoolValue bool `protobuf:"varint,9,opt,name=bool_value,json=boolValue,proto3,oneof"` +} + +type AnnotationValue_CustomizedStructDataValue struct { + // Value of customized struct annotation. This field does not have effects. + // Use customized_struct_value instead for customized struct annotation. + CustomizedStructDataValue *structpb.Struct `protobuf:"bytes,10,opt,name=customized_struct_data_value,json=customizedStructDataValue,proto3,oneof"` +} + +type AnnotationValue_ListValue struct { + // Value of list type annotation. + ListValue *AnnotationList `protobuf:"bytes,11,opt,name=list_value,json=listValue,proto3,oneof"` +} + +type AnnotationValue_CustomizedStructValue struct { + // Value of custom struct type annotation. + CustomizedStructValue *AnnotationCustomizedStruct `protobuf:"bytes,6,opt,name=customized_struct_value,json=customizedStructValue,proto3,oneof"` +} + +func (*AnnotationValue_IntValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_FloatValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_StrValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_DatetimeValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_GeoCoordinate) isAnnotationValue_Value() {} + +func (*AnnotationValue_ProtoAnyValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_BoolValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_CustomizedStructDataValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_ListValue) isAnnotationValue_Value() {} + +func (*AnnotationValue_CustomizedStructValue) isAnnotationValue_Value() {} + +// List representation in annotation. +type AnnotationList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The values of `LIST` data type annotation. + Values []*AnnotationValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"` +} + +func (x *AnnotationList) Reset() { + *x = AnnotationList{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[79] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotationList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotationList) ProtoMessage() {} + +func (x *AnnotationList) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[79] + 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 AnnotationList.ProtoReflect.Descriptor instead. +func (*AnnotationList) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{79} +} + +func (x *AnnotationList) GetValues() []*AnnotationValue { + if x != nil { + return x.Values + } + return nil +} + +// Customized struct represnation in annotation. +type AnnotationCustomizedStruct struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A map from elements' keys to element's annotation value. + Elements map[string]*AnnotationValue `protobuf:"bytes,2,rep,name=elements,proto3" json:"elements,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *AnnotationCustomizedStruct) Reset() { + *x = AnnotationCustomizedStruct{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[80] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotationCustomizedStruct) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotationCustomizedStruct) ProtoMessage() {} + +func (x *AnnotationCustomizedStruct) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[80] + 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 AnnotationCustomizedStruct.ProtoReflect.Descriptor instead. +func (*AnnotationCustomizedStruct) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{80} +} + +func (x *AnnotationCustomizedStruct) GetElements() map[string]*AnnotationValue { + if x != nil { + return x.Elements + } + return nil +} + +// Request message for GetAnnotation API. +type ListAnnotationsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The parent, which owns this collection of annotations. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of annotations to return. The service may return fewer + // than this value. If unspecified, at most 50 annotations will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListAnnotations` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to `ListAnnotations` must + // match the call that provided the page token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // The filter applied to the returned list. + // We only support filtering for the following fields: + // `partition.temporal_partition.start_time`, + // `partition.temporal_partition.end_time`, and `key`. + // For corpus of IMAGE type, only `key` is supported. + // Timestamps are specified in the RFC-3339 format, and only one restriction + // may be applied per field, joined by conjunctions. + // Format: + // "partition.temporal_partition.start_time > "2012-04-21T11:30:00-04:00" AND + // partition.temporal_partition.end_time < "2012-04-22T11:30:00-04:00" AND + // key = "example_key"" + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListAnnotationsRequest) Reset() { + *x = ListAnnotationsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[81] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnnotationsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnnotationsRequest) ProtoMessage() {} + +func (x *ListAnnotationsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[81] + 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 ListAnnotationsRequest.ProtoReflect.Descriptor instead. +func (*ListAnnotationsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{81} +} + +func (x *ListAnnotationsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListAnnotationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListAnnotationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListAnnotationsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Request message for ListAnnotations API. +type ListAnnotationsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The annotations from the specified asset. + Annotations []*Annotation `protobuf:"bytes,1,rep,name=annotations,proto3" json:"annotations,omitempty"` + // A token, which can be sent as `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 *ListAnnotationsResponse) Reset() { + *x = ListAnnotationsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[82] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListAnnotationsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListAnnotationsResponse) ProtoMessage() {} + +func (x *ListAnnotationsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[82] + 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 ListAnnotationsResponse.ProtoReflect.Descriptor instead. +func (*ListAnnotationsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{82} +} + +func (x *ListAnnotationsResponse) GetAnnotations() []*Annotation { + if x != nil { + return x.Annotations + } + return nil +} + +func (x *ListAnnotationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for GetAnnotation API. +type GetAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the annotation to retrieve. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetAnnotationRequest) Reset() { + *x = GetAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[83] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAnnotationRequest) ProtoMessage() {} + +func (x *GetAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[83] + 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 GetAnnotationRequest.ProtoReflect.Descriptor instead. +func (*GetAnnotationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{83} +} + +func (x *GetAnnotationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for UpdateAnnotation API. +type UpdateAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The annotation to update. + // The annotation's `name` field is used to identify the annotation to be + // updated. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}` + Annotation *Annotation `protobuf:"bytes,1,opt,name=annotation,proto3" json:"annotation,omitempty"` + // The list of fields to be updated. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateAnnotationRequest) Reset() { + *x = UpdateAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[84] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateAnnotationRequest) ProtoMessage() {} + +func (x *UpdateAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[84] + 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 UpdateAnnotationRequest.ProtoReflect.Descriptor instead. +func (*UpdateAnnotationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{84} +} + +func (x *UpdateAnnotationRequest) GetAnnotation() *Annotation { + if x != nil { + return x.Annotation + } + return nil +} + +func (x *UpdateAnnotationRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for DeleteAnnotation API. +type DeleteAnnotationRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the annotation to delete. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/assets/{asset}/annotations/{annotation}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteAnnotationRequest) Reset() { + *x = DeleteAnnotationRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[85] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAnnotationRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAnnotationRequest) ProtoMessage() {} + +func (x *DeleteAnnotationRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[85] + 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 DeleteAnnotationRequest.ProtoReflect.Descriptor instead. +func (*DeleteAnnotationRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{85} +} + +func (x *DeleteAnnotationRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// The request message for ImportAssets. +type ImportAssetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The source. + // + // Types that are assignable to Source: + // + // *ImportAssetsRequest_AssetsGcsUri + Source isImportAssetsRequest_Source `protobuf_oneof:"source"` + // Required. The parent corpus resource where the assets will be imported. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` +} + +func (x *ImportAssetsRequest) Reset() { + *x = ImportAssetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[86] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportAssetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportAssetsRequest) ProtoMessage() {} + +func (x *ImportAssetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[86] + 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 ImportAssetsRequest.ProtoReflect.Descriptor instead. +func (*ImportAssetsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{86} +} + +func (m *ImportAssetsRequest) GetSource() isImportAssetsRequest_Source { + if m != nil { + return m.Source + } + return nil +} + +func (x *ImportAssetsRequest) GetAssetsGcsUri() string { + if x, ok := x.GetSource().(*ImportAssetsRequest_AssetsGcsUri); ok { + return x.AssetsGcsUri + } + return "" +} + +func (x *ImportAssetsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +type isImportAssetsRequest_Source interface { + isImportAssetsRequest_Source() +} + +type ImportAssetsRequest_AssetsGcsUri struct { + // The file contains all assets information to be imported. + // * The file is in JSONL format. + // * Each line corresponding to one asset. + // * Each line will be converted into InputImageAsset proto. + AssetsGcsUri string `protobuf:"bytes,2,opt,name=assets_gcs_uri,json=assetsGcsUri,proto3,oneof"` +} + +func (*ImportAssetsRequest_AssetsGcsUri) isImportAssetsRequest_Source() {} + +// The metadata message for ImportAssets LRO. +type ImportAssetsMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The metadata of the operation. + Metadata *OperationMetadata `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"` +} + +func (x *ImportAssetsMetadata) Reset() { + *x = ImportAssetsMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[87] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportAssetsMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportAssetsMetadata) ProtoMessage() {} + +func (x *ImportAssetsMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[87] + 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 ImportAssetsMetadata.ProtoReflect.Descriptor instead. +func (*ImportAssetsMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{87} +} + +func (x *ImportAssetsMetadata) GetMetadata() *OperationMetadata { + if x != nil { + return x.Metadata + } + return nil +} + +// The response message for ImportAssets LRO. +type ImportAssetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *ImportAssetsResponse) Reset() { + *x = ImportAssetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[88] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImportAssetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImportAssetsResponse) ProtoMessage() {} + +func (x *ImportAssetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[88] + 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 ImportAssetsResponse.ProtoReflect.Descriptor instead. +func (*ImportAssetsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{88} +} + +// Request message for CreateSearchConfig. +type CreateSearchConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this search configuration will be + // created. Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The search config to create. + SearchConfig *SearchConfig `protobuf:"bytes,2,opt,name=search_config,json=searchConfig,proto3" json:"search_config,omitempty"` + // Required. ID to use for the new search config. Will become the final + // component of the SearchConfig's resource name. This value should be up to + // 63 characters, and valid characters are /[a-z][0-9]-_/. The first character + // must be a letter, the last could be a letter or a number. + SearchConfigId string `protobuf:"bytes,3,opt,name=search_config_id,json=searchConfigId,proto3" json:"search_config_id,omitempty"` +} + +func (x *CreateSearchConfigRequest) Reset() { + *x = CreateSearchConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[89] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSearchConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSearchConfigRequest) ProtoMessage() {} + +func (x *CreateSearchConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[89] + 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 CreateSearchConfigRequest.ProtoReflect.Descriptor instead. +func (*CreateSearchConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{89} +} + +func (x *CreateSearchConfigRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSearchConfigRequest) GetSearchConfig() *SearchConfig { + if x != nil { + return x.SearchConfig + } + return nil +} + +func (x *CreateSearchConfigRequest) GetSearchConfigId() string { + if x != nil { + return x.SearchConfigId + } + return "" +} + +// Request message for UpdateSearchConfig. +type UpdateSearchConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The search configuration to update. + // + // The search configuration's `name` field is used to identify the resource to + // be updated. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}` + SearchConfig *SearchConfig `protobuf:"bytes,1,opt,name=search_config,json=searchConfig,proto3" json:"search_config,omitempty"` + // The list of fields to be updated. If left unset, all field paths will be + // updated/overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateSearchConfigRequest) Reset() { + *x = UpdateSearchConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[90] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSearchConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSearchConfigRequest) ProtoMessage() {} + +func (x *UpdateSearchConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[90] + 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 UpdateSearchConfigRequest.ProtoReflect.Descriptor instead. +func (*UpdateSearchConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{90} +} + +func (x *UpdateSearchConfigRequest) GetSearchConfig() *SearchConfig { + if x != nil { + return x.SearchConfig + } + return nil +} + +func (x *UpdateSearchConfigRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for GetSearchConfig. +type GetSearchConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the search configuration to retrieve. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSearchConfigRequest) Reset() { + *x = GetSearchConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[91] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSearchConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSearchConfigRequest) ProtoMessage() {} + +func (x *GetSearchConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[91] + 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 GetSearchConfigRequest.ProtoReflect.Descriptor instead. +func (*GetSearchConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{91} +} + +func (x *GetSearchConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for DeleteSearchConfig. +type DeleteSearchConfigRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the search configuration to delete. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteSearchConfigRequest) Reset() { + *x = DeleteSearchConfigRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[92] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSearchConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSearchConfigRequest) ProtoMessage() {} + +func (x *DeleteSearchConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[92] + 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 DeleteSearchConfigRequest.ProtoReflect.Descriptor instead. +func (*DeleteSearchConfigRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{92} +} + +func (x *DeleteSearchConfigRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListSearchConfigs. +type ListSearchConfigsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent, which owns this collection of search configurations. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of search configurations to return. The service may + // return fewer than this value. If unspecified, a page size of 50 will be + // used. The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `ListSearchConfigs` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `ListSearchConfigs` must match the call that provided the page + // token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListSearchConfigsRequest) Reset() { + *x = ListSearchConfigsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[93] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSearchConfigsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSearchConfigsRequest) ProtoMessage() {} + +func (x *ListSearchConfigsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[93] + 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 ListSearchConfigsRequest.ProtoReflect.Descriptor instead. +func (*ListSearchConfigsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{93} +} + +func (x *ListSearchConfigsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSearchConfigsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSearchConfigsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for ListSearchConfigs. +type ListSearchConfigsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The search configurations from the specified corpus. + SearchConfigs []*SearchConfig `protobuf:"bytes,1,rep,name=search_configs,json=searchConfigs,proto3" json:"search_configs,omitempty"` + // A token, which can be sent as `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 *ListSearchConfigsResponse) Reset() { + *x = ListSearchConfigsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[94] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSearchConfigsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSearchConfigsResponse) ProtoMessage() {} + +func (x *ListSearchConfigsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[94] + 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 ListSearchConfigsResponse.ProtoReflect.Descriptor instead. +func (*ListSearchConfigsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{94} +} + +func (x *ListSearchConfigsResponse) GetSearchConfigs() []*SearchConfig { + if x != nil { + return x.SearchConfigs + } + return nil +} + +func (x *ListSearchConfigsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// SearchConfig stores different properties that will affect search +// behaviors and search results. +type SearchConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the search configuration. + // For CustomSearchCriteria, search_config would be the search + // operator name. For Facets, search_config would be the facet + // dimension name. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchConfigs/{search_config}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Establishes a FacetDimension and associated specifications. + FacetProperty *FacetProperty `protobuf:"bytes,2,opt,name=facet_property,json=facetProperty,proto3" json:"facet_property,omitempty"` + // Creates a mapping between a custom SearchCriteria and one or more UGA keys. + SearchCriteriaProperty *SearchCriteriaProperty `protobuf:"bytes,3,opt,name=search_criteria_property,json=searchCriteriaProperty,proto3" json:"search_criteria_property,omitempty"` +} + +func (x *SearchConfig) Reset() { + *x = SearchConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[95] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchConfig) ProtoMessage() {} + +func (x *SearchConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[95] + 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 SearchConfig.ProtoReflect.Descriptor instead. +func (*SearchConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{95} +} + +func (x *SearchConfig) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SearchConfig) GetFacetProperty() *FacetProperty { + if x != nil { + return x.FacetProperty + } + return nil +} + +func (x *SearchConfig) GetSearchCriteriaProperty() *SearchCriteriaProperty { + if x != nil { + return x.SearchCriteriaProperty + } + return nil +} + +// Message representing IndexEndpoint resource. Indexes are deployed into it. +type IndexEndpoint struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Output only. Resource name of the IndexEndpoint. + // Format: + // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. Display name of the IndexEndpoint. Can be up to 32 characters + // long. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Optional. Description of the IndexEndpoint. Can be up to 25000 characters + // long. + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + // Output only. The Index deployed in this IndexEndpoint. + DeployedIndex *DeployedIndex `protobuf:"bytes,9,opt,name=deployed_index,json=deployedIndex,proto3" json:"deployed_index,omitempty"` + // Output only. IndexEndpoint state. + State IndexEndpoint_State `protobuf:"varint,5,opt,name=state,proto3,enum=google.cloud.visionai.v1.IndexEndpoint_State" json:"state,omitempty"` + // Optional. The labels applied to a resource must meet the following + // requirements: + // + // - Each resource can have multiple labels, up to a maximum of 64. + // - Each label must be a key-value pair. + // - Keys have a minimum length of 1 character and a maximum length of 63 + // characters and cannot be empty. Values can be empty and have a maximum + // length of 63 characters. + // - Keys and values can contain only lowercase letters, numeric characters, + // underscores, and dashes. All characters must use UTF-8 encoding, and + // international characters are allowed. + // - The key portion of a label must be unique. However, you can use the same + // key with multiple resources. + // - Keys must start with a lowercase letter or international character. + // + // See [Google Cloud + // Document](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements) + // for more details. + 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. Create timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. Update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` +} + +func (x *IndexEndpoint) Reset() { + *x = IndexEndpoint{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[96] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IndexEndpoint) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IndexEndpoint) ProtoMessage() {} + +func (x *IndexEndpoint) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[96] + 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 IndexEndpoint.ProtoReflect.Descriptor instead. +func (*IndexEndpoint) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{96} +} + +func (x *IndexEndpoint) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *IndexEndpoint) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *IndexEndpoint) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *IndexEndpoint) GetDeployedIndex() *DeployedIndex { + if x != nil { + return x.DeployedIndex + } + return nil +} + +func (x *IndexEndpoint) GetState() IndexEndpoint_State { + if x != nil { + return x.State + } + return IndexEndpoint_STATE_UNSPECIFIED +} + +func (x *IndexEndpoint) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +func (x *IndexEndpoint) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil +} + +func (x *IndexEndpoint) GetUpdateTime() *timestamppb.Timestamp { + if x != nil { + return x.UpdateTime + } + return nil +} + +// Request message for CreateIndexEndpoint. +type CreateIndexEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format: `projects/{project}/locations/{location}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. The ID to use for the IndexEndpoint, which will become the final + // component of the IndexEndpoint's resource name if the user specifies it. + // Otherwise, IndexEndpoint id will be autogenerated. + // + // This value should be up to 63 characters, and valid characters + // are a-z, 0-9 and dash (-). The first character must be a letter, the last + // must be a letter or a number. + IndexEndpointId string `protobuf:"bytes,2,opt,name=index_endpoint_id,json=indexEndpointId,proto3" json:"index_endpoint_id,omitempty"` + // Required. The resource being created. + IndexEndpoint *IndexEndpoint `protobuf:"bytes,3,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` +} + +func (x *CreateIndexEndpointRequest) Reset() { + *x = CreateIndexEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[97] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateIndexEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateIndexEndpointRequest) ProtoMessage() {} + +func (x *CreateIndexEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[97] + 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 CreateIndexEndpointRequest.ProtoReflect.Descriptor instead. +func (*CreateIndexEndpointRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{97} +} + +func (x *CreateIndexEndpointRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateIndexEndpointRequest) GetIndexEndpointId() string { + if x != nil { + return x.IndexEndpointId + } + return "" +} + +func (x *CreateIndexEndpointRequest) GetIndexEndpoint() *IndexEndpoint { + if x != nil { + return x.IndexEndpoint + } + return nil +} + +// Metadata message for CreateIndexEndpoint. +type CreateIndexEndpointMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *CreateIndexEndpointMetadata) Reset() { + *x = CreateIndexEndpointMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[98] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateIndexEndpointMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateIndexEndpointMetadata) ProtoMessage() {} + +func (x *CreateIndexEndpointMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[98] + 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 CreateIndexEndpointMetadata.ProtoReflect.Descriptor instead. +func (*CreateIndexEndpointMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{98} +} + +func (x *CreateIndexEndpointMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for GetIndexEndpoint. +type GetIndexEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the IndexEndpoint resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetIndexEndpointRequest) Reset() { + *x = GetIndexEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[99] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetIndexEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIndexEndpointRequest) ProtoMessage() {} + +func (x *GetIndexEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[99] + 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 GetIndexEndpointRequest.ProtoReflect.Descriptor instead. +func (*GetIndexEndpointRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{99} +} + +func (x *GetIndexEndpointRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for ListIndexEndpoints. +type ListIndexEndpointsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Format: `projects/{project}/locations/{location}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Optional. Requested page size. Server may return fewer items than + // requested. The service may return fewer than this value. If unspecified, a + // page size of 50 will be used. The maximum value is 1000; values above 1000 + // will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A token identifying a page of results the server should return. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. The filter applied to the returned list. + // We only support filtering for the `deployed_image_index.image_index` field. + // However, to filter by a corpus instead of an image index, simply use + // `deployed_image_index.corpus`, which will return all endpoints with + // `deployed_image_index.image_index` inside of the given corpus. + // A basic filter on image index would look like: + // + // deployed_image_index.image_index = + // "projects/123/locations/us-central1/corpora/my_corpus/imageIndexes/my_image_index" + // + // A basic filter on corpus would look like: + // + // deployed_image_index.corpus = + // "projects/123/locations/us-central1/corpora/my_corpus" + Filter string `protobuf:"bytes,4,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListIndexEndpointsRequest) Reset() { + *x = ListIndexEndpointsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[100] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexEndpointsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexEndpointsRequest) ProtoMessage() {} + +func (x *ListIndexEndpointsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[100] + 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 ListIndexEndpointsRequest.ProtoReflect.Descriptor instead. +func (*ListIndexEndpointsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{100} +} + +func (x *ListIndexEndpointsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListIndexEndpointsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListIndexEndpointsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListIndexEndpointsRequest) GetFilter() string { + if x != nil { + return x.Filter + } + return "" +} + +// Response message for ListIndexEndpoints. +type ListIndexEndpointsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The list of IndexEndpoints. + IndexEndpoints []*IndexEndpoint `protobuf:"bytes,1,rep,name=index_endpoints,json=indexEndpoints,proto3" json:"index_endpoints,omitempty"` + // A token identifying a page of results the server should return. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` +} + +func (x *ListIndexEndpointsResponse) Reset() { + *x = ListIndexEndpointsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[101] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListIndexEndpointsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListIndexEndpointsResponse) ProtoMessage() {} + +func (x *ListIndexEndpointsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[101] + 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 ListIndexEndpointsResponse.ProtoReflect.Descriptor instead. +func (*ListIndexEndpointsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{101} +} + +func (x *ListIndexEndpointsResponse) GetIndexEndpoints() []*IndexEndpoint { + if x != nil { + return x.IndexEndpoints + } + return nil +} + +func (x *ListIndexEndpointsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Request message for UpdateIndexEndpoint. +type UpdateIndexEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource being updated. + IndexEndpoint *IndexEndpoint `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` + // Required. Field mask is used to specify the fields to be overwritten in the + // IndexEndpoint resource by the update. + // The fields specified in the update_mask are relative to the resource, not + // the full request. + // A field of the resource will be overwritten if it is in the mask. + // Empty field mask is not allowed. + // If the mask is "*", then this is a full replacement of the resource. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateIndexEndpointRequest) Reset() { + *x = UpdateIndexEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[102] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateIndexEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateIndexEndpointRequest) ProtoMessage() {} + +func (x *UpdateIndexEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[102] + 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 UpdateIndexEndpointRequest.ProtoReflect.Descriptor instead. +func (*UpdateIndexEndpointRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{102} +} + +func (x *UpdateIndexEndpointRequest) GetIndexEndpoint() *IndexEndpoint { + if x != nil { + return x.IndexEndpoint + } + return nil +} + +func (x *UpdateIndexEndpointRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Metadata message for UpdateIndexEndpoint. +type UpdateIndexEndpointMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *UpdateIndexEndpointMetadata) Reset() { + *x = UpdateIndexEndpointMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[103] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateIndexEndpointMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateIndexEndpointMetadata) ProtoMessage() {} + +func (x *UpdateIndexEndpointMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[103] + 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 UpdateIndexEndpointMetadata.ProtoReflect.Descriptor instead. +func (*UpdateIndexEndpointMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{103} +} + +func (x *UpdateIndexEndpointMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for DeleteIndexEndpoint. +type DeleteIndexEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the resource. + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteIndexEndpointRequest) Reset() { + *x = DeleteIndexEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[104] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteIndexEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteIndexEndpointRequest) ProtoMessage() {} + +func (x *DeleteIndexEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[104] + 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 DeleteIndexEndpointRequest.ProtoReflect.Descriptor instead. +func (*DeleteIndexEndpointRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{104} +} + +func (x *DeleteIndexEndpointRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Metadata message for DeleteIndexEndpoint. +type DeleteIndexEndpointMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` +} + +func (x *DeleteIndexEndpointMetadata) Reset() { + *x = DeleteIndexEndpointMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[105] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteIndexEndpointMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteIndexEndpointMetadata) ProtoMessage() {} + +func (x *DeleteIndexEndpointMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[105] + 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 DeleteIndexEndpointMetadata.ProtoReflect.Descriptor instead. +func (*DeleteIndexEndpointMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{105} +} + +func (x *DeleteIndexEndpointMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +// Request message for DeployIndex. +type DeployIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. IndexEndpoint the index is deployed to. + // Format: + // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` + IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` + // Required. Index to deploy. + DeployedIndex *DeployedIndex `protobuf:"bytes,3,opt,name=deployed_index,json=deployedIndex,proto3" json:"deployed_index,omitempty"` +} + +func (x *DeployIndexRequest) Reset() { + *x = DeployIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[106] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployIndexRequest) ProtoMessage() {} + +func (x *DeployIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[106] + 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 DeployIndexRequest.ProtoReflect.Descriptor instead. +func (*DeployIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{106} +} + +func (x *DeployIndexRequest) GetIndexEndpoint() string { + if x != nil { + return x.IndexEndpoint + } + return "" +} + +func (x *DeployIndexRequest) GetDeployedIndex() *DeployedIndex { + if x != nil { + return x.DeployedIndex + } + return nil +} + +// DeployIndex response once the operation is done. +type DeployIndexResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeployIndexResponse) Reset() { + *x = DeployIndexResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[107] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployIndexResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployIndexResponse) ProtoMessage() {} + +func (x *DeployIndexResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[107] + 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 DeployIndexResponse.ProtoReflect.Descriptor instead. +func (*DeployIndexResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{107} +} + +// Metadata message for DeployIndex. +type DeployIndexMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` + // Output only. The index being deployed. + DeployedIndex string `protobuf:"bytes,2,opt,name=deployed_index,json=deployedIndex,proto3" json:"deployed_index,omitempty"` +} + +func (x *DeployIndexMetadata) Reset() { + *x = DeployIndexMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[108] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployIndexMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployIndexMetadata) ProtoMessage() {} + +func (x *DeployIndexMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[108] + 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 DeployIndexMetadata.ProtoReflect.Descriptor instead. +func (*DeployIndexMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{108} +} + +func (x *DeployIndexMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +func (x *DeployIndexMetadata) GetDeployedIndex() string { + if x != nil { + return x.DeployedIndex + } + return "" +} + +// Metadata message for UndeployIndex. +type UndeployIndexMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Common metadata of the long-running operation. + OperationMetadata *OperationMetadata `protobuf:"bytes,1,opt,name=operation_metadata,json=operationMetadata,proto3" json:"operation_metadata,omitempty"` + // Output only. The index being undeployed. + DeployedIndex string `protobuf:"bytes,2,opt,name=deployed_index,json=deployedIndex,proto3" json:"deployed_index,omitempty"` +} + +func (x *UndeployIndexMetadata) Reset() { + *x = UndeployIndexMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[109] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UndeployIndexMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UndeployIndexMetadata) ProtoMessage() {} + +func (x *UndeployIndexMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[109] + 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 UndeployIndexMetadata.ProtoReflect.Descriptor instead. +func (*UndeployIndexMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{109} +} + +func (x *UndeployIndexMetadata) GetOperationMetadata() *OperationMetadata { + if x != nil { + return x.OperationMetadata + } + return nil +} + +func (x *UndeployIndexMetadata) GetDeployedIndex() string { + if x != nil { + return x.DeployedIndex + } + return "" +} + +// Request message for UndeployIndexEndpoint. +type UndeployIndexRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Resource name of the IndexEndpoint resource on which the + // undeployment will act. Format: + // `projects/{project}/locations/{location}/indexEndpoints/{index_endpoint}` + IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` +} + +func (x *UndeployIndexRequest) Reset() { + *x = UndeployIndexRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[110] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UndeployIndexRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UndeployIndexRequest) ProtoMessage() {} + +func (x *UndeployIndexRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[110] + 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 UndeployIndexRequest.ProtoReflect.Descriptor instead. +func (*UndeployIndexRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{110} +} + +func (x *UndeployIndexRequest) GetIndexEndpoint() string { + if x != nil { + return x.IndexEndpoint + } + return "" +} + +// UndeployIndex response once the operation is done. +type UndeployIndexResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UndeployIndexResponse) Reset() { + *x = UndeployIndexResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[111] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UndeployIndexResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UndeployIndexResponse) ProtoMessage() {} + +func (x *UndeployIndexResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[111] + 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 UndeployIndexResponse.ProtoReflect.Descriptor instead. +func (*UndeployIndexResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{111} +} + +// A deployment of an Index. +type DeployedIndex struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. Name of the deployed Index. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/indexes/{index_id}` + Index string `protobuf:"bytes,1,opt,name=index,proto3" json:"index,omitempty"` +} + +func (x *DeployedIndex) Reset() { + *x = DeployedIndex{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[112] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeployedIndex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeployedIndex) ProtoMessage() {} + +func (x *DeployedIndex) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[112] + 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 DeployedIndex.ProtoReflect.Descriptor instead. +func (*DeployedIndex) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{112} +} + +func (x *DeployedIndex) GetIndex() string { + if x != nil { + return x.Index + } + return "" +} + +// Central configuration for a facet. +type FacetProperty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to RangeFacetConfig: + // + // *FacetProperty_FixedRangeBucketSpec_ + // *FacetProperty_CustomRangeBucketSpec_ + // *FacetProperty_DatetimeBucketSpec + RangeFacetConfig isFacetProperty_RangeFacetConfig `protobuf_oneof:"range_facet_config"` + // Name of the facets, which are the dimensions users want to use to refine + // search results. `mapped_fields` will match UserSpecifiedDataSchema keys. + // + // For example, user can add a bunch of UGAs with the same key, such as + // player:adam, player:bob, player:charles. When multiple mapped_fields are + // specified, will merge their value together as final facet value. E.g. + // home_team: a, home_team:b, away_team:a, away_team:c, when facet_field = + // [home_team, away_team], facet_value will be [a, b, c]. + // + // UNLESS this is a 1:1 facet dimension (mapped_fields.size() == 1) AND the + // mapped_field equals the parent SearchConfig.name, the parent must + // also contain a SearchCriteriaProperty that maps to the same fields. + // mapped_fields must not be empty. + MappedFields []string `protobuf:"bytes,1,rep,name=mapped_fields,json=mappedFields,proto3" json:"mapped_fields,omitempty"` + // Display name of the facet. To be used by UI for facet rendering. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Maximum number of unique bucket to return for one facet. Bucket number can + // be large for high-cardinality facet such as "player". We only return top-n + // most related ones to user. If it's <= 0, the server will decide the + // appropriate result_size. + ResultSize int64 `protobuf:"varint,3,opt,name=result_size,json=resultSize,proto3" json:"result_size,omitempty"` + // Facet bucket type e.g. value, range. + BucketType FacetBucketType `protobuf:"varint,4,opt,name=bucket_type,json=bucketType,proto3,enum=google.cloud.visionai.v1.FacetBucketType" json:"bucket_type,omitempty"` +} + +func (x *FacetProperty) Reset() { + *x = FacetProperty{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[113] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetProperty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetProperty) ProtoMessage() {} + +func (x *FacetProperty) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[113] + 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 FacetProperty.ProtoReflect.Descriptor instead. +func (*FacetProperty) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{113} +} + +func (m *FacetProperty) GetRangeFacetConfig() isFacetProperty_RangeFacetConfig { + if m != nil { + return m.RangeFacetConfig + } + return nil +} + +func (x *FacetProperty) GetFixedRangeBucketSpec() *FacetProperty_FixedRangeBucketSpec { + if x, ok := x.GetRangeFacetConfig().(*FacetProperty_FixedRangeBucketSpec_); ok { + return x.FixedRangeBucketSpec + } + return nil +} + +func (x *FacetProperty) GetCustomRangeBucketSpec() *FacetProperty_CustomRangeBucketSpec { + if x, ok := x.GetRangeFacetConfig().(*FacetProperty_CustomRangeBucketSpec_); ok { + return x.CustomRangeBucketSpec + } + return nil +} + +func (x *FacetProperty) GetDatetimeBucketSpec() *FacetProperty_DateTimeBucketSpec { + if x, ok := x.GetRangeFacetConfig().(*FacetProperty_DatetimeBucketSpec); ok { + return x.DatetimeBucketSpec + } + return nil +} + +func (x *FacetProperty) GetMappedFields() []string { + if x != nil { + return x.MappedFields + } + return nil +} + +func (x *FacetProperty) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *FacetProperty) GetResultSize() int64 { + if x != nil { + return x.ResultSize + } + return 0 +} + +func (x *FacetProperty) GetBucketType() FacetBucketType { + if x != nil { + return x.BucketType + } + return FacetBucketType_FACET_BUCKET_TYPE_UNSPECIFIED +} + +type isFacetProperty_RangeFacetConfig interface { + isFacetProperty_RangeFacetConfig() +} + +type FacetProperty_FixedRangeBucketSpec_ struct { + // Fixed range facet bucket config. + FixedRangeBucketSpec *FacetProperty_FixedRangeBucketSpec `protobuf:"bytes,5,opt,name=fixed_range_bucket_spec,json=fixedRangeBucketSpec,proto3,oneof"` +} + +type FacetProperty_CustomRangeBucketSpec_ struct { + // Custom range facet bucket config. + CustomRangeBucketSpec *FacetProperty_CustomRangeBucketSpec `protobuf:"bytes,6,opt,name=custom_range_bucket_spec,json=customRangeBucketSpec,proto3,oneof"` +} + +type FacetProperty_DatetimeBucketSpec struct { + // Datetime range facet bucket config. + DatetimeBucketSpec *FacetProperty_DateTimeBucketSpec `protobuf:"bytes,7,opt,name=datetime_bucket_spec,json=datetimeBucketSpec,proto3,oneof"` +} + +func (*FacetProperty_FixedRangeBucketSpec_) isFacetProperty_RangeFacetConfig() {} + +func (*FacetProperty_CustomRangeBucketSpec_) isFacetProperty_RangeFacetConfig() {} + +func (*FacetProperty_DatetimeBucketSpec) isFacetProperty_RangeFacetConfig() {} + +// Search resource: SearchHypernym. +// For example, +// { hypernym: "vehicle" +// +// hyponyms: ["sedan", "truck"] } +// +// This means in SMART_SEARCH mode, searching for "vehicle" will also return +// results with "sedan" or "truck" as annotations. +type SearchHypernym struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Resource name of the SearchHypernym. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The hypernym. + Hypernym string `protobuf:"bytes,2,opt,name=hypernym,proto3" json:"hypernym,omitempty"` + // Hyponyms that the hypernym is mapped to. + Hyponyms []string `protobuf:"bytes,3,rep,name=hyponyms,proto3" json:"hyponyms,omitempty"` +} + +func (x *SearchHypernym) Reset() { + *x = SearchHypernym{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[114] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchHypernym) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchHypernym) ProtoMessage() {} + +func (x *SearchHypernym) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[114] + 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 SearchHypernym.ProtoReflect.Descriptor instead. +func (*SearchHypernym) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{114} +} + +func (x *SearchHypernym) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *SearchHypernym) GetHypernym() string { + if x != nil { + return x.Hypernym + } + return "" +} + +func (x *SearchHypernym) GetHyponyms() []string { + if x != nil { + return x.Hyponyms + } + return nil +} + +// Request message for creating SearchHypernym. +type CreateSearchHypernymRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent resource where this SearchHypernym will be created. + // Format: `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The SearchHypernym to create. + SearchHypernym *SearchHypernym `protobuf:"bytes,2,opt,name=search_hypernym,json=searchHypernym,proto3" json:"search_hypernym,omitempty"` + // Optional. The search hypernym id. + // If omitted, a random UUID will be generated. + SearchHypernymId *string `protobuf:"bytes,3,opt,name=search_hypernym_id,json=searchHypernymId,proto3,oneof" json:"search_hypernym_id,omitempty"` +} + +func (x *CreateSearchHypernymRequest) Reset() { + *x = CreateSearchHypernymRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[115] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateSearchHypernymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateSearchHypernymRequest) ProtoMessage() {} + +func (x *CreateSearchHypernymRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[115] + 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 CreateSearchHypernymRequest.ProtoReflect.Descriptor instead. +func (*CreateSearchHypernymRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{115} +} + +func (x *CreateSearchHypernymRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *CreateSearchHypernymRequest) GetSearchHypernym() *SearchHypernym { + if x != nil { + return x.SearchHypernym + } + return nil +} + +func (x *CreateSearchHypernymRequest) GetSearchHypernymId() string { + if x != nil && x.SearchHypernymId != nil { + return *x.SearchHypernymId + } + return "" +} + +// Request message for updating SearchHypernym. +type UpdateSearchHypernymRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The SearchHypernym to update. + // The search hypernym's `name` field is used to identify the search hypernym + // to be updated. Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}` + SearchHypernym *SearchHypernym `protobuf:"bytes,1,opt,name=search_hypernym,json=searchHypernym,proto3" json:"search_hypernym,omitempty"` + // The list of fields to be updated. If left unset, all field paths will be + // updated/overwritten. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` +} + +func (x *UpdateSearchHypernymRequest) Reset() { + *x = UpdateSearchHypernymRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[116] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateSearchHypernymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateSearchHypernymRequest) ProtoMessage() {} + +func (x *UpdateSearchHypernymRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[116] + 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 UpdateSearchHypernymRequest.ProtoReflect.Descriptor instead. +func (*UpdateSearchHypernymRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{116} +} + +func (x *UpdateSearchHypernymRequest) GetSearchHypernym() *SearchHypernym { + if x != nil { + return x.SearchHypernym + } + return nil +} + +func (x *UpdateSearchHypernymRequest) GetUpdateMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.UpdateMask + } + return nil +} + +// Request message for getting SearchHypernym. +type GetSearchHypernymRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the SearchHypernym to retrieve. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *GetSearchHypernymRequest) Reset() { + *x = GetSearchHypernymRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[117] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSearchHypernymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSearchHypernymRequest) ProtoMessage() {} + +func (x *GetSearchHypernymRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[117] + 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 GetSearchHypernymRequest.ProtoReflect.Descriptor instead. +func (*GetSearchHypernymRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{117} +} + +func (x *GetSearchHypernymRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for deleting SearchHypernym. +type DeleteSearchHypernymRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The name of the SearchHypernym to delete. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}/searchHypernyms/{search_hypernym}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` +} + +func (x *DeleteSearchHypernymRequest) Reset() { + *x = DeleteSearchHypernymRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteSearchHypernymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteSearchHypernymRequest) ProtoMessage() {} + +func (x *DeleteSearchHypernymRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[118] + 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 DeleteSearchHypernymRequest.ProtoReflect.Descriptor instead. +func (*DeleteSearchHypernymRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{118} +} + +func (x *DeleteSearchHypernymRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +// Request message for listing SearchHypernyms. +type ListSearchHypernymsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The parent, which owns this collection of SearchHypernyms. + // Format: + // `projects/{project_number}/locations/{location}/corpora/{corpus}` + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // The maximum number of SearchHypernyms returned. The service may + // return fewer than this value. If unspecified, a page size of 50 will be + // used. The maximum value is 1000; values above 1000 will be coerced to 1000. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // A page token, received from a previous `SearchHypernym` call. + // Provide this to retrieve the subsequent page. + // + // When paginating, all other parameters provided to + // `SearchHypernym` must match the call that provided the page + // token. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *ListSearchHypernymsRequest) Reset() { + *x = ListSearchHypernymsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSearchHypernymsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSearchHypernymsRequest) ProtoMessage() {} + +func (x *ListSearchHypernymsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[119] + 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 ListSearchHypernymsRequest.ProtoReflect.Descriptor instead. +func (*ListSearchHypernymsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{119} +} + +func (x *ListSearchHypernymsRequest) GetParent() string { + if x != nil { + return x.Parent + } + return "" +} + +func (x *ListSearchHypernymsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListSearchHypernymsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +// Response message for listing SearchHypernyms. +type ListSearchHypernymsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The SearchHypernyms from the specified corpus. + SearchHypernyms []*SearchHypernym `protobuf:"bytes,1,rep,name=search_hypernyms,json=searchHypernyms,proto3" json:"search_hypernyms,omitempty"` + // A token, which can be sent as `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 *ListSearchHypernymsResponse) Reset() { + *x = ListSearchHypernymsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListSearchHypernymsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListSearchHypernymsResponse) ProtoMessage() {} + +func (x *ListSearchHypernymsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[120] + 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 ListSearchHypernymsResponse.ProtoReflect.Descriptor instead. +func (*ListSearchHypernymsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{120} +} + +func (x *ListSearchHypernymsResponse) GetSearchHypernyms() []*SearchHypernym { + if x != nil { + return x.SearchHypernyms + } + return nil +} + +func (x *ListSearchHypernymsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Central configuration for custom search criteria. +type SearchCriteriaProperty struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Each mapped_field corresponds to a UGA key. To understand how this property + // works, take the following example. In the SearchConfig table, the + // user adds this entry: + // + // search_config { + // name: "person" + // search_criteria_property { + // mapped_fields: "player" + // mapped_fields: "coach" + // } + // } + // + // Now, when a user issues a query like: + // + // criteria { + // field: "person" + // text_array { + // txt_values: "Tom Brady" + // txt_values: "Bill Belichick" + // } + // } + // + // MWH search will return search documents where (player=Tom Brady || + // coach=Tom Brady || player=Bill Belichick || coach=Bill Belichick). + MappedFields []string `protobuf:"bytes,1,rep,name=mapped_fields,json=mappedFields,proto3" json:"mapped_fields,omitempty"` +} + +func (x *SearchCriteriaProperty) Reset() { + *x = SearchCriteriaProperty{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchCriteriaProperty) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchCriteriaProperty) ProtoMessage() {} + +func (x *SearchCriteriaProperty) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[121] + 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 SearchCriteriaProperty.ProtoReflect.Descriptor instead. +func (*SearchCriteriaProperty) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{121} +} + +func (x *SearchCriteriaProperty) GetMappedFields() []string { + if x != nil { + return x.MappedFields + } + return nil +} + +// Definition of a single value with generic type. +type FacetValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: + // + // *FacetValue_StringValue + // *FacetValue_IntegerValue + // *FacetValue_DatetimeValue + Value isFacetValue_Value `protobuf_oneof:"value"` +} + +func (x *FacetValue) Reset() { + *x = FacetValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetValue) ProtoMessage() {} + +func (x *FacetValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[122] + 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 FacetValue.ProtoReflect.Descriptor instead. +func (*FacetValue) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{122} +} + +func (m *FacetValue) GetValue() isFacetValue_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *FacetValue) GetStringValue() string { + if x, ok := x.GetValue().(*FacetValue_StringValue); ok { + return x.StringValue + } + return "" +} + +func (x *FacetValue) GetIntegerValue() int64 { + if x, ok := x.GetValue().(*FacetValue_IntegerValue); ok { + return x.IntegerValue + } + return 0 +} + +func (x *FacetValue) GetDatetimeValue() *datetime.DateTime { + if x, ok := x.GetValue().(*FacetValue_DatetimeValue); ok { + return x.DatetimeValue + } + return nil +} + +type isFacetValue_Value interface { + isFacetValue_Value() +} + +type FacetValue_StringValue struct { + // String type value. + StringValue string `protobuf:"bytes,1,opt,name=string_value,json=stringValue,proto3,oneof"` +} + +type FacetValue_IntegerValue struct { + // Integer type value. + IntegerValue int64 `protobuf:"varint,2,opt,name=integer_value,json=integerValue,proto3,oneof"` +} + +type FacetValue_DatetimeValue struct { + // Datetime type value. + DatetimeValue *datetime.DateTime `protobuf:"bytes,3,opt,name=datetime_value,json=datetimeValue,proto3,oneof"` +} + +func (*FacetValue_StringValue) isFacetValue_Value() {} + +func (*FacetValue_IntegerValue) isFacetValue_Value() {} + +func (*FacetValue_DatetimeValue) isFacetValue_Value() {} + +// Holds the facet value, selections state, and metadata. +type FacetBucket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Bucket associated with a facet. For example, bucket of facet “team” + // can be "49ers", "patriots", etc; bucket of facet "player" can be "tom + // brady", "drew brees", etc. + // + // Types that are assignable to BucketValue: + // + // *FacetBucket_Value + // *FacetBucket_Range_ + BucketValue isFacetBucket_BucketValue `protobuf_oneof:"bucket_value"` + // Whether one facet bucket is selected. This field represents user's facet + // selection. It is set by frontend in SearchVideosRequest. + Selected bool `protobuf:"varint,3,opt,name=selected,proto3" json:"selected,omitempty"` +} + +func (x *FacetBucket) Reset() { + *x = FacetBucket{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetBucket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetBucket) ProtoMessage() {} + +func (x *FacetBucket) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[123] + 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 FacetBucket.ProtoReflect.Descriptor instead. +func (*FacetBucket) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{123} +} + +func (m *FacetBucket) GetBucketValue() isFacetBucket_BucketValue { + if m != nil { + return m.BucketValue + } + return nil +} + +func (x *FacetBucket) GetValue() *FacetValue { + if x, ok := x.GetBucketValue().(*FacetBucket_Value); ok { + return x.Value + } + return nil +} + +func (x *FacetBucket) GetRange() *FacetBucket_Range { + if x, ok := x.GetBucketValue().(*FacetBucket_Range_); ok { + return x.Range + } + return nil +} + +func (x *FacetBucket) GetSelected() bool { + if x != nil { + return x.Selected + } + return false +} + +type isFacetBucket_BucketValue interface { + isFacetBucket_BucketValue() +} + +type FacetBucket_Value struct { + // Singular value. + Value *FacetValue `protobuf:"bytes,2,opt,name=value,proto3,oneof"` +} + +type FacetBucket_Range_ struct { + // Range value. + Range *FacetBucket_Range `protobuf:"bytes,4,opt,name=range,proto3,oneof"` +} + +func (*FacetBucket_Value) isFacetBucket_BucketValue() {} + +func (*FacetBucket_Range_) isFacetBucket_BucketValue() {} + +// A group of facet buckets to be passed back and forth between backend & +// frontend. +type FacetGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Unique id of the facet group. + FacetId string `protobuf:"bytes,1,opt,name=facet_id,json=facetId,proto3" json:"facet_id,omitempty"` + // Display name of the facet. To be used by UI for facet rendering. + DisplayName string `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"` + // Buckets associated with the facet. E.g. for "Team" facet, the bucket + // can be 49ers, patriots, etc. + Buckets []*FacetBucket `protobuf:"bytes,3,rep,name=buckets,proto3" json:"buckets,omitempty"` + // Facet bucket type. + BucketType FacetBucketType `protobuf:"varint,4,opt,name=bucket_type,json=bucketType,proto3,enum=google.cloud.visionai.v1.FacetBucketType" json:"bucket_type,omitempty"` + // If true, return query matched annotations for this facet group's selection. + // This option is only applicable for facets based on partition level + // annotations. It supports the following facet values: + // - INTEGER + // - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only) + FetchMatchedAnnotations bool `protobuf:"varint,5,opt,name=fetch_matched_annotations,json=fetchMatchedAnnotations,proto3" json:"fetch_matched_annotations,omitempty"` +} + +func (x *FacetGroup) Reset() { + *x = FacetGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetGroup) ProtoMessage() {} + +func (x *FacetGroup) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[124] + 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 FacetGroup.ProtoReflect.Descriptor instead. +func (*FacetGroup) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{124} +} + +func (x *FacetGroup) GetFacetId() string { + if x != nil { + return x.FacetId + } + return "" +} + +func (x *FacetGroup) GetDisplayName() string { + if x != nil { + return x.DisplayName + } + return "" +} + +func (x *FacetGroup) GetBuckets() []*FacetBucket { + if x != nil { + return x.Buckets + } + return nil +} + +func (x *FacetGroup) GetBucketType() FacetBucketType { + if x != nil { + return x.BucketType + } + return FacetBucketType_FACET_BUCKET_TYPE_UNSPECIFIED +} + +func (x *FacetGroup) GetFetchMatchedAnnotations() bool { + if x != nil { + return x.FetchMatchedAnnotations + } + return false +} + +// Request message for IngestAsset API. +type IngestAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to StreamingRequest: + // + // *IngestAssetRequest_Config_ + // *IngestAssetRequest_TimeIndexedData_ + StreamingRequest isIngestAssetRequest_StreamingRequest `protobuf_oneof:"streaming_request"` +} + +func (x *IngestAssetRequest) Reset() { + *x = IngestAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IngestAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngestAssetRequest) ProtoMessage() {} + +func (x *IngestAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[125] + 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 IngestAssetRequest.ProtoReflect.Descriptor instead. +func (*IngestAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{125} +} + +func (m *IngestAssetRequest) GetStreamingRequest() isIngestAssetRequest_StreamingRequest { + if m != nil { + return m.StreamingRequest + } + return nil +} + +func (x *IngestAssetRequest) GetConfig() *IngestAssetRequest_Config { + if x, ok := x.GetStreamingRequest().(*IngestAssetRequest_Config_); ok { + return x.Config + } + return nil +} + +func (x *IngestAssetRequest) GetTimeIndexedData() *IngestAssetRequest_TimeIndexedData { + if x, ok := x.GetStreamingRequest().(*IngestAssetRequest_TimeIndexedData_); ok { + return x.TimeIndexedData + } + return nil +} + +type isIngestAssetRequest_StreamingRequest interface { + isIngestAssetRequest_StreamingRequest() +} + +type IngestAssetRequest_Config_ struct { + // Provides information for the data and the asset resource name that the + // data belongs to. The first `IngestAssetRequest` message must only contain + // a `Config` message. + Config *IngestAssetRequest_Config `protobuf:"bytes,1,opt,name=config,proto3,oneof"` +} + +type IngestAssetRequest_TimeIndexedData_ struct { + // Data to be ingested. + TimeIndexedData *IngestAssetRequest_TimeIndexedData `protobuf:"bytes,2,opt,name=time_indexed_data,json=timeIndexedData,proto3,oneof"` +} + +func (*IngestAssetRequest_Config_) isIngestAssetRequest_StreamingRequest() {} + +func (*IngestAssetRequest_TimeIndexedData_) isIngestAssetRequest_StreamingRequest() {} + +// Response message for IngestAsset API. +type IngestAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Time range of the data that has been successfully ingested. + SuccessfullyIngestedPartition *Partition_TemporalPartition `protobuf:"bytes,1,opt,name=successfully_ingested_partition,json=successfullyIngestedPartition,proto3" json:"successfully_ingested_partition,omitempty"` +} + +func (x *IngestAssetResponse) Reset() { + *x = IngestAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IngestAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngestAssetResponse) ProtoMessage() {} + +func (x *IngestAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[126] + 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 IngestAssetResponse.ProtoReflect.Descriptor instead. +func (*IngestAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{126} +} + +func (x *IngestAssetResponse) GetSuccessfullyIngestedPartition() *Partition_TemporalPartition { + if x != nil { + return x.SuccessfullyIngestedPartition + } + return nil +} + +// Request message for ClipAsset API. +type ClipAssetRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to request clips for. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The time range to request clips for. + TemporalPartition *Partition_TemporalPartition `protobuf:"bytes,2,opt,name=temporal_partition,json=temporalPartition,proto3" json:"temporal_partition,omitempty"` +} + +func (x *ClipAssetRequest) Reset() { + *x = ClipAssetRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClipAssetRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClipAssetRequest) ProtoMessage() {} + +func (x *ClipAssetRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[127] + 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 ClipAssetRequest.ProtoReflect.Descriptor instead. +func (*ClipAssetRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{127} +} + +func (x *ClipAssetRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *ClipAssetRequest) GetTemporalPartition() *Partition_TemporalPartition { + if x != nil { + return x.TemporalPartition + } + return nil +} + +// Response message for ClipAsset API. +type ClipAssetResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of signed uris to download the video clips that cover the requested + // time range ordered by time. + TimeIndexedUris []*ClipAssetResponse_TimeIndexedUri `protobuf:"bytes,1,rep,name=time_indexed_uris,json=timeIndexedUris,proto3" json:"time_indexed_uris,omitempty"` +} + +func (x *ClipAssetResponse) Reset() { + *x = ClipAssetResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClipAssetResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClipAssetResponse) ProtoMessage() {} + +func (x *ClipAssetResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[128] + 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 ClipAssetResponse.ProtoReflect.Descriptor instead. +func (*ClipAssetResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{128} +} + +func (x *ClipAssetResponse) GetTimeIndexedUris() []*ClipAssetResponse_TimeIndexedUri { + if x != nil { + return x.TimeIndexedUris + } + return nil +} + +// Request message for GenerateHlsUri API. +type GenerateHlsUriRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Required. The resource name of the asset to request clips for. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The time range to request clips for. Will be ignored if `get_live_view` is + // set to True. The total time range requested should be smaller than 24h. + TemporalPartitions []*Partition_TemporalPartition `protobuf:"bytes,2,rep,name=temporal_partitions,json=temporalPartitions,proto3" json:"temporal_partitions,omitempty"` + // Option to exclusively show a livestream of the asset with up to 3 minutes + // of backlog data. + LiveViewEnabled bool `protobuf:"varint,3,opt,name=live_view_enabled,json=liveViewEnabled,proto3" json:"live_view_enabled,omitempty"` +} + +func (x *GenerateHlsUriRequest) Reset() { + *x = GenerateHlsUriRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateHlsUriRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateHlsUriRequest) ProtoMessage() {} + +func (x *GenerateHlsUriRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[129] + 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 GenerateHlsUriRequest.ProtoReflect.Descriptor instead. +func (*GenerateHlsUriRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{129} +} + +func (x *GenerateHlsUriRequest) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *GenerateHlsUriRequest) GetTemporalPartitions() []*Partition_TemporalPartition { + if x != nil { + return x.TemporalPartitions + } + return nil +} + +func (x *GenerateHlsUriRequest) GetLiveViewEnabled() bool { + if x != nil { + return x.LiveViewEnabled + } + return false +} + +// Response message for GenerateHlsUri API. +type GenerateHlsUriResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A signed uri to download the HLS manifest corresponding to the requested + // times. + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + // A list of temporal partitions of the content returned in the order they + // appear in the stream. + TemporalPartitions []*Partition_TemporalPartition `protobuf:"bytes,2,rep,name=temporal_partitions,json=temporalPartitions,proto3" json:"temporal_partitions,omitempty"` +} + +func (x *GenerateHlsUriResponse) Reset() { + *x = GenerateHlsUriResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GenerateHlsUriResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateHlsUriResponse) ProtoMessage() {} + +func (x *GenerateHlsUriResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[130] + 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 GenerateHlsUriResponse.ProtoReflect.Descriptor instead. +func (*GenerateHlsUriResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{130} +} + +func (x *GenerateHlsUriResponse) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *GenerateHlsUriResponse) GetTemporalPartitions() []*Partition_TemporalPartition { + if x != nil { + return x.TemporalPartitions + } + return nil +} + +// Request message for SearchAssets. +type SearchAssetsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Sorting specification. If this field is not specified, by default: + // - STREAM_VIDEO: search results are sorted by the start time. + // + // Types that are assignable to SortSpec: + // + // *SearchAssetsRequest_SchemaKeySortingStrategy + SortSpec isSearchAssetsRequest_SortSpec `protobuf_oneof:"sort_spec"` + // Required. The parent corpus to search. + // Format: `projects/{project_id}/locations/{location_id}/corpora/{corpus_id}' + Corpus string `protobuf:"bytes,1,opt,name=corpus,proto3" json:"corpus,omitempty"` + // The number of results to be returned in this page. If it's 0, the server + // will decide the appropriate page_size. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The continuation token to fetch the next page. If empty, it means it is + // fetching the first page. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Time ranges that matching video content must fall within. If no ranges are + // provided, there will be no time restriction. This field is treated just + // like the criteria below, but defined separately for convenience as it is + // used frequently. Note that if the end_time is in the future, it will be + // clamped to the time the request was received. + ContentTimeRanges *DateTimeRangeArray `protobuf:"bytes,5,opt,name=content_time_ranges,json=contentTimeRanges,proto3" json:"content_time_ranges,omitempty"` + // Criteria applied to search results. + Criteria []*Criteria `protobuf:"bytes,4,rep,name=criteria,proto3" json:"criteria,omitempty"` + // Stores most recent facet selection state. Only facet groups with user's + // selection will be presented here. Selection state is either selected or + // unselected. Only selected facet buckets will be used as search criteria. + FacetSelections []*FacetGroup `protobuf:"bytes,6,rep,name=facet_selections,json=facetSelections,proto3" json:"facet_selections,omitempty"` + // A list of annotation keys to specify the annotations to be retrieved and + // returned with each search result. + // Annotation granularity must be GRANULARITY_ASSET_LEVEL and its search + // strategy must not be NO_SEARCH. + ResultAnnotationKeys []string `protobuf:"bytes,8,rep,name=result_annotation_keys,json=resultAnnotationKeys,proto3" json:"result_annotation_keys,omitempty"` + // Global search query. Allows user to search assets without needing to + // specify which field the value belongs to. + SearchQuery string `protobuf:"bytes,10,opt,name=search_query,json=searchQuery,proto3" json:"search_query,omitempty"` +} + +func (x *SearchAssetsRequest) Reset() { + *x = SearchAssetsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchAssetsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchAssetsRequest) ProtoMessage() {} + +func (x *SearchAssetsRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[131] + 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 SearchAssetsRequest.ProtoReflect.Descriptor instead. +func (*SearchAssetsRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{131} +} + +func (m *SearchAssetsRequest) GetSortSpec() isSearchAssetsRequest_SortSpec { + if m != nil { + return m.SortSpec + } + return nil +} + +func (x *SearchAssetsRequest) GetSchemaKeySortingStrategy() *SchemaKeySortingStrategy { + if x, ok := x.GetSortSpec().(*SearchAssetsRequest_SchemaKeySortingStrategy); ok { + return x.SchemaKeySortingStrategy + } + return nil +} + +func (x *SearchAssetsRequest) GetCorpus() string { + if x != nil { + return x.Corpus + } + return "" +} + +func (x *SearchAssetsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *SearchAssetsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *SearchAssetsRequest) GetContentTimeRanges() *DateTimeRangeArray { + if x != nil { + return x.ContentTimeRanges + } + return nil +} + +func (x *SearchAssetsRequest) GetCriteria() []*Criteria { + if x != nil { + return x.Criteria + } + return nil +} + +func (x *SearchAssetsRequest) GetFacetSelections() []*FacetGroup { + if x != nil { + return x.FacetSelections + } + return nil +} + +func (x *SearchAssetsRequest) GetResultAnnotationKeys() []string { + if x != nil { + return x.ResultAnnotationKeys + } + return nil +} + +func (x *SearchAssetsRequest) GetSearchQuery() string { + if x != nil { + return x.SearchQuery + } + return "" +} + +type isSearchAssetsRequest_SortSpec interface { + isSearchAssetsRequest_SortSpec() +} + +type SearchAssetsRequest_SchemaKeySortingStrategy struct { + // Sort by the value under the data schema key. + SchemaKeySortingStrategy *SchemaKeySortingStrategy `protobuf:"bytes,9,opt,name=schema_key_sorting_strategy,json=schemaKeySortingStrategy,proto3,oneof"` +} + +func (*SearchAssetsRequest_SchemaKeySortingStrategy) isSearchAssetsRequest_SortSpec() {} + +// Request message for SearchIndexEndpoint. +type SearchIndexEndpointRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The oneof global search query. + // + // Types that are assignable to Query: + // + // *SearchIndexEndpointRequest_ImageQuery + // *SearchIndexEndpointRequest_TextQuery + Query isSearchIndexEndpointRequest_Query `protobuf_oneof:"query"` + // Required. The index endpoint to search. + // Format: + // `projects/{project_id}/locations/{location_id}/indexEndpoints/{index_endpoint_id}' + IndexEndpoint string `protobuf:"bytes,1,opt,name=index_endpoint,json=indexEndpoint,proto3" json:"index_endpoint,omitempty"` + // Criteria applied to search results. + Criteria []*Criteria `protobuf:"bytes,4,rep,name=criteria,proto3" json:"criteria,omitempty"` + // Criteria to exclude from search results. + // Note that `fetch_matched_annotations` will be ignored. + ExclusionCriteria []*Criteria `protobuf:"bytes,7,rep,name=exclusion_criteria,json=exclusionCriteria,proto3" json:"exclusion_criteria,omitempty"` + // Requested page size. API may return fewer results than requested. + // If negative, INVALID_ARGUMENT error will be returned. + // If unspecified or 0, API will pick a default size, which is 10. + // If the requested page size is larger than the maximum size, API will pick + // the maximum size, which is 100. + PageSize int32 `protobuf:"varint,5,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // The continuation token to fetch the next page. If empty, it means it is + // fetching the first page. + PageToken string `protobuf:"bytes,6,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` +} + +func (x *SearchIndexEndpointRequest) Reset() { + *x = SearchIndexEndpointRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchIndexEndpointRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchIndexEndpointRequest) ProtoMessage() {} + +func (x *SearchIndexEndpointRequest) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[132] + 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 SearchIndexEndpointRequest.ProtoReflect.Descriptor instead. +func (*SearchIndexEndpointRequest) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{132} +} + +func (m *SearchIndexEndpointRequest) GetQuery() isSearchIndexEndpointRequest_Query { + if m != nil { + return m.Query + } + return nil +} + +func (x *SearchIndexEndpointRequest) GetImageQuery() *ImageQuery { + if x, ok := x.GetQuery().(*SearchIndexEndpointRequest_ImageQuery); ok { + return x.ImageQuery + } + return nil +} + +func (x *SearchIndexEndpointRequest) GetTextQuery() string { + if x, ok := x.GetQuery().(*SearchIndexEndpointRequest_TextQuery); ok { + return x.TextQuery + } + return "" +} + +func (x *SearchIndexEndpointRequest) GetIndexEndpoint() string { + if x != nil { + return x.IndexEndpoint + } + return "" +} + +func (x *SearchIndexEndpointRequest) GetCriteria() []*Criteria { + if x != nil { + return x.Criteria + } + return nil +} + +func (x *SearchIndexEndpointRequest) GetExclusionCriteria() []*Criteria { + if x != nil { + return x.ExclusionCriteria + } + return nil +} + +func (x *SearchIndexEndpointRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *SearchIndexEndpointRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +type isSearchIndexEndpointRequest_Query interface { + isSearchIndexEndpointRequest_Query() +} + +type SearchIndexEndpointRequest_ImageQuery struct { + // An image-only query. + ImageQuery *ImageQuery `protobuf:"bytes,2,opt,name=image_query,json=imageQuery,proto3,oneof"` +} + +type SearchIndexEndpointRequest_TextQuery struct { + // A text-only query. + TextQuery string `protobuf:"bytes,3,opt,name=text_query,json=textQuery,proto3,oneof"` +} + +func (*SearchIndexEndpointRequest_ImageQuery) isSearchIndexEndpointRequest_Query() {} + +func (*SearchIndexEndpointRequest_TextQuery) isSearchIndexEndpointRequest_Query() {} + +// Image query for search endpoint request. +type ImageQuery struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Image: + // + // *ImageQuery_InputImage + // *ImageQuery_Asset + Image isImageQuery_Image `protobuf_oneof:"image"` +} + +func (x *ImageQuery) Reset() { + *x = ImageQuery{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageQuery) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageQuery) ProtoMessage() {} + +func (x *ImageQuery) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[133] + 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 ImageQuery.ProtoReflect.Descriptor instead. +func (*ImageQuery) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{133} +} + +func (m *ImageQuery) GetImage() isImageQuery_Image { + if m != nil { + return m.Image + } + return nil +} + +func (x *ImageQuery) GetInputImage() []byte { + if x, ok := x.GetImage().(*ImageQuery_InputImage); ok { + return x.InputImage + } + return nil +} + +func (x *ImageQuery) GetAsset() string { + if x, ok := x.GetImage().(*ImageQuery_Asset); ok { + return x.Asset + } + return "" +} + +type isImageQuery_Image interface { + isImageQuery_Image() +} + +type ImageQuery_InputImage struct { + // Input image in raw bytes. + InputImage []byte `protobuf:"bytes,1,opt,name=input_image,json=inputImage,proto3,oneof"` +} + +type ImageQuery_Asset struct { + // Resource name of the asset. Only supported in IMAGE corpus type. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Asset string `protobuf:"bytes,2,opt,name=asset,proto3,oneof"` +} + +func (*ImageQuery_InputImage) isImageQuery_Image() {} + +func (*ImageQuery_Asset) isImageQuery_Image() {} + +// A strategy to specify how to sort by data schema key. +type SchemaKeySortingStrategy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Options in the front have high priority than those in the back. + Options []*SchemaKeySortingStrategy_Option `protobuf:"bytes,1,rep,name=options,proto3" json:"options,omitempty"` +} + +func (x *SchemaKeySortingStrategy) Reset() { + *x = SchemaKeySortingStrategy{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SchemaKeySortingStrategy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SchemaKeySortingStrategy) ProtoMessage() {} + +func (x *SchemaKeySortingStrategy) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[134] + 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 SchemaKeySortingStrategy.ProtoReflect.Descriptor instead. +func (*SchemaKeySortingStrategy) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{134} +} + +func (x *SchemaKeySortingStrategy) GetOptions() []*SchemaKeySortingStrategy_Option { + if x != nil { + return x.Options + } + return nil +} + +// The metadata for DeleteAsset API that embeds in +// [metadata][google.longrunning.Operation.metadata] field. +type DeleteAssetMetadata struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteAssetMetadata) Reset() { + *x = DeleteAssetMetadata{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteAssetMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteAssetMetadata) ProtoMessage() {} + +func (x *DeleteAssetMetadata) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[135] + 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 DeleteAssetMetadata.ProtoReflect.Descriptor instead. +func (*DeleteAssetMetadata) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{135} +} + +// Stores the criteria-annotation matching results for each search result item. +type AnnotationMatchingResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The criteria used for matching. It can be an input search criteria or a + // criteria converted from a facet selection. + Criteria *Criteria `protobuf:"bytes,1,opt,name=criteria,proto3" json:"criteria,omitempty"` + // Matched annotations for the criteria. + MatchedAnnotations []*Annotation `protobuf:"bytes,2,rep,name=matched_annotations,json=matchedAnnotations,proto3" json:"matched_annotations,omitempty"` + // Status of the match result. Possible values: + // FAILED_PRECONDITION - the criteria is not eligible for match. + // OK - matching is performed. + Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"` +} + +func (x *AnnotationMatchingResult) Reset() { + *x = AnnotationMatchingResult{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[136] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnnotationMatchingResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnnotationMatchingResult) ProtoMessage() {} + +func (x *AnnotationMatchingResult) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[136] + 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 AnnotationMatchingResult.ProtoReflect.Descriptor instead. +func (*AnnotationMatchingResult) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{136} +} + +func (x *AnnotationMatchingResult) GetCriteria() *Criteria { + if x != nil { + return x.Criteria + } + return nil +} + +func (x *AnnotationMatchingResult) GetMatchedAnnotations() []*Annotation { + if x != nil { + return x.MatchedAnnotations + } + return nil +} + +func (x *AnnotationMatchingResult) GetStatus() *status.Status { + if x != nil { + return x.Status + } + return nil +} + +// Search result contains asset name and corresponding time ranges. +type SearchResultItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The resource name of the asset. + // Format: + // `projects/{project_number}/locations/{location_id}/corpora/{corpus_id}/assets/{asset_id}` + Asset string `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` + // The matched asset segments. + // Deprecated: please use singular `segment` field. + // + // Deprecated: Marked as deprecated in google/cloud/visionai/v1/warehouse.proto. + Segments []*Partition_TemporalPartition `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"` + // The matched asset segment. + Segment *Partition_TemporalPartition `protobuf:"bytes,5,opt,name=segment,proto3" json:"segment,omitempty"` + // Relevance of this `SearchResultItem` to user search request. + // Currently available only in Image Warehouse, and by default represents + // cosine similarity. In the future can be other measures such as "dot + // product" or "topicality" requested in the search request. + Relevance float64 `protobuf:"fixed64,6,opt,name=relevance,proto3" json:"relevance,omitempty"` + // Search result annotations specified by result_annotation_keys in search + // request. + RequestedAnnotations []*Annotation `protobuf:"bytes,3,rep,name=requested_annotations,json=requestedAnnotations,proto3" json:"requested_annotations,omitempty"` + // Criteria or facet-selection based annotation matching results associated to + // this search result item. Only contains results for criteria or + // facet_selections with fetch_matched_annotations=true. + AnnotationMatchingResults []*AnnotationMatchingResult `protobuf:"bytes,4,rep,name=annotation_matching_results,json=annotationMatchingResults,proto3" json:"annotation_matching_results,omitempty"` +} + +func (x *SearchResultItem) Reset() { + *x = SearchResultItem{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[137] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchResultItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchResultItem) ProtoMessage() {} + +func (x *SearchResultItem) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[137] + 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 SearchResultItem.ProtoReflect.Descriptor instead. +func (*SearchResultItem) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{137} +} + +func (x *SearchResultItem) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +// Deprecated: Marked as deprecated in google/cloud/visionai/v1/warehouse.proto. +func (x *SearchResultItem) GetSegments() []*Partition_TemporalPartition { + if x != nil { + return x.Segments + } + return nil +} + +func (x *SearchResultItem) GetSegment() *Partition_TemporalPartition { + if x != nil { + return x.Segment + } + return nil +} + +func (x *SearchResultItem) GetRelevance() float64 { + if x != nil { + return x.Relevance + } + return 0 +} + +func (x *SearchResultItem) GetRequestedAnnotations() []*Annotation { + if x != nil { + return x.RequestedAnnotations + } + return nil +} + +func (x *SearchResultItem) GetAnnotationMatchingResults() []*AnnotationMatchingResult { + if x != nil { + return x.AnnotationMatchingResults + } + return nil +} + +// Response message for SearchAssets. +type SearchAssetsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Returned search results. + SearchResultItems []*SearchResultItem `protobuf:"bytes,1,rep,name=search_result_items,json=searchResultItems,proto3" json:"search_result_items,omitempty"` + // The next-page continuation token. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // Facet search results of a given query, which contains user's + // already-selected facet values and updated facet search results. + FacetResults []*FacetGroup `protobuf:"bytes,3,rep,name=facet_results,json=facetResults,proto3" json:"facet_results,omitempty"` +} + +func (x *SearchAssetsResponse) Reset() { + *x = SearchAssetsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[138] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchAssetsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchAssetsResponse) ProtoMessage() {} + +func (x *SearchAssetsResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[138] + 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 SearchAssetsResponse.ProtoReflect.Descriptor instead. +func (*SearchAssetsResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{138} +} + +func (x *SearchAssetsResponse) GetSearchResultItems() []*SearchResultItem { + if x != nil { + return x.SearchResultItems + } + return nil +} + +func (x *SearchAssetsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *SearchAssetsResponse) GetFacetResults() []*FacetGroup { + if x != nil { + return x.FacetResults + } + return nil +} + +// Response message for SearchIndexEndpoint. +type SearchIndexEndpointResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Returned search results. + SearchResultItems []*SearchResultItem `protobuf:"bytes,1,rep,name=search_result_items,json=searchResultItems,proto3" json:"search_result_items,omitempty"` + // The next-page continuation token. + // 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 *SearchIndexEndpointResponse) Reset() { + *x = SearchIndexEndpointResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[139] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SearchIndexEndpointResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SearchIndexEndpointResponse) ProtoMessage() {} + +func (x *SearchIndexEndpointResponse) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[139] + 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 SearchIndexEndpointResponse.ProtoReflect.Descriptor instead. +func (*SearchIndexEndpointResponse) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{139} +} + +func (x *SearchIndexEndpointResponse) GetSearchResultItems() []*SearchResultItem { + if x != nil { + return x.SearchResultItems + } + return nil +} + +func (x *SearchIndexEndpointResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +// Integer range type. +type IntRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start of the int range. + Start *int64 `protobuf:"varint,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // End of the int range. + End *int64 `protobuf:"varint,2,opt,name=end,proto3,oneof" json:"end,omitempty"` +} + +func (x *IntRange) Reset() { + *x = IntRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[140] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntRange) ProtoMessage() {} + +func (x *IntRange) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[140] + 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 IntRange.ProtoReflect.Descriptor instead. +func (*IntRange) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{140} +} + +func (x *IntRange) GetStart() int64 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *IntRange) GetEnd() int64 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +// Float range type. +type FloatRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start of the float range. + Start *float32 `protobuf:"fixed32,1,opt,name=start,proto3,oneof" json:"start,omitempty"` + // End of the float range. + End *float32 `protobuf:"fixed32,2,opt,name=end,proto3,oneof" json:"end,omitempty"` +} + +func (x *FloatRange) Reset() { + *x = FloatRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[141] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRange) ProtoMessage() {} + +func (x *FloatRange) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[141] + 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 FloatRange.ProtoReflect.Descriptor instead. +func (*FloatRange) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{141} +} + +func (x *FloatRange) GetStart() float32 { + if x != nil && x.Start != nil { + return *x.Start + } + return 0 +} + +func (x *FloatRange) GetEnd() float32 { + if x != nil && x.End != nil { + return *x.End + } + return 0 +} + +// A list of string-type values. +type StringArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // String type values. + TxtValues []string `protobuf:"bytes,1,rep,name=txt_values,json=txtValues,proto3" json:"txt_values,omitempty"` +} + +func (x *StringArray) Reset() { + *x = StringArray{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[142] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StringArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringArray) ProtoMessage() {} + +func (x *StringArray) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[142] + 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 StringArray.ProtoReflect.Descriptor instead. +func (*StringArray) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{142} +} + +func (x *StringArray) GetTxtValues() []string { + if x != nil { + return x.TxtValues + } + return nil +} + +// A list of integer range values. +type IntRangeArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Int range values. + IntRanges []*IntRange `protobuf:"bytes,1,rep,name=int_ranges,json=intRanges,proto3" json:"int_ranges,omitempty"` +} + +func (x *IntRangeArray) Reset() { + *x = IntRangeArray{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[143] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntRangeArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntRangeArray) ProtoMessage() {} + +func (x *IntRangeArray) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[143] + 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 IntRangeArray.ProtoReflect.Descriptor instead. +func (*IntRangeArray) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{143} +} + +func (x *IntRangeArray) GetIntRanges() []*IntRange { + if x != nil { + return x.IntRanges + } + return nil +} + +// A list of float range values. +type FloatRangeArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Float range values. + FloatRanges []*FloatRange `protobuf:"bytes,1,rep,name=float_ranges,json=floatRanges,proto3" json:"float_ranges,omitempty"` +} + +func (x *FloatRangeArray) Reset() { + *x = FloatRangeArray{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[144] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FloatRangeArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FloatRangeArray) ProtoMessage() {} + +func (x *FloatRangeArray) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[144] + 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 FloatRangeArray.ProtoReflect.Descriptor instead. +func (*FloatRangeArray) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{144} +} + +func (x *FloatRangeArray) GetFloatRanges() []*FloatRange { + if x != nil { + return x.FloatRanges + } + return nil +} + +// Datetime range type. +type DateTimeRange struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start date time. + Start *datetime.DateTime `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` + // End data time. + End *datetime.DateTime `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` +} + +func (x *DateTimeRange) Reset() { + *x = DateTimeRange{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[145] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DateTimeRange) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DateTimeRange) ProtoMessage() {} + +func (x *DateTimeRange) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[145] + 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 DateTimeRange.ProtoReflect.Descriptor instead. +func (*DateTimeRange) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{145} +} + +func (x *DateTimeRange) GetStart() *datetime.DateTime { + if x != nil { + return x.Start + } + return nil +} + +func (x *DateTimeRange) GetEnd() *datetime.DateTime { + if x != nil { + return x.End + } + return nil +} + +// A list of datetime range values. +type DateTimeRangeArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Date time ranges. + DateTimeRanges []*DateTimeRange `protobuf:"bytes,1,rep,name=date_time_ranges,json=dateTimeRanges,proto3" json:"date_time_ranges,omitempty"` +} + +func (x *DateTimeRangeArray) Reset() { + *x = DateTimeRangeArray{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[146] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DateTimeRangeArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DateTimeRangeArray) ProtoMessage() {} + +func (x *DateTimeRangeArray) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[146] + 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 DateTimeRangeArray.ProtoReflect.Descriptor instead. +func (*DateTimeRangeArray) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{146} +} + +func (x *DateTimeRangeArray) GetDateTimeRanges() []*DateTimeRange { + if x != nil { + return x.DateTimeRanges + } + return nil +} + +// Representation of a circle area. +type CircleArea struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Latitude of circle area's center. Degrees [-90 .. 90] + Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"` + // Longitude of circle area's center. Degrees [-180 .. 180] + Longitude float64 `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"` + // Radius of the circle area in meters. + RadiusMeter float64 `protobuf:"fixed64,3,opt,name=radius_meter,json=radiusMeter,proto3" json:"radius_meter,omitempty"` +} + +func (x *CircleArea) Reset() { + *x = CircleArea{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[147] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CircleArea) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CircleArea) ProtoMessage() {} + +func (x *CircleArea) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[147] + 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 CircleArea.ProtoReflect.Descriptor instead. +func (*CircleArea) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{147} +} + +func (x *CircleArea) GetLatitude() float64 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *CircleArea) GetLongitude() float64 { + if x != nil { + return x.Longitude + } + return 0 +} + +func (x *CircleArea) GetRadiusMeter() float64 { + if x != nil { + return x.RadiusMeter + } + return 0 +} + +// A list of locations. +type GeoLocationArray struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // A list of circle areas. + CircleAreas []*CircleArea `protobuf:"bytes,1,rep,name=circle_areas,json=circleAreas,proto3" json:"circle_areas,omitempty"` +} + +func (x *GeoLocationArray) Reset() { + *x = GeoLocationArray{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[148] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GeoLocationArray) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GeoLocationArray) ProtoMessage() {} + +func (x *GeoLocationArray) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[148] + 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 GeoLocationArray.ProtoReflect.Descriptor instead. +func (*GeoLocationArray) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{148} +} + +func (x *GeoLocationArray) GetCircleAreas() []*CircleArea { + if x != nil { + return x.CircleAreas + } + return nil +} + +type BoolValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *BoolValue) Reset() { + *x = BoolValue{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[149] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoolValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoolValue) ProtoMessage() {} + +func (x *BoolValue) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[149] + 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 BoolValue.ProtoReflect.Descriptor instead. +func (*BoolValue) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{149} +} + +func (x *BoolValue) GetValue() bool { + if x != nil { + return x.Value + } + return false +} + +// Filter criteria applied to current search results. +type Criteria struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to Value: + // + // *Criteria_TextArray + // *Criteria_IntRangeArray + // *Criteria_FloatRangeArray + // *Criteria_DateTimeRangeArray + // *Criteria_GeoLocationArray + // *Criteria_BoolValue + Value isCriteria_Value `protobuf_oneof:"value"` + // The UGA field or ML field to apply filtering criteria. + Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"` + // If true, return query matched annotations for this criteria. + // This option is only applicable for inclusion criteria, i.e., not exclusion + // criteria, with partition level annotations. It supports the following data + // types: + // - INTEGER + // - FLOAT + // - STRING (DataSchema.SearchStrategy.EXACT_SEARCH only) + // - BOOLEAN + FetchMatchedAnnotations bool `protobuf:"varint,8,opt,name=fetch_matched_annotations,json=fetchMatchedAnnotations,proto3" json:"fetch_matched_annotations,omitempty"` +} + +func (x *Criteria) Reset() { + *x = Criteria{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[150] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Criteria) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Criteria) ProtoMessage() {} + +func (x *Criteria) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[150] + 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 Criteria.ProtoReflect.Descriptor instead. +func (*Criteria) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{150} +} + +func (m *Criteria) GetValue() isCriteria_Value { + if m != nil { + return m.Value + } + return nil +} + +func (x *Criteria) GetTextArray() *StringArray { + if x, ok := x.GetValue().(*Criteria_TextArray); ok { + return x.TextArray + } + return nil +} + +func (x *Criteria) GetIntRangeArray() *IntRangeArray { + if x, ok := x.GetValue().(*Criteria_IntRangeArray); ok { + return x.IntRangeArray + } + return nil +} + +func (x *Criteria) GetFloatRangeArray() *FloatRangeArray { + if x, ok := x.GetValue().(*Criteria_FloatRangeArray); ok { + return x.FloatRangeArray + } + return nil +} + +func (x *Criteria) GetDateTimeRangeArray() *DateTimeRangeArray { + if x, ok := x.GetValue().(*Criteria_DateTimeRangeArray); ok { + return x.DateTimeRangeArray + } + return nil +} + +func (x *Criteria) GetGeoLocationArray() *GeoLocationArray { + if x, ok := x.GetValue().(*Criteria_GeoLocationArray); ok { + return x.GeoLocationArray + } + return nil +} + +func (x *Criteria) GetBoolValue() *BoolValue { + if x, ok := x.GetValue().(*Criteria_BoolValue); ok { + return x.BoolValue + } + return nil +} + +func (x *Criteria) GetField() string { + if x != nil { + return x.Field + } + return "" +} + +func (x *Criteria) GetFetchMatchedAnnotations() bool { + if x != nil { + return x.FetchMatchedAnnotations + } + return false +} + +type isCriteria_Value interface { + isCriteria_Value() +} + +type Criteria_TextArray struct { + // The text values associated with the field. + TextArray *StringArray `protobuf:"bytes,2,opt,name=text_array,json=textArray,proto3,oneof"` +} + +type Criteria_IntRangeArray struct { + // The integer ranges associated with the field. + IntRangeArray *IntRangeArray `protobuf:"bytes,3,opt,name=int_range_array,json=intRangeArray,proto3,oneof"` +} + +type Criteria_FloatRangeArray struct { + // The float ranges associated with the field. + FloatRangeArray *FloatRangeArray `protobuf:"bytes,4,opt,name=float_range_array,json=floatRangeArray,proto3,oneof"` +} + +type Criteria_DateTimeRangeArray struct { + // The datetime ranges associated with the field. + DateTimeRangeArray *DateTimeRangeArray `protobuf:"bytes,5,opt,name=date_time_range_array,json=dateTimeRangeArray,proto3,oneof"` +} + +type Criteria_GeoLocationArray struct { + // Geo Location array. + GeoLocationArray *GeoLocationArray `protobuf:"bytes,6,opt,name=geo_location_array,json=geoLocationArray,proto3,oneof"` +} + +type Criteria_BoolValue struct { + // A Boolean value. + BoolValue *BoolValue `protobuf:"bytes,7,opt,name=bool_value,json=boolValue,proto3,oneof"` +} + +func (*Criteria_TextArray) isCriteria_Value() {} + +func (*Criteria_IntRangeArray) isCriteria_Value() {} + +func (*Criteria_FloatRangeArray) isCriteria_Value() {} + +func (*Criteria_DateTimeRangeArray) isCriteria_Value() {} + +func (*Criteria_GeoLocationArray) isCriteria_Value() {} + +func (*Criteria_BoolValue) isCriteria_Value() {} + +// Partition to specify the partition in time and space for sub-asset level +// annotation. +type Partition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Partition of asset in time. + TemporalPartition *Partition_TemporalPartition `protobuf:"bytes,1,opt,name=temporal_partition,json=temporalPartition,proto3" json:"temporal_partition,omitempty"` + // Partition of asset in space. + SpatialPartition *Partition_SpatialPartition `protobuf:"bytes,2,opt,name=spatial_partition,json=spatialPartition,proto3" json:"spatial_partition,omitempty"` + // Partition of asset in time. + RelativeTemporalPartition *Partition_RelativeTemporalPartition `protobuf:"bytes,3,opt,name=relative_temporal_partition,json=relativeTemporalPartition,proto3" json:"relative_temporal_partition,omitempty"` +} + +func (x *Partition) Reset() { + *x = Partition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[151] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Partition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Partition) ProtoMessage() {} + +func (x *Partition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[151] + 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 Partition.ProtoReflect.Descriptor instead. +func (*Partition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{151} +} + +func (x *Partition) GetTemporalPartition() *Partition_TemporalPartition { + if x != nil { + return x.TemporalPartition + } + return nil +} + +func (x *Partition) GetSpatialPartition() *Partition_SpatialPartition { + if x != nil { + return x.SpatialPartition + } + return nil +} + +func (x *Partition) GetRelativeTemporalPartition() *Partition_RelativeTemporalPartition { + if x != nil { + return x.RelativeTemporalPartition + } + return nil +} + +// The asset source is from Cloud Storage. +type AssetSource_AssetGcsSource struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Cloud storage uri. + GcsUri string `protobuf:"bytes,1,opt,name=gcs_uri,json=gcsUri,proto3" json:"gcs_uri,omitempty"` +} + +func (x *AssetSource_AssetGcsSource) Reset() { + *x = AssetSource_AssetGcsSource{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[152] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssetSource_AssetGcsSource) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssetSource_AssetGcsSource) ProtoMessage() {} + +func (x *AssetSource_AssetGcsSource) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[152] + 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 AssetSource_AssetGcsSource.ProtoReflect.Descriptor instead. +func (*AssetSource_AssetGcsSource) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *AssetSource_AssetGcsSource) GetGcsUri() string { + if x != nil { + return x.GcsUri + } + return "" +} + +// The content of the asset. +type AssetSource_AssetContentData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AssetContentData []byte `protobuf:"bytes,1,opt,name=asset_content_data,json=assetContentData,proto3" json:"asset_content_data,omitempty"` +} + +func (x *AssetSource_AssetContentData) Reset() { + *x = AssetSource_AssetContentData{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[153] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AssetSource_AssetContentData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AssetSource_AssetContentData) ProtoMessage() {} + +func (x *AssetSource_AssetContentData) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[153] + 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 AssetSource_AssetContentData.ProtoReflect.Descriptor instead. +func (*AssetSource_AssetContentData) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{6, 1} +} + +func (x *AssetSource_AssetContentData) GetAssetContentData() []byte { + if x != nil { + return x.AssetContentData + } + return nil +} + +// The status of analysis on each search capability. +type AnalyzeAssetMetadata_AnalysisStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + State AnalyzeAssetMetadata_AnalysisStatus_State `protobuf:"varint,2,opt,name=state,proto3,enum=google.cloud.visionai.v1.AnalyzeAssetMetadata_AnalysisStatus_State" json:"state,omitempty"` + StatusMessage string `protobuf:"bytes,3,opt,name=status_message,json=statusMessage,proto3" json:"status_message,omitempty"` + // The search capability requested. + SearchCapability *SearchCapability `protobuf:"bytes,4,opt,name=search_capability,json=searchCapability,proto3" json:"search_capability,omitempty"` +} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) Reset() { + *x = AnalyzeAssetMetadata_AnalysisStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[154] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AnalyzeAssetMetadata_AnalysisStatus) ProtoMessage() {} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[154] + 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 AnalyzeAssetMetadata_AnalysisStatus.ProtoReflect.Descriptor instead. +func (*AnalyzeAssetMetadata_AnalysisStatus) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{14, 0} +} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) GetState() AnalyzeAssetMetadata_AnalysisStatus_State { + if x != nil { + return x.State + } + return AnalyzeAssetMetadata_AnalysisStatus_STATE_UNSPECIFIED +} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) GetStatusMessage() string { + if x != nil { + return x.StatusMessage + } + return "" +} + +func (x *AnalyzeAssetMetadata_AnalysisStatus) GetSearchCapability() *SearchCapability { + if x != nil { + return x.SearchCapability + } + return nil +} + +// The configuration for `PROTO_ANY` data type. +type DataSchemaDetails_ProtoAnyConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type URI of the proto message. + TypeUri string `protobuf:"bytes,1,opt,name=type_uri,json=typeUri,proto3" json:"type_uri,omitempty"` +} + +func (x *DataSchemaDetails_ProtoAnyConfig) Reset() { + *x = DataSchemaDetails_ProtoAnyConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[155] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchemaDetails_ProtoAnyConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchemaDetails_ProtoAnyConfig) ProtoMessage() {} + +func (x *DataSchemaDetails_ProtoAnyConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[155] + 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 DataSchemaDetails_ProtoAnyConfig.ProtoReflect.Descriptor instead. +func (*DataSchemaDetails_ProtoAnyConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 0} +} + +func (x *DataSchemaDetails_ProtoAnyConfig) GetTypeUri() string { + if x != nil { + return x.TypeUri + } + return "" +} + +// The configuration for `LIST` data type. +type DataSchemaDetails_ListConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The value's data schema in the list. + ValueSchema *DataSchemaDetails `protobuf:"bytes,1,opt,name=value_schema,json=valueSchema,proto3" json:"value_schema,omitempty"` +} + +func (x *DataSchemaDetails_ListConfig) Reset() { + *x = DataSchemaDetails_ListConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[156] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchemaDetails_ListConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchemaDetails_ListConfig) ProtoMessage() {} + +func (x *DataSchemaDetails_ListConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[156] + 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 DataSchemaDetails_ListConfig.ProtoReflect.Descriptor instead. +func (*DataSchemaDetails_ListConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 1} +} + +func (x *DataSchemaDetails_ListConfig) GetValueSchema() *DataSchemaDetails { + if x != nil { + return x.ValueSchema + } + return nil +} + +// The configuration for `CUSTOMIZED_STRUCT` data type. +type DataSchemaDetails_CustomizedStructConfig struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Direct child elements data schemas. + FieldSchemas map[string]*DataSchemaDetails `protobuf:"bytes,1,rep,name=field_schemas,json=fieldSchemas,proto3" json:"field_schemas,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *DataSchemaDetails_CustomizedStructConfig) Reset() { + *x = DataSchemaDetails_CustomizedStructConfig{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[157] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchemaDetails_CustomizedStructConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchemaDetails_CustomizedStructConfig) ProtoMessage() {} + +func (x *DataSchemaDetails_CustomizedStructConfig) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[157] + 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 DataSchemaDetails_CustomizedStructConfig.ProtoReflect.Descriptor instead. +func (*DataSchemaDetails_CustomizedStructConfig) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 2} +} + +func (x *DataSchemaDetails_CustomizedStructConfig) GetFieldSchemas() map[string]*DataSchemaDetails { + if x != nil { + return x.FieldSchemas + } + return nil +} + +// The search strategy for annotations value of the `key`. +type DataSchemaDetails_SearchStrategy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The type of search strategy to be applied on the `key` above. + // The allowed `search_strategy_type` is different for different data types, + // which is documented in the DataSchemaDetails.DataType. Specifying + // unsupported `search_strategy_type` for data types will result in + // INVALID_ARGUMENT error. + SearchStrategyType DataSchemaDetails_SearchStrategy_SearchStrategyType `protobuf:"varint,1,opt,name=search_strategy_type,json=searchStrategyType,proto3,enum=google.cloud.visionai.v1.DataSchemaDetails_SearchStrategy_SearchStrategyType" json:"search_strategy_type,omitempty"` +} + +func (x *DataSchemaDetails_SearchStrategy) Reset() { + *x = DataSchemaDetails_SearchStrategy{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[158] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DataSchemaDetails_SearchStrategy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DataSchemaDetails_SearchStrategy) ProtoMessage() {} + +func (x *DataSchemaDetails_SearchStrategy) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[158] + 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 DataSchemaDetails_SearchStrategy.ProtoReflect.Descriptor instead. +func (*DataSchemaDetails_SearchStrategy) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{68, 3} +} + +func (x *DataSchemaDetails_SearchStrategy) GetSearchStrategyType() DataSchemaDetails_SearchStrategy_SearchStrategyType { + if x != nil { + return x.SearchStrategyType + } + return DataSchemaDetails_SearchStrategy_NO_SEARCH +} + +// If bucket type is FIXED_RANGE, specify how values are bucketized. Use +// FixedRangeBucketSpec when you want to create multiple buckets with equal +// granularities. Using integer bucket value as an example, when +// bucket_start = 0, bucket_granularity = 10, bucket_count = 5, this facet +// will be aggregated via the following buckets: +// [-inf, 0), [0, 10), [10, 20), [20, 30), [30, inf). +// Notably, bucket_count <= 1 is an invalid spec. +type FacetProperty_FixedRangeBucketSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Lower bound of the bucket. NOTE: Only integer type is currently supported + // for this field. + BucketStart *FacetValue `protobuf:"bytes,1,opt,name=bucket_start,json=bucketStart,proto3" json:"bucket_start,omitempty"` + // Bucket granularity. NOTE: Only integer type is currently supported for + // this field. + BucketGranularity *FacetValue `protobuf:"bytes,2,opt,name=bucket_granularity,json=bucketGranularity,proto3" json:"bucket_granularity,omitempty"` + // Total number of buckets. + BucketCount int32 `protobuf:"varint,3,opt,name=bucket_count,json=bucketCount,proto3" json:"bucket_count,omitempty"` +} + +func (x *FacetProperty_FixedRangeBucketSpec) Reset() { + *x = FacetProperty_FixedRangeBucketSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[162] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetProperty_FixedRangeBucketSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetProperty_FixedRangeBucketSpec) ProtoMessage() {} + +func (x *FacetProperty_FixedRangeBucketSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[162] + 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 FacetProperty_FixedRangeBucketSpec.ProtoReflect.Descriptor instead. +func (*FacetProperty_FixedRangeBucketSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{113, 0} +} + +func (x *FacetProperty_FixedRangeBucketSpec) GetBucketStart() *FacetValue { + if x != nil { + return x.BucketStart + } + return nil +} + +func (x *FacetProperty_FixedRangeBucketSpec) GetBucketGranularity() *FacetValue { + if x != nil { + return x.BucketGranularity + } + return nil +} + +func (x *FacetProperty_FixedRangeBucketSpec) GetBucketCount() int32 { + if x != nil { + return x.BucketCount + } + return 0 +} + +// If bucket type is CUSTOM_RANGE, specify how values are bucketized. Use +// integer bucket value as an example, when the endpoints are 0, 10, 100, and +// 1000, we will generate the following facets: +// [-inf, 0), [0, 10), [10, 100), [100, 1000), [1000, inf). +// Notably: +// - endpoints must be listed in ascending order. Otherwise, the SearchConfig +// API will reject the facet config. +// - < 1 endpoints is an invalid spec. +type FacetProperty_CustomRangeBucketSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Currently, only integer type is supported for this field. + Endpoints []*FacetValue `protobuf:"bytes,1,rep,name=endpoints,proto3" json:"endpoints,omitempty"` +} + +func (x *FacetProperty_CustomRangeBucketSpec) Reset() { + *x = FacetProperty_CustomRangeBucketSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[163] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetProperty_CustomRangeBucketSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetProperty_CustomRangeBucketSpec) ProtoMessage() {} + +func (x *FacetProperty_CustomRangeBucketSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[163] + 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 FacetProperty_CustomRangeBucketSpec.ProtoReflect.Descriptor instead. +func (*FacetProperty_CustomRangeBucketSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{113, 1} +} + +func (x *FacetProperty_CustomRangeBucketSpec) GetEndpoints() []*FacetValue { + if x != nil { + return x.Endpoints + } + return nil +} + +// If bucket type is DATE, specify how date values are bucketized. +type FacetProperty_DateTimeBucketSpec struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Granularity of date type facet. + Granularity FacetProperty_DateTimeBucketSpec_Granularity `protobuf:"varint,1,opt,name=granularity,proto3,enum=google.cloud.visionai.v1.FacetProperty_DateTimeBucketSpec_Granularity" json:"granularity,omitempty"` +} + +func (x *FacetProperty_DateTimeBucketSpec) Reset() { + *x = FacetProperty_DateTimeBucketSpec{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[164] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetProperty_DateTimeBucketSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetProperty_DateTimeBucketSpec) ProtoMessage() {} + +func (x *FacetProperty_DateTimeBucketSpec) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[164] + 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 FacetProperty_DateTimeBucketSpec.ProtoReflect.Descriptor instead. +func (*FacetProperty_DateTimeBucketSpec) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{113, 2} +} + +func (x *FacetProperty_DateTimeBucketSpec) GetGranularity() FacetProperty_DateTimeBucketSpec_Granularity { + if x != nil { + return x.Granularity + } + return FacetProperty_DateTimeBucketSpec_GRANULARITY_UNSPECIFIED +} + +// The range of values [start, end) for which faceting is applied. +type FacetBucket_Range struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start of the range. Non-existence indicates some bound (e.g. -inf). + Start *FacetValue `protobuf:"bytes,1,opt,name=start,proto3" json:"start,omitempty"` + // End of the range. Non-existence indicates some bound (e.g. inf). + End *FacetValue `protobuf:"bytes,2,opt,name=end,proto3" json:"end,omitempty"` +} + +func (x *FacetBucket_Range) Reset() { + *x = FacetBucket_Range{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[165] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FacetBucket_Range) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FacetBucket_Range) ProtoMessage() {} + +func (x *FacetBucket_Range) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[165] + 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 FacetBucket_Range.ProtoReflect.Descriptor instead. +func (*FacetBucket_Range) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{123, 0} +} + +func (x *FacetBucket_Range) GetStart() *FacetValue { + if x != nil { + return x.Start + } + return nil +} + +func (x *FacetBucket_Range) GetEnd() *FacetValue { + if x != nil { + return x.End + } + return nil +} + +// Configuration for the data. +type IngestAssetRequest_Config struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Types that are assignable to DataType: + // + // *IngestAssetRequest_Config_VideoType_ + DataType isIngestAssetRequest_Config_DataType `protobuf_oneof:"data_type"` + // Required. The resource name of the asset that the ingested data belongs + // to. + Asset string `protobuf:"bytes,1,opt,name=asset,proto3" json:"asset,omitempty"` +} + +func (x *IngestAssetRequest_Config) Reset() { + *x = IngestAssetRequest_Config{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[166] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IngestAssetRequest_Config) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngestAssetRequest_Config) ProtoMessage() {} + +func (x *IngestAssetRequest_Config) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[166] + 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 IngestAssetRequest_Config.ProtoReflect.Descriptor instead. +func (*IngestAssetRequest_Config) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{125, 0} +} + +func (m *IngestAssetRequest_Config) GetDataType() isIngestAssetRequest_Config_DataType { + if m != nil { + return m.DataType + } + return nil +} + +func (x *IngestAssetRequest_Config) GetVideoType() *IngestAssetRequest_Config_VideoType { + if x, ok := x.GetDataType().(*IngestAssetRequest_Config_VideoType_); ok { + return x.VideoType + } + return nil +} + +func (x *IngestAssetRequest_Config) GetAsset() string { + if x != nil { + return x.Asset + } + return "" +} + +type isIngestAssetRequest_Config_DataType interface { + isIngestAssetRequest_Config_DataType() +} + +type IngestAssetRequest_Config_VideoType_ struct { + // Type information for video data. + VideoType *IngestAssetRequest_Config_VideoType `protobuf:"bytes,2,opt,name=video_type,json=videoType,proto3,oneof"` +} + +func (*IngestAssetRequest_Config_VideoType_) isIngestAssetRequest_Config_DataType() {} + +// Contains the data and the corresponding time range this data is for. +type IngestAssetRequest_TimeIndexedData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Data to be ingested. + Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` + // Time range of the data. + TemporalPartition *Partition_TemporalPartition `protobuf:"bytes,2,opt,name=temporal_partition,json=temporalPartition,proto3" json:"temporal_partition,omitempty"` +} + +func (x *IngestAssetRequest_TimeIndexedData) Reset() { + *x = IngestAssetRequest_TimeIndexedData{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[167] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IngestAssetRequest_TimeIndexedData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngestAssetRequest_TimeIndexedData) ProtoMessage() {} + +func (x *IngestAssetRequest_TimeIndexedData) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[167] + 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 IngestAssetRequest_TimeIndexedData.ProtoReflect.Descriptor instead. +func (*IngestAssetRequest_TimeIndexedData) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{125, 1} +} + +func (x *IngestAssetRequest_TimeIndexedData) GetData() []byte { + if x != nil { + return x.Data + } + return nil +} + +func (x *IngestAssetRequest_TimeIndexedData) GetTemporalPartition() *Partition_TemporalPartition { + if x != nil { + return x.TemporalPartition + } + return nil +} + +// Type information for video data. +type IngestAssetRequest_Config_VideoType struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Container format of the video data. + ContainerFormat IngestAssetRequest_Config_VideoType_ContainerFormat `protobuf:"varint,1,opt,name=container_format,json=containerFormat,proto3,enum=google.cloud.visionai.v1.IngestAssetRequest_Config_VideoType_ContainerFormat" json:"container_format,omitempty"` +} + +func (x *IngestAssetRequest_Config_VideoType) Reset() { + *x = IngestAssetRequest_Config_VideoType{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[168] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IngestAssetRequest_Config_VideoType) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IngestAssetRequest_Config_VideoType) ProtoMessage() {} + +func (x *IngestAssetRequest_Config_VideoType) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[168] + 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 IngestAssetRequest_Config_VideoType.ProtoReflect.Descriptor instead. +func (*IngestAssetRequest_Config_VideoType) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{125, 0, 0} +} + +func (x *IngestAssetRequest_Config_VideoType) GetContainerFormat() IngestAssetRequest_Config_VideoType_ContainerFormat { + if x != nil { + return x.ContainerFormat + } + return IngestAssetRequest_Config_VideoType_CONTAINER_FORMAT_UNSPECIFIED +} + +// Signed uri with corresponding time range. +type ClipAssetResponse_TimeIndexedUri struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Time range of the video that the uri is for. + TemporalPartition *Partition_TemporalPartition `protobuf:"bytes,1,opt,name=temporal_partition,json=temporalPartition,proto3" json:"temporal_partition,omitempty"` + // Signed uri to download the video clip. + Uri string `protobuf:"bytes,2,opt,name=uri,proto3" json:"uri,omitempty"` +} + +func (x *ClipAssetResponse_TimeIndexedUri) Reset() { + *x = ClipAssetResponse_TimeIndexedUri{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[169] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClipAssetResponse_TimeIndexedUri) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClipAssetResponse_TimeIndexedUri) ProtoMessage() {} + +func (x *ClipAssetResponse_TimeIndexedUri) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[169] + 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 ClipAssetResponse_TimeIndexedUri.ProtoReflect.Descriptor instead. +func (*ClipAssetResponse_TimeIndexedUri) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{128, 0} +} + +func (x *ClipAssetResponse_TimeIndexedUri) GetTemporalPartition() *Partition_TemporalPartition { + if x != nil { + return x.TemporalPartition + } + return nil +} + +func (x *ClipAssetResponse_TimeIndexedUri) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +// Option for one data schema key. +type SchemaKeySortingStrategy_Option struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The data used to sort. + DataSchemaKey string `protobuf:"bytes,1,opt,name=data_schema_key,json=dataSchemaKey,proto3" json:"data_schema_key,omitempty"` + // Whether to sort in decreasing order or increasing order. + // By default, results are sorted in incresing order. + SortDecreasing bool `protobuf:"varint,2,opt,name=sort_decreasing,json=sortDecreasing,proto3" json:"sort_decreasing,omitempty"` + // Aggregate method for the current data schema key. + AggregateMethod *SchemaKeySortingStrategy_Option_AggregateMethod `protobuf:"varint,3,opt,name=aggregate_method,json=aggregateMethod,proto3,enum=google.cloud.visionai.v1.SchemaKeySortingStrategy_Option_AggregateMethod,oneof" json:"aggregate_method,omitempty"` +} + +func (x *SchemaKeySortingStrategy_Option) Reset() { + *x = SchemaKeySortingStrategy_Option{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[170] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SchemaKeySortingStrategy_Option) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SchemaKeySortingStrategy_Option) ProtoMessage() {} + +func (x *SchemaKeySortingStrategy_Option) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[170] + 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 SchemaKeySortingStrategy_Option.ProtoReflect.Descriptor instead. +func (*SchemaKeySortingStrategy_Option) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{134, 0} +} + +func (x *SchemaKeySortingStrategy_Option) GetDataSchemaKey() string { + if x != nil { + return x.DataSchemaKey + } + return "" +} + +func (x *SchemaKeySortingStrategy_Option) GetSortDecreasing() bool { + if x != nil { + return x.SortDecreasing + } + return false +} + +func (x *SchemaKeySortingStrategy_Option) GetAggregateMethod() SchemaKeySortingStrategy_Option_AggregateMethod { + if x != nil && x.AggregateMethod != nil { + return *x.AggregateMethod + } + return SchemaKeySortingStrategy_Option_AGGREGATE_METHOD_UNSPECIFIED +} + +// Partition of asset in UTC Epoch time. Supported by STREAM_VIDEO corpus +// type. +type Partition_TemporalPartition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start time of the partition. + StartTime *timestamppb.Timestamp `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + // End time of the partition. + EndTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` +} + +func (x *Partition_TemporalPartition) Reset() { + *x = Partition_TemporalPartition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[171] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Partition_TemporalPartition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Partition_TemporalPartition) ProtoMessage() {} + +func (x *Partition_TemporalPartition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[171] + 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 Partition_TemporalPartition.ProtoReflect.Descriptor instead. +func (*Partition_TemporalPartition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{151, 0} +} + +func (x *Partition_TemporalPartition) GetStartTime() *timestamppb.Timestamp { + if x != nil { + return x.StartTime + } + return nil +} + +func (x *Partition_TemporalPartition) GetEndTime() *timestamppb.Timestamp { + if x != nil { + return x.EndTime + } + return nil +} + +// Partition of asset in space. +type Partition_SpatialPartition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // The minimum x coordinate value. + XMin *int64 `protobuf:"varint,1,opt,name=x_min,json=xMin,proto3,oneof" json:"x_min,omitempty"` + // The minimum y coordinate value. + YMin *int64 `protobuf:"varint,2,opt,name=y_min,json=yMin,proto3,oneof" json:"y_min,omitempty"` + // The maximum x coordinate value. + XMax *int64 `protobuf:"varint,3,opt,name=x_max,json=xMax,proto3,oneof" json:"x_max,omitempty"` + // The maximum y coordinate value. + YMax *int64 `protobuf:"varint,4,opt,name=y_max,json=yMax,proto3,oneof" json:"y_max,omitempty"` +} + +func (x *Partition_SpatialPartition) Reset() { + *x = Partition_SpatialPartition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[172] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Partition_SpatialPartition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Partition_SpatialPartition) ProtoMessage() {} + +func (x *Partition_SpatialPartition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[172] + 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 Partition_SpatialPartition.ProtoReflect.Descriptor instead. +func (*Partition_SpatialPartition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{151, 1} +} + +func (x *Partition_SpatialPartition) GetXMin() int64 { + if x != nil && x.XMin != nil { + return *x.XMin + } + return 0 +} + +func (x *Partition_SpatialPartition) GetYMin() int64 { + if x != nil && x.YMin != nil { + return *x.YMin + } + return 0 +} + +func (x *Partition_SpatialPartition) GetXMax() int64 { + if x != nil && x.XMax != nil { + return *x.XMax + } + return 0 +} + +func (x *Partition_SpatialPartition) GetYMax() int64 { + if x != nil && x.YMax != nil { + return *x.YMax + } + return 0 +} + +// Partition of asset in relative time. Supported by VIDEO_ON_DEMAND corpus +// type. +type Partition_RelativeTemporalPartition struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // Start time offset of the partition. + StartOffset *durationpb.Duration `protobuf:"bytes,1,opt,name=start_offset,json=startOffset,proto3" json:"start_offset,omitempty"` + // End time offset of the partition. + EndOffset *durationpb.Duration `protobuf:"bytes,2,opt,name=end_offset,json=endOffset,proto3" json:"end_offset,omitempty"` +} + +func (x *Partition_RelativeTemporalPartition) Reset() { + *x = Partition_RelativeTemporalPartition{} + if protoimpl.UnsafeEnabled { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[173] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Partition_RelativeTemporalPartition) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Partition_RelativeTemporalPartition) ProtoMessage() {} + +func (x *Partition_RelativeTemporalPartition) ProtoReflect() protoreflect.Message { + mi := &file_google_cloud_visionai_v1_warehouse_proto_msgTypes[173] + 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 Partition_RelativeTemporalPartition.ProtoReflect.Descriptor instead. +func (*Partition_RelativeTemporalPartition) Descriptor() ([]byte, []int) { + return file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP(), []int{151, 2} +} + +func (x *Partition_RelativeTemporalPartition) GetStartOffset() *durationpb.Duration { + if x != nil { + return x.StartOffset + } + return nil +} + +func (x *Partition_RelativeTemporalPartition) GetEndOffset() *durationpb.Duration { + if x != nil { + return x.EndOffset + } + return nil +} + +var File_google_cloud_visionai_v1_warehouse_proto protoreflect.FileDescriptor + +var file_google_cloud_visionai_v1_warehouse_proto_rawDesc = []byte{ + 0x0a, 0x28, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 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, 0x25, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 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, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 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, 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, 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, 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, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xc2, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x08, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x07, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, + 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, + 0x41, 0x1f, 0x12, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, + 0x74, 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, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x75, 0x0a, + 0x12, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x52, 0x06, 0x61, 0x73, 0x73, 0x65, 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, 0x8d, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 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, 0x4f, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, + 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xd3, 0x02, 0x0a, 0x0b, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x67, + 0x63, 0x73, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x63, 0x73, 0x53, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x47, 0x63, + 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x66, 0x0a, 0x12, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x48, 0x00, 0x52, 0x10, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x1a, + 0x29, 0x0a, 0x0e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x67, 0x63, 0x73, 0x55, 0x72, 0x69, 0x1a, 0x40, 0x0a, 0x10, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, + 0x0a, 0x12, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x44, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x99, 0x01, 0x0a, 0x12, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, + 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0b, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8d, + 0x01, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x58, + 0x0a, 0x1b, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x76, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x1c, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x55, 0x72, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x65, 0x64, 0x55, 0x72, 0x69, 0x22, 0xa1, 0x02, 0x0a, 0x05, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x02, 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, 0x03, 0x74, + 0x74, 0x6c, 0x12, 0x63, 0x0a, 0x10, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x67, 0x63, 0x73, 0x5f, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x47, 0x63, 0x73, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x47, 0x63, + 0x73, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x3a, 0x72, 0xea, 0x41, 0x6f, 0x0a, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x4e, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x73, 0x73, 0x65, 0x74, 0x7d, 0x22, 0x50, 0x0a, 0x13, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb0, 0x04, + 0x0a, 0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x0f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0e, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x39, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x1a, 0xb7, 0x02, 0x0a, 0x0e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x43, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x57, 0x0a, 0x11, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x22, 0x4a, 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, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, + 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, + 0x22, 0x16, 0x0a, 0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x0e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x49, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4a, 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, 0x0f, 0x0a, + 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x01, 0x12, 0x0d, + 0x0a, 0x09, 0x53, 0x55, 0x43, 0x43, 0x45, 0x45, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x22, 0x8b, 0x01, 0x0a, 0x11, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x01, 0xfa, 0x41, + 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xce, 0x01, 0x0a, 0x12, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x40, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 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, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x14, 0x0a, 0x12, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x91, + 0x01, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, + 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x01, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0xe5, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x51, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 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, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 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, 0x52, 0x0a, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x02, 0x0a, 0x0c, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, + 0x74, 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, 0x22, 0xab, 0x01, 0x0a, 0x18, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 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, 0x16, 0x0a, 0x06, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x22, 0x92, 0x01, 0x0a, 0x19, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x41, 0x73, 0x73, 0x65, 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, 0x71, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x06, + 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x22, 0x90, 0x01, 0x0a, 0x14, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x3b, 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, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x3b, 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, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x8b, + 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4d, 0x42, 0x45, 0x44, 0x44, + 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x01, 0x22, 0x76, 0x0a, 0x17, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x5b, 0x0a, 0x13, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x52, 0x12, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x69, 0x65, 0x73, 0x22, 0x76, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe5, 0x01, 0x0a, + 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, + 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x22, 0x76, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x59, 0x0a, 0x17, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xa1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x98, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, + 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, + 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 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, 0x22, 0x89, + 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0b, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 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, 0x5d, 0x0a, 0x18, 0x41, 0x64, + 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x59, 0x0a, 0x19, 0x41, 0x64, 0x64, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x69, 0x74, 0x65, 0x6d, 0x22, 0x60, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x41, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x22, 0x5c, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x04, + 0x69, 0x74, 0x65, 0x6d, 0x22, 0xa4, 0x01, 0x0a, 0x1a, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, + 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0x85, 0x01, 0x0a, 0x1b, + 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 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, 0xf8, 0x01, 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x81, 0x01, 0xea, 0x41, 0x7e, + 0x0a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x58, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x7b, 0x63, 0x6f, + 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0xf7, + 0x01, 0x0a, 0x0e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x4a, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0d, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x69, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, + 0x27, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x41, 0x53, 0x53, 0x45, 0x54, 0x10, 0x01, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x08, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x49, 0x64, 0x12, + 0x3a, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x71, 0x0a, 0x13, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, + 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, + 0x78, 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, 0x71, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, + 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x1f, 0x12, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, + 0x65, 0x78, 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, 0x22, 0x78, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, + 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 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, 0x4f, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8c, 0x05, 0x0a, 0x05, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x25, 0x0a, 0x0d, 0x65, 0x6e, 0x74, 0x69, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x72, + 0x70, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0c, 0x65, 0x6e, 0x74, + 0x69, 0x72, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x40, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 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, 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, 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, 0x06, 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, 0x60, 0x0a, 0x10, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x47, 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, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, + 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x03, 0x3a, 0x73, 0xea, 0x41, 0x70, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x7b, + 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, + 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x7d, 0x42, 0x0e, 0x0a, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x6e, 0x0a, 0x16, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x54, 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x05, 0xfa, 0x41, + 0x27, 0x0a, 0x25, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x91, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x72, 0x70, + 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 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, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x74, 0x74, 0x6c, 0x18, 0x05, 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, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x54, 0x74, 0x6c, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x01, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x6d, 0x0a, 0x19, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x17, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x65, + 0x74, 0x74, 0x69, 0x6e, 0x67, 0x22, 0x4e, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x10, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x52, 0x45, 0x41, 0x4d, 0x5f, 0x56, 0x49, + 0x44, 0x45, 0x4f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x02, + 0x12, 0x13, 0x0a, 0x0f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4d, + 0x41, 0x4e, 0x44, 0x10, 0x03, 0x3a, 0x64, 0xea, 0x41, 0x61, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x3f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, + 0x72, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x7d, 0x22, 0x4e, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, + 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x91, 0x01, 0x0a, 0x13, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x72, 0x70, 0x75, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x63, 0x6f, 0x72, 0x70, + 0x75, 0x73, 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, + 0x85, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 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, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x79, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x43, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, + 0x0a, 0x07, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x72, 0x70, 0x75, + 0x73, 0x52, 0x07, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 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, 0x51, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, + 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, + 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x52, 0x0a, 0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, + 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, + 0x70, 0x75, 0x73, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x60, 0x0a, 0x15, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x17, 0x0a, 0x15, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x12, 0x4a, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x90, 0x02, 0x0a, + 0x0a, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x52, 0x0a, 0x0e, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0d, 0x73, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x3a, 0x82, 0x01, 0xea, 0x41, 0x7f, + 0x0a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x59, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x7d, 0x2f, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x7b, 0x63, 0x6f, + 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x73, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x7d, 0x22, + 0xdb, 0x0b, 0x0a, 0x11, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x48, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x64, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x6e, 0x79, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x6e, 0x79, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x57, 0x0a, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x7c, + 0x0a, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x16, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x59, 0x0a, 0x0b, + 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x47, + 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x67, 0x72, 0x61, 0x6e, + 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x63, 0x0a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x52, 0x0e, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x1a, 0x2b, 0x0a, 0x0e, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x6e, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, + 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x79, 0x70, 0x65, 0x55, 0x72, 0x69, 0x1a, 0x5c, 0x0a, 0x0a, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4e, 0x0a, 0x0c, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x0b, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x1a, 0x81, 0x02, 0x0a, 0x16, 0x43, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x79, 0x0a, 0x0d, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x54, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, + 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0c, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x1a, 0x6c, 0x0a, + 0x11, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 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, 0x41, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0xda, 0x01, 0x0a, 0x0e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x7f, + 0x0a, 0x14, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x12, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x47, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4e, 0x4f, 0x5f, 0x53, 0x45, 0x41, 0x52, + 0x43, 0x48, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x45, 0x58, 0x41, 0x43, 0x54, 0x5f, 0x53, 0x45, + 0x41, 0x52, 0x43, 0x48, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x4d, 0x41, 0x52, 0x54, 0x5f, + 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x10, 0x02, 0x22, 0xa8, 0x01, 0x0a, 0x08, 0x44, 0x61, 0x74, + 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x44, 0x41, 0x54, 0x41, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e, 0x54, 0x45, 0x47, 0x45, 0x52, 0x10, 0x01, 0x12, 0x09, 0x0a, + 0x05, 0x46, 0x4c, 0x4f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, + 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, + 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x47, 0x45, 0x4f, 0x5f, 0x43, 0x4f, 0x4f, 0x52, 0x44, 0x49, + 0x4e, 0x41, 0x54, 0x45, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x5f, + 0x41, 0x4e, 0x59, 0x10, 0x08, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, + 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, + 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, 0x49, 0x5a, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x52, 0x55, 0x43, + 0x54, 0x10, 0x06, 0x22, 0x68, 0x0a, 0x0b, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x52, 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49, 0x54, + 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1b, 0x0a, 0x17, 0x47, 0x52, 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x41, + 0x53, 0x53, 0x45, 0x54, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x01, 0x12, 0x1f, 0x0a, 0x1b, + 0x47, 0x52, 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x41, 0x52, 0x54, + 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x10, 0x02, 0x22, 0xa2, 0x01, + 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x64, 0x61, 0x74, + 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 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, 0x56, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, + 0x0a, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, 0x17, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x42, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x12, 0x22, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 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, + 0x22, 0x8a, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0c, + 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 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, 0xe4, 0x01, + 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x0d, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, + 0x00, 0x52, 0x0c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x69, 0x64, 0x22, 0xa3, 0x02, 0x0a, 0x0a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x6d, 0x0a, 0x19, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x75, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x91, 0x01, 0xea, 0x41, 0x8d, 0x01, 0x0a, 0x22, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x67, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, + 0x73, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x7b, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x7d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x61, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0xb4, 0x01, 0x0a, 0x17, 0x55, + 0x73, 0x65, 0x72, 0x53, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x15, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3f, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x41, + 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x49, 0x0a, 0x0d, 0x47, 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, + 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, 0xee, 0x04, 0x0a, + 0x0f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x21, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x73, 0x74, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, 0x74, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x0e, 0x67, 0x65, + 0x6f, 0x5f, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x67, + 0x65, 0x6f, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x0f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x5f, 0x61, 0x6e, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x41, 0x6e, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, 0x0a, + 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x00, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5a, 0x0a, + 0x1c, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0a, 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, 0x19, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x44, 0x61, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x6e, 0x0a, 0x17, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, + 0x65, 0x64, 0x5f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x15, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x53, 0x0a, + 0x0e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x41, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x22, 0xe4, 0x01, 0x0a, 0x1a, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x12, 0x5e, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, + 0x7a, 0x65, 0x64, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x1a, 0x66, 0x0a, 0x0d, 0x45, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 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, 0x3f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x22, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 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, 0x16, 0x0a, 0x06, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x22, 0x89, 0x01, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x46, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x56, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa1, 0x01, 0x0a, 0x17, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, + 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x59, 0x0a, 0x17, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2a, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x24, 0x0a, 0x22, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x49, 0x6d, 0x70, 0x6f, + 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x5f, 0x67, 0x63, 0x73, 0x5f, 0x75, 0x72, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x47, 0x63, 0x73, 0x55, 0x72, 0x69, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, + 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, + 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x22, 0x5f, 0x0a, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x16, 0x0a, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x01, 0x0a, 0x19, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, + 0x12, 0x24, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x50, + 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, + 0x41, 0x02, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x2d, 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x22, + 0xaa, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, + 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x03, 0xe0, 0x41, + 0x02, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x5a, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5d, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x0a, 0x24, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x2c, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x26, 0x12, 0x24, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 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, 0x22, 0x92, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 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, 0xea, 0x02, 0x0a, 0x0c, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x4e, 0x0a, 0x0e, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, + 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, + 0x79, 0x52, 0x0d, 0x66, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, + 0x12, 0x6a, 0x0a, 0x18, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x50, 0x72, 0x6f, 0x70, + 0x65, 0x72, 0x74, 0x79, 0x52, 0x16, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x72, 0x69, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x3a, 0x89, 0x01, 0xea, + 0x41, 0x85, 0x01, 0x0a, 0x24, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5d, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x7d, 0x22, 0xf1, 0x05, 0x0a, 0x0d, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 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, 0x26, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x50, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x07, 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, 0x08, 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, 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, 0x53, 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, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0c, 0x0a, + 0x08, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x46, + 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x3a, 0x73, 0xea, 0x41, 0x70, 0x0a, 0x25, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x12, 0x47, 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, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x7b, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x7d, 0x22, 0xe5, 0x01, 0x0a, + 0x1a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 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, 0x2f, + 0x0a, 0x11, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x0f, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, + 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x79, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x5c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc1, 0x01, + 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 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, 0x20, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, + 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x01, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x22, 0x96, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 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, 0xb3, 0x01, 0x0a, 0x1a, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, + 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x79, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x1a, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x79, 0x0a, 0x1b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xbf, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, + 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x53, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xbf, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, + 0x03, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x12, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x11, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4c, 0x0a, 0x0e, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x25, 0xe0, 0x41, 0x03, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, + 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x6c, 0x0a, 0x14, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, + 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x27, 0x0a, 0x25, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, + 0x0d, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3b, + 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, + 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0xbd, 0x08, 0x0a, 0x0d, + 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x75, 0x0a, + 0x17, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x14, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x53, 0x70, 0x65, 0x63, 0x12, 0x78, 0x0a, 0x18, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x72, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, + 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x15, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x6e, + 0x0a, 0x14, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x48, 0x00, 0x52, 0x12, 0x64, 0x61, 0x74, 0x65, + 0x74, 0x69, 0x6d, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x23, + 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x4a, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x1a, 0xd7, 0x01, 0x0a, 0x14, 0x46, 0x69, 0x78, 0x65, 0x64, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x47, 0x0a, 0x0c, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, + 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x53, 0x0a, 0x12, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x5f, + 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, + 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x11, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x47, + 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0c, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x5b, 0x0a, + 0x15, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x42, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x1a, 0xc8, 0x01, 0x0a, 0x12, 0x44, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, 0x65, + 0x63, 0x12, 0x68, 0x0a, 0x0b, 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e, + 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x53, 0x70, + 0x65, 0x63, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x52, 0x0b, + 0x67, 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x22, 0x48, 0x0a, 0x0b, 0x47, + 0x72, 0x61, 0x6e, 0x75, 0x6c, 0x61, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x52, + 0x41, 0x4e, 0x55, 0x4c, 0x41, 0x52, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x59, 0x45, 0x41, 0x52, 0x10, + 0x01, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x4e, 0x54, 0x48, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, + 0x44, 0x41, 0x59, 0x10, 0x03, 0x42, 0x14, 0x0a, 0x12, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, + 0x61, 0x63, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0xee, 0x01, 0x0a, 0x0e, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x12, 0x1a, + 0x0a, 0x08, 0x68, 0x79, 0x70, 0x6f, 0x6e, 0x79, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x08, 0x68, 0x79, 0x70, 0x6f, 0x6e, 0x79, 0x6d, 0x73, 0x3a, 0x8f, 0x01, 0xea, 0x41, 0x8b, + 0x01, 0x0a, 0x26, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x12, 0x61, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x7d, 0x22, 0x84, 0x02, 0x0a, + 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x20, 0x0a, 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, + 0x72, 0x70, 0x75, 0x73, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x56, 0x0a, 0x0f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x42, + 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, + 0x72, 0x6e, 0x79, 0x6d, 0x12, 0x36, 0x0a, 0x12, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x03, 0xe0, 0x41, 0x01, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, + 0x5f, 0x69, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, + 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, + 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0e, 0x73, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 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, 0x5e, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 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, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x61, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, + 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, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x1a, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 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, 0x22, 0x9a, + 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, + 0x0a, 0x10, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 0x52, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 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, 0x3d, 0x0a, 0x16, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x70, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, + 0x70, 0x70, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x0a, 0x46, + 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, + 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x65, 0x72, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3e, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xb9, + 0x02, 0x0a, 0x0b, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x3c, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x05, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x2e, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x1a, 0x7b, 0x0a, + 0x05, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x36, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x93, 0x02, 0x0a, 0x0a, 0x46, + 0x61, 0x63, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x66, 0x61, 0x63, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x07, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x62, 0x75, 0x63, 0x6b, + 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x3a, 0x0a, 0x19, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0xfe, 0x05, 0x0a, 0x12, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x6a, 0x0a, 0x11, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x44, 0x61, 0x74, 0x61, 0x48, + 0x00, 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x1a, 0x89, 0x03, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x5e, 0x0a, + 0x0a, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x67, + 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x00, 0x52, 0x09, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, + 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, + 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x1a, 0xd4, 0x01, 0x0a, 0x09, 0x56, + 0x69, 0x64, 0x65, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x78, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x74, + 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x4d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x22, 0x4d, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x1c, 0x43, 0x4f, 0x4e, 0x54, 0x41, 0x49, 0x4e, + 0x45, 0x52, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x4f, 0x4e, 0x54, 0x41, + 0x49, 0x4e, 0x45, 0x52, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4d, 0x50, 0x34, 0x10, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x1a, 0x8b, + 0x01, 0x0a, 0x0f, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x64, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6f, + 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x13, 0x0a, 0x11, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x94, 0x01, 0x0a, 0x13, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x1f, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x5f, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x1d, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb8, 0x01, 0x0a, 0x10, 0x43, 0x6c, 0x69, + 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, + 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x69, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, + 0x6f, 0x72, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, + 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, + 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0x86, 0x02, 0x0a, 0x11, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x66, 0x0a, 0x11, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x69, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6c, 0x69, 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x55, 0x72, 0x69, + 0x52, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x55, 0x72, 0x69, + 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0e, 0x54, 0x69, 0x6d, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x64, 0x55, 0x72, 0x69, 0x12, 0x64, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, + 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, + 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x69, 0x22, 0xe6, 0x01, 0x0a, + 0x15, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x6c, 0x73, 0x55, 0x72, 0x69, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x25, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x66, 0x0a, 0x13, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x5f, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x69, 0x76, + 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6c, 0x69, 0x76, 0x65, 0x56, 0x69, 0x65, 0x77, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x92, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x48, 0x6c, 0x73, 0x55, 0x72, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x69, 0x12, 0x66, 0x0a, 0x13, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xdb, 0x04, 0x0a, 0x13, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x73, 0x0a, 0x1b, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x5f, 0x6b, 0x65, 0x79, + 0x5f, 0x73, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x48, 0x00, 0x52, 0x18, 0x73, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x26, 0xe0, 0x41, 0x02, 0xfa, 0x41, 0x20, 0x0a, + 0x1e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, + 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x5c, 0x0a, 0x13, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x52, 0x11, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x08, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, + 0x61, 0x12, 0x4f, 0x0a, 0x10, 0x66, 0x61, 0x63, 0x65, 0x74, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x0f, 0x66, 0x61, 0x63, 0x65, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x14, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x73, + 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x22, 0xb4, 0x03, 0x0a, 0x1a, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x12, 0x1f, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x74, 0x65, 0x78, 0x74, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x54, 0x0a, 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x2d, 0xe0, 0x41, 0x02, 0xfa, 0x41, + 0x27, 0x0a, 0x25, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0d, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x72, 0x69, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x08, 0x63, + 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x51, 0x0a, 0x12, 0x65, 0x78, 0x63, 0x6c, 0x75, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x07, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x05, 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, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, + 0x74, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x21, 0x0a, + 0x0b, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x5f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x22, 0xfa, 0x41, 0x1f, 0x0a, 0x1d, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0xcd, 0x03, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x4b, 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, + 0x67, 0x79, 0x12, 0x53, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, 0x79, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xdb, 0x02, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x61, 0x74, + 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x6f, + 0x72, 0x74, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x73, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x63, 0x72, 0x65, 0x61, 0x73, + 0x69, 0x6e, 0x67, 0x12, 0x79, 0x0a, 0x10, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x49, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4b, + 0x65, 0x79, 0x53, 0x6f, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x61, 0x74, 0x65, 0x67, + 0x79, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x88, 0x01, 0x01, 0x22, 0x70, + 0x0a, 0x0f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x20, 0x0a, 0x1c, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, + 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x4c, 0x41, 0x52, 0x47, 0x45, 0x53, 0x54, 0x10, + 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x47, 0x47, 0x52, 0x45, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x4d, + 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x4d, 0x41, 0x4c, 0x4c, 0x45, 0x53, 0x54, 0x10, 0x02, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdd, 0x01, 0x0a, + 0x18, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3e, 0x0a, 0x08, 0x63, 0x72, 0x69, + 0x74, 0x65, 0x72, 0x69, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x52, + 0x08, 0x63, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, 0x12, 0x55, 0x0a, 0x13, 0x6d, 0x61, 0x74, + 0x63, 0x68, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x6d, 0x61, + 0x74, 0x63, 0x68, 0x65, 0x64, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x12, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbd, 0x03, 0x0a, + 0x10, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x12, 0x55, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x42, 0x02, 0x18, 0x01, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4f, + 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, + 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x59, 0x0a, + 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x14, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x72, 0x0a, 0x1b, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5f, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x19, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x74, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xe5, 0x01, 0x0a, + 0x14, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, + 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x11, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x74, 0x65, 0x6d, + 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, 0x49, 0x0a, 0x0d, 0x66, 0x61, 0x63, + 0x65, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x61, 0x63, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0c, 0x66, 0x61, 0x63, 0x65, 0x74, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x22, 0xa1, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x13, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x11, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x49, 0x74, 0x65, 0x6d, 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, 0x4e, 0x0a, 0x08, 0x49, 0x6e, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, + 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x22, 0x50, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, + 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x22, 0x2c, 0x0a, 0x0b, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x78, 0x74, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x74, + 0x78, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x52, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x41, 0x0a, 0x0a, 0x69, 0x6e, 0x74, + 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, + 0x65, 0x52, 0x09, 0x69, 0x6e, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x5a, 0x0a, 0x0f, + 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, + 0x47, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x6f, + 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x65, 0x0a, 0x0d, 0x44, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x27, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x74, 0x79, 0x70, + 0x65, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, + 0x67, 0x0a, 0x12, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x51, 0x0a, 0x10, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x22, 0x69, 0x0a, 0x0a, 0x43, 0x69, 0x72, 0x63, + 0x6c, 0x65, 0x41, 0x72, 0x65, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, + 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x4d, 0x65, + 0x74, 0x65, 0x72, 0x22, 0x5b, 0x0a, 0x10, 0x47, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x0c, 0x63, 0x69, 0x72, 0x63, 0x6c, + 0x65, 0x5f, 0x61, 0x72, 0x65, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x41, + 0x72, 0x65, 0x61, 0x52, 0x0b, 0x63, 0x69, 0x72, 0x63, 0x6c, 0x65, 0x41, 0x72, 0x65, 0x61, 0x73, + 0x22, 0x21, 0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x22, 0xde, 0x04, 0x0a, 0x08, 0x43, 0x72, 0x69, 0x74, 0x65, 0x72, 0x69, 0x61, + 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x65, 0x78, 0x74, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x09, 0x74, + 0x65, 0x78, 0x74, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x51, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x5f, + 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x74, + 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, + 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x57, 0x0a, 0x11, 0x66, + 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, + 0x72, 0x72, 0x61, 0x79, 0x12, 0x61, 0x0a, 0x15, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, + 0x79, 0x48, 0x00, 0x52, 0x12, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x61, 0x6e, + 0x67, 0x65, 0x41, 0x72, 0x72, 0x61, 0x79, 0x12, 0x5a, 0x0a, 0x12, 0x67, 0x65, 0x6f, 0x5f, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x72, 0x72, 0x61, 0x79, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x48, + 0x00, 0x52, 0x10, 0x67, 0x65, 0x6f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x72, + 0x72, 0x61, 0x79, 0x12, 0x44, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x09, + 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, + 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, + 0x3a, 0x0a, 0x19, 0x66, 0x65, 0x74, 0x63, 0x68, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x17, 0x66, 0x65, 0x74, 0x63, 0x68, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0x96, 0x06, 0x0a, 0x09, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x64, 0x0a, 0x12, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x11, 0x73, 0x70, 0x61, 0x74, + 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x73, 0x70, 0x61, 0x74, 0x69, + 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x7d, 0x0a, 0x1b, 0x72, + 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, + 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x3d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x65, + 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x19, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, + 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x85, 0x01, 0x0a, 0x11, 0x54, + 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 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, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 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, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x1a, 0xa2, 0x01, 0x0a, 0x10, 0x53, 0x70, 0x61, 0x74, 0x69, 0x61, 0x6c, 0x50, 0x61, + 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x05, 0x78, 0x5f, 0x6d, 0x69, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x04, 0x78, 0x4d, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x18, 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x01, 0x52, 0x04, 0x79, 0x4d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x78, + 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x04, 0x78, 0x4d, + 0x61, 0x78, 0x88, 0x01, 0x01, 0x12, 0x18, 0x0a, 0x05, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x04, 0x79, 0x4d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x78, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x79, 0x5f, + 0x6d, 0x69, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x78, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x1a, 0x93, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6f, 0x72, 0x61, 0x6c, 0x50, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 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, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 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, 0x09, 0x65, 0x6e, 0x64, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2a, 0xb8, 0x01, + 0x0a, 0x0f, 0x46, 0x61, 0x63, 0x65, 0x74, 0x42, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x43, 0x45, 0x54, 0x5f, 0x42, 0x55, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x41, 0x43, 0x45, 0x54, 0x5f, 0x42, 0x55, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, + 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x41, 0x43, 0x45, 0x54, 0x5f, 0x42, 0x55, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x41, 0x54, 0x45, 0x54, 0x49, 0x4d, 0x45, 0x10, + 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x46, 0x41, 0x43, 0x45, 0x54, 0x5f, 0x42, 0x55, 0x43, 0x4b, 0x45, + 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x52, 0x41, 0x4e, + 0x47, 0x45, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x41, 0x43, 0x45, 0x54, 0x5f, 0x42, 0x55, + 0x43, 0x4b, 0x45, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x55, 0x53, 0x54, 0x4f, 0x4d, + 0x5f, 0x52, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x04, 0x32, 0x91, 0x66, 0x0a, 0x09, 0x57, 0x61, 0x72, + 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x5b, 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x05, 0x61, 0x73, 0x73, 0x65, 0x74, 0x22, 0x34, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x22, 0x5d, 0xda, 0x41, 0x11, 0x61, 0x73, 0x73, 0x65, 0x74, 0x2c, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x3a, 0x05, 0x61, + 0x73, 0x73, 0x65, 0x74, 0x32, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x73, 0x73, 0x65, 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, 0x63, 0x6f, 0x72, + 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0x9b, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x29, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x65, 0x74, 0x22, 0x43, 0xda, 0x41, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, + 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xae, + 0x01, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 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, 0x63, 0x6f, + 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, + 0xce, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, + 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x41, 0x73, 0x73, 0x65, 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, 0x72, 0xca, 0x41, + 0x2c, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x2a, 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, 0x63, 0x6f, 0x72, + 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, + 0x12, 0xcf, 0x01, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, + 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 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, 0x73, 0xca, + 0x41, 0x2a, 0x0a, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x13, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x12, 0xdb, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x35, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x55, + 0x72, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x4e, 0x3a, 0x01, 0x2a, 0x22, 0x49, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x55, 0x72, 0x6c, + 0x12, 0xd4, 0x01, 0x0a, 0x0c, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, + 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 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, + 0x76, 0xca, 0x41, 0x2c, 0x0a, 0x14, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 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, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, 0xca, 0x01, 0x0a, 0x0a, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 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, 0x70, 0xca, 0x41, 0x28, 0x0a, 0x12, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, 0x2a, 0x22, 0x3a, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, + 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x12, 0xe9, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x41, 0x73, 0x73, 0x65, 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, 0x82, 0x01, 0xca, 0x41, + 0x34, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x41, 0x73, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x3a, 0x01, 0x2a, 0x22, 0x40, + 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0xcf, 0x01, 0x0a, 0x11, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x64, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, + 0x64, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x51, 0xda, 0x41, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x43, 0x12, + 0x41, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 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, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x76, 0x69, 0x65, 0x77, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x12, 0xd7, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 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, 0x1c, 0x0a, 0x05, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x13, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x15, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2c, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x05, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x35, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0xd9, 0x01, 0x0a, + 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 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, 0x1c, 0x0a, 0x05, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x11, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x32, 0x3b, 0x2f, 0x76, 0x31, + 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x9c, 0x01, 0x0a, 0x08, 0x47, 0x65, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x22, 0x44, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, + 0x12, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb2, 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, + 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 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, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0xcf, 0x01, 0x0a, + 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, + 0x64, 0x65, 0x78, 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, 0x2c, 0x0a, 0x15, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 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, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x2a, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xca, + 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, + 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 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, 0x6c, 0xca, + 0x41, 0x1e, 0x0a, 0x06, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xda, 0x41, 0x0d, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x12, 0x95, 0x01, 0x0a, 0x09, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x2f, 0x2a, 0x7d, 0x12, 0xb8, 0x01, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x72, 0x70, 0x75, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x72, 0x70, 0x75, 0x73, 0x22, 0x57, 0xda, 0x41, 0x12, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3c, 0x3a, 0x06, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x32, 0x32, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x12, 0xa8, + 0x01, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x12, 0x2c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, + 0x72, 0x70, 0x6f, 0x72, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x72, 0x70, + 0x75, 0x73, 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, 0x3a, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x12, 0xcf, 0x01, + 0x0a, 0x0d, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x12, + 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 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, 0x6f, + 0xca, 0x41, 0x2e, 0x0a, 0x15, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x7a, 0x65, 0x43, 0x6f, 0x72, 0x70, 0x75, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, 0x3a, 0x01, 0x2a, 0x22, 0x33, 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, 0x63, 0x6f, 0x72, + 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x7a, 0x65, 0x12, + 0xd0, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x22, 0x63, 0xda, + 0x41, 0x12, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x48, 0x3a, 0x0b, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 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, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x73, 0x12, 0xe1, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, + 0x65, 0x6d, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x22, 0x74, 0xda, 0x41, 0x17, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x54, 0x3a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x32, + 0x45, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, + 0x61, 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, 0x63, 0x6f, + 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 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, + 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, + 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xa7, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 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, 0x48, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, + 0x61, 0x2f, 0x2a, 0x2f, 0x64, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xc2, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x53, 0x63, 0x68, 0x65, + 0x6d, 0x61, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x64, 0x61, 0x74, 0x61, + 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x73, 0x12, 0xe5, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x78, 0xda, 0x41, 0x1f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x2c, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, + 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x42, 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, + 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, + 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0xb8, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xcb, 0x01, 0x0a, 0x0f, 0x4c, + 0x69, 0x73, 0x74, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 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, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x53, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x44, 0x12, 0x42, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, + 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe7, 0x01, 0x0a, 0x10, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7a, 0xda, 0x41, 0x16, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, 0x3a, 0x0a, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x32, 0x4d, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, + 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xb0, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 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, 0x51, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x44, 0x2a, 0x42, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, + 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x70, 0x0a, 0x0b, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, + 0x67, 0x65, 0x73, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x12, 0xaa, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x69, 0x70, + 0x41, 0x73, 0x73, 0x65, 0x74, 0x12, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6c, 0x69, 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x69, + 0x70, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x44, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3e, 0x3a, 0x01, 0x2a, 0x22, 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, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, + 0x63, 0x6c, 0x69, 0x70, 0x12, 0xc3, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x48, 0x6c, 0x73, 0x55, 0x72, 0x69, 0x12, 0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x6c, 0x73, 0x55, 0x72, + 0x69, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x48, 0x6c, 0x73, 0x55, + 0x72, 0x69, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x48, 0x3a, 0x01, 0x2a, 0x22, 0x43, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x48, 0x6c, 0x73, 0x55, 0x72, 0x69, 0x12, 0xd3, 0x01, 0x0a, 0x0c, 0x49, + 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, + 0x65, 0x74, 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, 0x75, 0xca, 0x41, 0x2c, 0x0a, 0x14, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x41, 0x73, 0x73, 0x65, + 0x74, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, + 0x3a, 0x01, 0x2a, 0x22, 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x7d, 0x2f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x73, 0x3a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x12, 0xed, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7a, 0xda, 0x41, 0x25, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4c, 0x3a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, + 0x12, 0xef, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7c, 0xda, 0x41, 0x19, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, + 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x3a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x32, 0x49, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, + 0x2a, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xb7, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x22, 0x4a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, + 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xad, 0x01, 0x0a, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x12, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 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, 0x4a, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x2a, + 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xca, 0x01, 0x0a, + 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x73, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0xda, 0x41, 0x06, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x3b, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0xfc, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, + 0x6e, 0x79, 0x6d, 0x22, 0x82, 0x01, 0xda, 0x41, 0x29, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x2c, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x5f, + 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x50, 0x3a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x22, 0x3d, 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, 0x63, 0x6f, + 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x12, 0xfe, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, + 0x6d, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, + 0x79, 0x6d, 0x22, 0x84, 0x01, 0xda, 0x41, 0x1b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x60, 0x3a, 0x0f, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x32, 0x4d, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x68, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, + 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, 0x63, 0x6f, 0x72, + 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xbf, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x12, + 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, + 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x22, 0x4c, 0xda, + 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 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, 0x63, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xb3, 0x01, 0x0a, 0x14, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, + 0x72, 0x6e, 0x79, 0x6d, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, + 0x72, 0x6e, 0x79, 0x6d, 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, 0x4c, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3f, 0x2a, 0x3d, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x73, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x2f, 0x2a, + 0x7d, 0x12, 0xd2, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, + 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4e, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x12, 0x3d, 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, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x48, 0x79, 0x70, + 0x65, 0x72, 0x6e, 0x79, 0x6d, 0x73, 0x12, 0xb4, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x45, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3f, 0x3a, 0x01, + 0x2a, 0x22, 0x3a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x6f, 0x72, 0x70, 0x75, 0x73, 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, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, + 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x41, 0x73, 0x73, 0x65, 0x74, 0x73, 0x12, 0xdf, 0x01, + 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x5b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x3a, 0x01, 0x2a, 0x22, 0x50, 0x2f, + 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 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, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x90, 0x02, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 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, 0xa3, 0x01, 0xca, + 0x41, 0x2c, 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x12, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, + 0x27, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x44, 0x3a, 0x0e, + 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x32, + 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, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x12, 0xb1, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x22, 0x41, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x34, 0x12, 0x32, 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, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc4, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, + 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x33, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, + 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0xda, 0x41, 0x06, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x32, 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, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x92, 0x02, + 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, + 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 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, 0xa5, 0x01, 0xca, 0x41, 0x2c, + 0x0a, 0x0d, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, + 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1a, 0x69, + 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2c, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x53, 0x3a, + 0x0e, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x32, + 0x41, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 0x65, 0x6e, 0x64, 0x70, + 0x6f, 0x69, 0x6e, 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, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, + 0x2a, 0x7d, 0x12, 0xe4, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, + 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, + 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 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, + 0x78, 0xca, 0x41, 0x34, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 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, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xdd, 0x01, 0x0a, 0x0b, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, + 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, 0x80, 0x01, 0xca, 0x41, 0x2a, 0x0a, 0x13, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x13, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4d, 0x3a, 0x01, 0x2a, 0x22, + 0x48, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x5f, 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, 0x69, 0x6e, 0x64, 0x65, + 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0xe7, 0x01, 0x0a, 0x0d, 0x55, 0x6e, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x2e, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, + 0x6e, 0x64, 0x65, 0x78, 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, 0x86, 0x01, 0xca, 0x41, 0x2e, + 0x0a, 0x15, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x55, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x4f, 0x3a, 0x01, 0x2a, 0x22, 0x4a, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x6e, + 0x64, 0x65, 0x78, 0x5f, 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, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x75, 0x6e, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x49, 0x6e, + 0x64, 0x65, 0x78, 0x12, 0xff, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 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, 0x26, + 0x0a, 0x0a, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xda, 0x41, 0x1f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x2c, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x47, 0x3a, 0x0a, + 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x63, + 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xe2, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, + 0x31, 0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xde, 0x01, 0x0a, + 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x31, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x71, 0xda, 0x41, 0x16, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x52, 0x3a, 0x0a, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0x44, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x63, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x63, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0xc2, 0x01, + 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, + 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 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, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x63, 0x6f, 0x72, 0x70, + 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x12, 0xe6, 0x01, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x32, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x68, 0xda, 0x41, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5b, + 0x3a, 0x01, 0x2a, 0x22, 0x56, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, 0x2e, 0x63, + 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x61, 0x64, 0x64, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x12, 0xf2, 0x01, 0x0a, 0x14, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x35, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, + 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x43, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x6b, 0xda, 0x41, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x5e, 0x3a, 0x01, 0x2a, 0x22, 0x59, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x69, 0x74, 0x65, 0x6d, + 0x2e, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x72, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, + 0x12, 0xec, 0x01, 0x0a, 0x13, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x34, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x65, 0x77, 0x43, 0x6f, + 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x68, 0xda, 0x41, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x12, 0x53, 0x2f, 0x76, 0x31, 0x2f, + 0x7b, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 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, 0x6f, 0x72, 0x70, 0x6f, 0x72, 0x61, 0x2f, 0x2a, 0x2f, 0x63, 0x6f, 0x6c, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x2a, 0x7d, 0x3a, 0x76, 0x69, 0x65, 0x77, + 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x4b, 0xca, 0x41, 0x17, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 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, 0xbe, 0x01, 0x0a, + 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, + 0x64, 0x2e, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x0e, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x38, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x2f, 0x61, 0x70, + 0x69, 0x76, 0x31, 0x2f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0x3b, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x61, 0x69, 0x70, 0x62, 0xaa, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, + 0x49, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c, 0x43, 0x6c, + 0x6f, 0x75, 0x64, 0x5c, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x5c, 0x56, 0x31, 0xea, + 0x02, 0x1b, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x3a, 0x3a, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x3a, + 0x3a, 0x56, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x49, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_google_cloud_visionai_v1_warehouse_proto_rawDescOnce sync.Once + file_google_cloud_visionai_v1_warehouse_proto_rawDescData = file_google_cloud_visionai_v1_warehouse_proto_rawDesc +) + +func file_google_cloud_visionai_v1_warehouse_proto_rawDescGZIP() []byte { + file_google_cloud_visionai_v1_warehouse_proto_rawDescOnce.Do(func() { + file_google_cloud_visionai_v1_warehouse_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_visionai_v1_warehouse_proto_rawDescData) + }) + return file_google_cloud_visionai_v1_warehouse_proto_rawDescData +} + +var file_google_cloud_visionai_v1_warehouse_proto_enumTypes = make([]protoimpl.EnumInfo, 14) +var file_google_cloud_visionai_v1_warehouse_proto_msgTypes = make([]protoimpl.MessageInfo, 174) +var file_google_cloud_visionai_v1_warehouse_proto_goTypes = []interface{}{ + (FacetBucketType)(0), // 0: google.cloud.visionai.v1.FacetBucketType + (AnalyzeAssetMetadata_AnalysisStatus_State)(0), // 1: google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus.State + (IndexingStatus_State)(0), // 2: google.cloud.visionai.v1.IndexingStatus.State + (SearchCapability_Type)(0), // 3: google.cloud.visionai.v1.SearchCapability.Type + (CollectionItem_Type)(0), // 4: google.cloud.visionai.v1.CollectionItem.Type + (Index_State)(0), // 5: google.cloud.visionai.v1.Index.State + (Corpus_Type)(0), // 6: google.cloud.visionai.v1.Corpus.Type + (DataSchemaDetails_DataType)(0), // 7: google.cloud.visionai.v1.DataSchemaDetails.DataType + (DataSchemaDetails_Granularity)(0), // 8: google.cloud.visionai.v1.DataSchemaDetails.Granularity + (DataSchemaDetails_SearchStrategy_SearchStrategyType)(0), // 9: google.cloud.visionai.v1.DataSchemaDetails.SearchStrategy.SearchStrategyType + (IndexEndpoint_State)(0), // 10: google.cloud.visionai.v1.IndexEndpoint.State + (FacetProperty_DateTimeBucketSpec_Granularity)(0), // 11: google.cloud.visionai.v1.FacetProperty.DateTimeBucketSpec.Granularity + (IngestAssetRequest_Config_VideoType_ContainerFormat)(0), // 12: google.cloud.visionai.v1.IngestAssetRequest.Config.VideoType.ContainerFormat + (SchemaKeySortingStrategy_Option_AggregateMethod)(0), // 13: google.cloud.visionai.v1.SchemaKeySortingStrategy.Option.AggregateMethod + (*CreateAssetRequest)(nil), // 14: google.cloud.visionai.v1.CreateAssetRequest + (*GetAssetRequest)(nil), // 15: google.cloud.visionai.v1.GetAssetRequest + (*ListAssetsRequest)(nil), // 16: google.cloud.visionai.v1.ListAssetsRequest + (*ListAssetsResponse)(nil), // 17: google.cloud.visionai.v1.ListAssetsResponse + (*UpdateAssetRequest)(nil), // 18: google.cloud.visionai.v1.UpdateAssetRequest + (*DeleteAssetRequest)(nil), // 19: google.cloud.visionai.v1.DeleteAssetRequest + (*AssetSource)(nil), // 20: google.cloud.visionai.v1.AssetSource + (*UploadAssetRequest)(nil), // 21: google.cloud.visionai.v1.UploadAssetRequest + (*UploadAssetResponse)(nil), // 22: google.cloud.visionai.v1.UploadAssetResponse + (*UploadAssetMetadata)(nil), // 23: google.cloud.visionai.v1.UploadAssetMetadata + (*GenerateRetrievalUrlRequest)(nil), // 24: google.cloud.visionai.v1.GenerateRetrievalUrlRequest + (*GenerateRetrievalUrlResponse)(nil), // 25: google.cloud.visionai.v1.GenerateRetrievalUrlResponse + (*Asset)(nil), // 26: google.cloud.visionai.v1.Asset + (*AnalyzeAssetRequest)(nil), // 27: google.cloud.visionai.v1.AnalyzeAssetRequest + (*AnalyzeAssetMetadata)(nil), // 28: google.cloud.visionai.v1.AnalyzeAssetMetadata + (*AnalyzeAssetResponse)(nil), // 29: google.cloud.visionai.v1.AnalyzeAssetResponse + (*IndexingStatus)(nil), // 30: google.cloud.visionai.v1.IndexingStatus + (*IndexAssetRequest)(nil), // 31: google.cloud.visionai.v1.IndexAssetRequest + (*IndexAssetMetadata)(nil), // 32: google.cloud.visionai.v1.IndexAssetMetadata + (*IndexAssetResponse)(nil), // 33: google.cloud.visionai.v1.IndexAssetResponse + (*RemoveIndexAssetRequest)(nil), // 34: google.cloud.visionai.v1.RemoveIndexAssetRequest + (*RemoveIndexAssetMetadata)(nil), // 35: google.cloud.visionai.v1.RemoveIndexAssetMetadata + (*RemoveIndexAssetResponse)(nil), // 36: google.cloud.visionai.v1.RemoveIndexAssetResponse + (*IndexedAsset)(nil), // 37: google.cloud.visionai.v1.IndexedAsset + (*ViewIndexedAssetsRequest)(nil), // 38: google.cloud.visionai.v1.ViewIndexedAssetsRequest + (*ViewIndexedAssetsResponse)(nil), // 39: google.cloud.visionai.v1.ViewIndexedAssetsResponse + (*CreateCorpusRequest)(nil), // 40: google.cloud.visionai.v1.CreateCorpusRequest + (*CreateCorpusMetadata)(nil), // 41: google.cloud.visionai.v1.CreateCorpusMetadata + (*SearchCapability)(nil), // 42: google.cloud.visionai.v1.SearchCapability + (*SearchCapabilitySetting)(nil), // 43: google.cloud.visionai.v1.SearchCapabilitySetting + (*CreateCollectionMetadata)(nil), // 44: google.cloud.visionai.v1.CreateCollectionMetadata + (*CreateCollectionRequest)(nil), // 45: google.cloud.visionai.v1.CreateCollectionRequest + (*DeleteCollectionMetadata)(nil), // 46: google.cloud.visionai.v1.DeleteCollectionMetadata + (*DeleteCollectionRequest)(nil), // 47: google.cloud.visionai.v1.DeleteCollectionRequest + (*GetCollectionRequest)(nil), // 48: google.cloud.visionai.v1.GetCollectionRequest + (*UpdateCollectionRequest)(nil), // 49: google.cloud.visionai.v1.UpdateCollectionRequest + (*ListCollectionsRequest)(nil), // 50: google.cloud.visionai.v1.ListCollectionsRequest + (*ListCollectionsResponse)(nil), // 51: google.cloud.visionai.v1.ListCollectionsResponse + (*AddCollectionItemRequest)(nil), // 52: google.cloud.visionai.v1.AddCollectionItemRequest + (*AddCollectionItemResponse)(nil), // 53: google.cloud.visionai.v1.AddCollectionItemResponse + (*RemoveCollectionItemRequest)(nil), // 54: google.cloud.visionai.v1.RemoveCollectionItemRequest + (*RemoveCollectionItemResponse)(nil), // 55: google.cloud.visionai.v1.RemoveCollectionItemResponse + (*ViewCollectionItemsRequest)(nil), // 56: google.cloud.visionai.v1.ViewCollectionItemsRequest + (*ViewCollectionItemsResponse)(nil), // 57: google.cloud.visionai.v1.ViewCollectionItemsResponse + (*Collection)(nil), // 58: google.cloud.visionai.v1.Collection + (*CollectionItem)(nil), // 59: google.cloud.visionai.v1.CollectionItem + (*CreateIndexRequest)(nil), // 60: google.cloud.visionai.v1.CreateIndexRequest + (*CreateIndexMetadata)(nil), // 61: google.cloud.visionai.v1.CreateIndexMetadata + (*UpdateIndexRequest)(nil), // 62: google.cloud.visionai.v1.UpdateIndexRequest + (*UpdateIndexMetadata)(nil), // 63: google.cloud.visionai.v1.UpdateIndexMetadata + (*GetIndexRequest)(nil), // 64: google.cloud.visionai.v1.GetIndexRequest + (*ListIndexesRequest)(nil), // 65: google.cloud.visionai.v1.ListIndexesRequest + (*ListIndexesResponse)(nil), // 66: google.cloud.visionai.v1.ListIndexesResponse + (*DeleteIndexRequest)(nil), // 67: google.cloud.visionai.v1.DeleteIndexRequest + (*DeleteIndexMetadata)(nil), // 68: google.cloud.visionai.v1.DeleteIndexMetadata + (*Index)(nil), // 69: google.cloud.visionai.v1.Index + (*DeployedIndexReference)(nil), // 70: google.cloud.visionai.v1.DeployedIndexReference + (*Corpus)(nil), // 71: google.cloud.visionai.v1.Corpus + (*GetCorpusRequest)(nil), // 72: google.cloud.visionai.v1.GetCorpusRequest + (*UpdateCorpusRequest)(nil), // 73: google.cloud.visionai.v1.UpdateCorpusRequest + (*ListCorporaRequest)(nil), // 74: google.cloud.visionai.v1.ListCorporaRequest + (*ListCorporaResponse)(nil), // 75: google.cloud.visionai.v1.ListCorporaResponse + (*DeleteCorpusRequest)(nil), // 76: google.cloud.visionai.v1.DeleteCorpusRequest + (*AnalyzeCorpusRequest)(nil), // 77: google.cloud.visionai.v1.AnalyzeCorpusRequest + (*AnalyzeCorpusMetadata)(nil), // 78: google.cloud.visionai.v1.AnalyzeCorpusMetadata + (*AnalyzeCorpusResponse)(nil), // 79: google.cloud.visionai.v1.AnalyzeCorpusResponse + (*CreateDataSchemaRequest)(nil), // 80: google.cloud.visionai.v1.CreateDataSchemaRequest + (*DataSchema)(nil), // 81: google.cloud.visionai.v1.DataSchema + (*DataSchemaDetails)(nil), // 82: google.cloud.visionai.v1.DataSchemaDetails + (*UpdateDataSchemaRequest)(nil), // 83: google.cloud.visionai.v1.UpdateDataSchemaRequest + (*GetDataSchemaRequest)(nil), // 84: google.cloud.visionai.v1.GetDataSchemaRequest + (*DeleteDataSchemaRequest)(nil), // 85: google.cloud.visionai.v1.DeleteDataSchemaRequest + (*ListDataSchemasRequest)(nil), // 86: google.cloud.visionai.v1.ListDataSchemasRequest + (*ListDataSchemasResponse)(nil), // 87: google.cloud.visionai.v1.ListDataSchemasResponse + (*CreateAnnotationRequest)(nil), // 88: google.cloud.visionai.v1.CreateAnnotationRequest + (*Annotation)(nil), // 89: google.cloud.visionai.v1.Annotation + (*UserSpecifiedAnnotation)(nil), // 90: google.cloud.visionai.v1.UserSpecifiedAnnotation + (*GeoCoordinate)(nil), // 91: google.cloud.visionai.v1.GeoCoordinate + (*AnnotationValue)(nil), // 92: google.cloud.visionai.v1.AnnotationValue + (*AnnotationList)(nil), // 93: google.cloud.visionai.v1.AnnotationList + (*AnnotationCustomizedStruct)(nil), // 94: google.cloud.visionai.v1.AnnotationCustomizedStruct + (*ListAnnotationsRequest)(nil), // 95: google.cloud.visionai.v1.ListAnnotationsRequest + (*ListAnnotationsResponse)(nil), // 96: google.cloud.visionai.v1.ListAnnotationsResponse + (*GetAnnotationRequest)(nil), // 97: google.cloud.visionai.v1.GetAnnotationRequest + (*UpdateAnnotationRequest)(nil), // 98: google.cloud.visionai.v1.UpdateAnnotationRequest + (*DeleteAnnotationRequest)(nil), // 99: google.cloud.visionai.v1.DeleteAnnotationRequest + (*ImportAssetsRequest)(nil), // 100: google.cloud.visionai.v1.ImportAssetsRequest + (*ImportAssetsMetadata)(nil), // 101: google.cloud.visionai.v1.ImportAssetsMetadata + (*ImportAssetsResponse)(nil), // 102: google.cloud.visionai.v1.ImportAssetsResponse + (*CreateSearchConfigRequest)(nil), // 103: google.cloud.visionai.v1.CreateSearchConfigRequest + (*UpdateSearchConfigRequest)(nil), // 104: google.cloud.visionai.v1.UpdateSearchConfigRequest + (*GetSearchConfigRequest)(nil), // 105: google.cloud.visionai.v1.GetSearchConfigRequest + (*DeleteSearchConfigRequest)(nil), // 106: google.cloud.visionai.v1.DeleteSearchConfigRequest + (*ListSearchConfigsRequest)(nil), // 107: google.cloud.visionai.v1.ListSearchConfigsRequest + (*ListSearchConfigsResponse)(nil), // 108: google.cloud.visionai.v1.ListSearchConfigsResponse + (*SearchConfig)(nil), // 109: google.cloud.visionai.v1.SearchConfig + (*IndexEndpoint)(nil), // 110: google.cloud.visionai.v1.IndexEndpoint + (*CreateIndexEndpointRequest)(nil), // 111: google.cloud.visionai.v1.CreateIndexEndpointRequest + (*CreateIndexEndpointMetadata)(nil), // 112: google.cloud.visionai.v1.CreateIndexEndpointMetadata + (*GetIndexEndpointRequest)(nil), // 113: google.cloud.visionai.v1.GetIndexEndpointRequest + (*ListIndexEndpointsRequest)(nil), // 114: google.cloud.visionai.v1.ListIndexEndpointsRequest + (*ListIndexEndpointsResponse)(nil), // 115: google.cloud.visionai.v1.ListIndexEndpointsResponse + (*UpdateIndexEndpointRequest)(nil), // 116: google.cloud.visionai.v1.UpdateIndexEndpointRequest + (*UpdateIndexEndpointMetadata)(nil), // 117: google.cloud.visionai.v1.UpdateIndexEndpointMetadata + (*DeleteIndexEndpointRequest)(nil), // 118: google.cloud.visionai.v1.DeleteIndexEndpointRequest + (*DeleteIndexEndpointMetadata)(nil), // 119: google.cloud.visionai.v1.DeleteIndexEndpointMetadata + (*DeployIndexRequest)(nil), // 120: google.cloud.visionai.v1.DeployIndexRequest + (*DeployIndexResponse)(nil), // 121: google.cloud.visionai.v1.DeployIndexResponse + (*DeployIndexMetadata)(nil), // 122: google.cloud.visionai.v1.DeployIndexMetadata + (*UndeployIndexMetadata)(nil), // 123: google.cloud.visionai.v1.UndeployIndexMetadata + (*UndeployIndexRequest)(nil), // 124: google.cloud.visionai.v1.UndeployIndexRequest + (*UndeployIndexResponse)(nil), // 125: google.cloud.visionai.v1.UndeployIndexResponse + (*DeployedIndex)(nil), // 126: google.cloud.visionai.v1.DeployedIndex + (*FacetProperty)(nil), // 127: google.cloud.visionai.v1.FacetProperty + (*SearchHypernym)(nil), // 128: google.cloud.visionai.v1.SearchHypernym + (*CreateSearchHypernymRequest)(nil), // 129: google.cloud.visionai.v1.CreateSearchHypernymRequest + (*UpdateSearchHypernymRequest)(nil), // 130: google.cloud.visionai.v1.UpdateSearchHypernymRequest + (*GetSearchHypernymRequest)(nil), // 131: google.cloud.visionai.v1.GetSearchHypernymRequest + (*DeleteSearchHypernymRequest)(nil), // 132: google.cloud.visionai.v1.DeleteSearchHypernymRequest + (*ListSearchHypernymsRequest)(nil), // 133: google.cloud.visionai.v1.ListSearchHypernymsRequest + (*ListSearchHypernymsResponse)(nil), // 134: google.cloud.visionai.v1.ListSearchHypernymsResponse + (*SearchCriteriaProperty)(nil), // 135: google.cloud.visionai.v1.SearchCriteriaProperty + (*FacetValue)(nil), // 136: google.cloud.visionai.v1.FacetValue + (*FacetBucket)(nil), // 137: google.cloud.visionai.v1.FacetBucket + (*FacetGroup)(nil), // 138: google.cloud.visionai.v1.FacetGroup + (*IngestAssetRequest)(nil), // 139: google.cloud.visionai.v1.IngestAssetRequest + (*IngestAssetResponse)(nil), // 140: google.cloud.visionai.v1.IngestAssetResponse + (*ClipAssetRequest)(nil), // 141: google.cloud.visionai.v1.ClipAssetRequest + (*ClipAssetResponse)(nil), // 142: google.cloud.visionai.v1.ClipAssetResponse + (*GenerateHlsUriRequest)(nil), // 143: google.cloud.visionai.v1.GenerateHlsUriRequest + (*GenerateHlsUriResponse)(nil), // 144: google.cloud.visionai.v1.GenerateHlsUriResponse + (*SearchAssetsRequest)(nil), // 145: google.cloud.visionai.v1.SearchAssetsRequest + (*SearchIndexEndpointRequest)(nil), // 146: google.cloud.visionai.v1.SearchIndexEndpointRequest + (*ImageQuery)(nil), // 147: google.cloud.visionai.v1.ImageQuery + (*SchemaKeySortingStrategy)(nil), // 148: google.cloud.visionai.v1.SchemaKeySortingStrategy + (*DeleteAssetMetadata)(nil), // 149: google.cloud.visionai.v1.DeleteAssetMetadata + (*AnnotationMatchingResult)(nil), // 150: google.cloud.visionai.v1.AnnotationMatchingResult + (*SearchResultItem)(nil), // 151: google.cloud.visionai.v1.SearchResultItem + (*SearchAssetsResponse)(nil), // 152: google.cloud.visionai.v1.SearchAssetsResponse + (*SearchIndexEndpointResponse)(nil), // 153: google.cloud.visionai.v1.SearchIndexEndpointResponse + (*IntRange)(nil), // 154: google.cloud.visionai.v1.IntRange + (*FloatRange)(nil), // 155: google.cloud.visionai.v1.FloatRange + (*StringArray)(nil), // 156: google.cloud.visionai.v1.StringArray + (*IntRangeArray)(nil), // 157: google.cloud.visionai.v1.IntRangeArray + (*FloatRangeArray)(nil), // 158: google.cloud.visionai.v1.FloatRangeArray + (*DateTimeRange)(nil), // 159: google.cloud.visionai.v1.DateTimeRange + (*DateTimeRangeArray)(nil), // 160: google.cloud.visionai.v1.DateTimeRangeArray + (*CircleArea)(nil), // 161: google.cloud.visionai.v1.CircleArea + (*GeoLocationArray)(nil), // 162: google.cloud.visionai.v1.GeoLocationArray + (*BoolValue)(nil), // 163: google.cloud.visionai.v1.BoolValue + (*Criteria)(nil), // 164: google.cloud.visionai.v1.Criteria + (*Partition)(nil), // 165: google.cloud.visionai.v1.Partition + (*AssetSource_AssetGcsSource)(nil), // 166: google.cloud.visionai.v1.AssetSource.AssetGcsSource + (*AssetSource_AssetContentData)(nil), // 167: google.cloud.visionai.v1.AssetSource.AssetContentData + (*AnalyzeAssetMetadata_AnalysisStatus)(nil), // 168: google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus + (*DataSchemaDetails_ProtoAnyConfig)(nil), // 169: google.cloud.visionai.v1.DataSchemaDetails.ProtoAnyConfig + (*DataSchemaDetails_ListConfig)(nil), // 170: google.cloud.visionai.v1.DataSchemaDetails.ListConfig + (*DataSchemaDetails_CustomizedStructConfig)(nil), // 171: google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig + (*DataSchemaDetails_SearchStrategy)(nil), // 172: google.cloud.visionai.v1.DataSchemaDetails.SearchStrategy + nil, // 173: google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig.FieldSchemasEntry + nil, // 174: google.cloud.visionai.v1.AnnotationCustomizedStruct.ElementsEntry + nil, // 175: google.cloud.visionai.v1.IndexEndpoint.LabelsEntry + (*FacetProperty_FixedRangeBucketSpec)(nil), // 176: google.cloud.visionai.v1.FacetProperty.FixedRangeBucketSpec + (*FacetProperty_CustomRangeBucketSpec)(nil), // 177: google.cloud.visionai.v1.FacetProperty.CustomRangeBucketSpec + (*FacetProperty_DateTimeBucketSpec)(nil), // 178: google.cloud.visionai.v1.FacetProperty.DateTimeBucketSpec + (*FacetBucket_Range)(nil), // 179: google.cloud.visionai.v1.FacetBucket.Range + (*IngestAssetRequest_Config)(nil), // 180: google.cloud.visionai.v1.IngestAssetRequest.Config + (*IngestAssetRequest_TimeIndexedData)(nil), // 181: google.cloud.visionai.v1.IngestAssetRequest.TimeIndexedData + (*IngestAssetRequest_Config_VideoType)(nil), // 182: google.cloud.visionai.v1.IngestAssetRequest.Config.VideoType + (*ClipAssetResponse_TimeIndexedUri)(nil), // 183: google.cloud.visionai.v1.ClipAssetResponse.TimeIndexedUri + (*SchemaKeySortingStrategy_Option)(nil), // 184: google.cloud.visionai.v1.SchemaKeySortingStrategy.Option + (*Partition_TemporalPartition)(nil), // 185: google.cloud.visionai.v1.Partition.TemporalPartition + (*Partition_SpatialPartition)(nil), // 186: google.cloud.visionai.v1.Partition.SpatialPartition + (*Partition_RelativeTemporalPartition)(nil), // 187: google.cloud.visionai.v1.Partition.RelativeTemporalPartition + (*fieldmaskpb.FieldMask)(nil), // 188: google.protobuf.FieldMask + (*timestamppb.Timestamp)(nil), // 189: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 190: google.protobuf.Duration + (*OperationMetadata)(nil), // 191: google.cloud.visionai.v1.OperationMetadata + (*anypb.Any)(nil), // 192: google.protobuf.Any + (*structpb.Struct)(nil), // 193: google.protobuf.Struct + (*datetime.DateTime)(nil), // 194: google.type.DateTime + (*status.Status)(nil), // 195: google.rpc.Status + (*longrunningpb.Operation)(nil), // 196: google.longrunning.Operation + (*emptypb.Empty)(nil), // 197: google.protobuf.Empty +} +var file_google_cloud_visionai_v1_warehouse_proto_depIdxs = []int32{ + 26, // 0: google.cloud.visionai.v1.CreateAssetRequest.asset:type_name -> google.cloud.visionai.v1.Asset + 26, // 1: google.cloud.visionai.v1.ListAssetsResponse.assets:type_name -> google.cloud.visionai.v1.Asset + 26, // 2: google.cloud.visionai.v1.UpdateAssetRequest.asset:type_name -> google.cloud.visionai.v1.Asset + 188, // 3: google.cloud.visionai.v1.UpdateAssetRequest.update_mask:type_name -> google.protobuf.FieldMask + 166, // 4: google.cloud.visionai.v1.AssetSource.asset_gcs_source:type_name -> google.cloud.visionai.v1.AssetSource.AssetGcsSource + 167, // 5: google.cloud.visionai.v1.AssetSource.asset_content_data:type_name -> google.cloud.visionai.v1.AssetSource.AssetContentData + 20, // 6: google.cloud.visionai.v1.UploadAssetRequest.asset_source:type_name -> google.cloud.visionai.v1.AssetSource + 189, // 7: google.cloud.visionai.v1.UploadAssetMetadata.start_time:type_name -> google.protobuf.Timestamp + 189, // 8: google.cloud.visionai.v1.UploadAssetMetadata.update_time:type_name -> google.protobuf.Timestamp + 190, // 9: google.cloud.visionai.v1.Asset.ttl:type_name -> google.protobuf.Duration + 166, // 10: google.cloud.visionai.v1.Asset.asset_gcs_source:type_name -> google.cloud.visionai.v1.AssetSource.AssetGcsSource + 168, // 11: google.cloud.visionai.v1.AnalyzeAssetMetadata.analysis_status:type_name -> google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus + 189, // 12: google.cloud.visionai.v1.AnalyzeAssetMetadata.start_time:type_name -> google.protobuf.Timestamp + 189, // 13: google.cloud.visionai.v1.AnalyzeAssetMetadata.update_time:type_name -> google.protobuf.Timestamp + 2, // 14: google.cloud.visionai.v1.IndexingStatus.state:type_name -> google.cloud.visionai.v1.IndexingStatus.State + 30, // 15: google.cloud.visionai.v1.IndexAssetMetadata.status:type_name -> google.cloud.visionai.v1.IndexingStatus + 189, // 16: google.cloud.visionai.v1.IndexAssetMetadata.start_time:type_name -> google.protobuf.Timestamp + 189, // 17: google.cloud.visionai.v1.IndexAssetMetadata.update_time:type_name -> google.protobuf.Timestamp + 30, // 18: google.cloud.visionai.v1.RemoveIndexAssetMetadata.indexing_status:type_name -> google.cloud.visionai.v1.IndexingStatus + 189, // 19: google.cloud.visionai.v1.RemoveIndexAssetMetadata.start_time:type_name -> google.protobuf.Timestamp + 189, // 20: google.cloud.visionai.v1.RemoveIndexAssetMetadata.update_time:type_name -> google.protobuf.Timestamp + 189, // 21: google.cloud.visionai.v1.IndexedAsset.create_time:type_name -> google.protobuf.Timestamp + 189, // 22: google.cloud.visionai.v1.IndexedAsset.update_time:type_name -> google.protobuf.Timestamp + 37, // 23: google.cloud.visionai.v1.ViewIndexedAssetsResponse.indexed_assets:type_name -> google.cloud.visionai.v1.IndexedAsset + 71, // 24: google.cloud.visionai.v1.CreateCorpusRequest.corpus:type_name -> google.cloud.visionai.v1.Corpus + 189, // 25: google.cloud.visionai.v1.CreateCorpusMetadata.create_time:type_name -> google.protobuf.Timestamp + 189, // 26: google.cloud.visionai.v1.CreateCorpusMetadata.update_time:type_name -> google.protobuf.Timestamp + 3, // 27: google.cloud.visionai.v1.SearchCapability.type:type_name -> google.cloud.visionai.v1.SearchCapability.Type + 42, // 28: google.cloud.visionai.v1.SearchCapabilitySetting.search_capabilities:type_name -> google.cloud.visionai.v1.SearchCapability + 191, // 29: google.cloud.visionai.v1.CreateCollectionMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 58, // 30: google.cloud.visionai.v1.CreateCollectionRequest.collection:type_name -> google.cloud.visionai.v1.Collection + 191, // 31: google.cloud.visionai.v1.DeleteCollectionMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 58, // 32: google.cloud.visionai.v1.UpdateCollectionRequest.collection:type_name -> google.cloud.visionai.v1.Collection + 188, // 33: google.cloud.visionai.v1.UpdateCollectionRequest.update_mask:type_name -> google.protobuf.FieldMask + 58, // 34: google.cloud.visionai.v1.ListCollectionsResponse.collections:type_name -> google.cloud.visionai.v1.Collection + 59, // 35: google.cloud.visionai.v1.AddCollectionItemRequest.item:type_name -> google.cloud.visionai.v1.CollectionItem + 59, // 36: google.cloud.visionai.v1.AddCollectionItemResponse.item:type_name -> google.cloud.visionai.v1.CollectionItem + 59, // 37: google.cloud.visionai.v1.RemoveCollectionItemRequest.item:type_name -> google.cloud.visionai.v1.CollectionItem + 59, // 38: google.cloud.visionai.v1.RemoveCollectionItemResponse.item:type_name -> google.cloud.visionai.v1.CollectionItem + 59, // 39: google.cloud.visionai.v1.ViewCollectionItemsResponse.items:type_name -> google.cloud.visionai.v1.CollectionItem + 4, // 40: google.cloud.visionai.v1.CollectionItem.type:type_name -> google.cloud.visionai.v1.CollectionItem.Type + 69, // 41: google.cloud.visionai.v1.CreateIndexRequest.index:type_name -> google.cloud.visionai.v1.Index + 191, // 42: google.cloud.visionai.v1.CreateIndexMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 69, // 43: google.cloud.visionai.v1.UpdateIndexRequest.index:type_name -> google.cloud.visionai.v1.Index + 188, // 44: google.cloud.visionai.v1.UpdateIndexRequest.update_mask:type_name -> google.protobuf.FieldMask + 191, // 45: google.cloud.visionai.v1.UpdateIndexMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 69, // 46: google.cloud.visionai.v1.ListIndexesResponse.indexes:type_name -> google.cloud.visionai.v1.Index + 5, // 47: google.cloud.visionai.v1.Index.state:type_name -> google.cloud.visionai.v1.Index.State + 189, // 48: google.cloud.visionai.v1.Index.create_time:type_name -> google.protobuf.Timestamp + 189, // 49: google.cloud.visionai.v1.Index.update_time:type_name -> google.protobuf.Timestamp + 70, // 50: google.cloud.visionai.v1.Index.deployed_indexes:type_name -> google.cloud.visionai.v1.DeployedIndexReference + 190, // 51: google.cloud.visionai.v1.Corpus.default_ttl:type_name -> google.protobuf.Duration + 6, // 52: google.cloud.visionai.v1.Corpus.type:type_name -> google.cloud.visionai.v1.Corpus.Type + 43, // 53: google.cloud.visionai.v1.Corpus.search_capability_setting:type_name -> google.cloud.visionai.v1.SearchCapabilitySetting + 71, // 54: google.cloud.visionai.v1.UpdateCorpusRequest.corpus:type_name -> google.cloud.visionai.v1.Corpus + 188, // 55: google.cloud.visionai.v1.UpdateCorpusRequest.update_mask:type_name -> google.protobuf.FieldMask + 71, // 56: google.cloud.visionai.v1.ListCorporaResponse.corpora:type_name -> google.cloud.visionai.v1.Corpus + 191, // 57: google.cloud.visionai.v1.AnalyzeCorpusMetadata.metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 81, // 58: google.cloud.visionai.v1.CreateDataSchemaRequest.data_schema:type_name -> google.cloud.visionai.v1.DataSchema + 82, // 59: google.cloud.visionai.v1.DataSchema.schema_details:type_name -> google.cloud.visionai.v1.DataSchemaDetails + 7, // 60: google.cloud.visionai.v1.DataSchemaDetails.type:type_name -> google.cloud.visionai.v1.DataSchemaDetails.DataType + 169, // 61: google.cloud.visionai.v1.DataSchemaDetails.proto_any_config:type_name -> google.cloud.visionai.v1.DataSchemaDetails.ProtoAnyConfig + 170, // 62: google.cloud.visionai.v1.DataSchemaDetails.list_config:type_name -> google.cloud.visionai.v1.DataSchemaDetails.ListConfig + 171, // 63: google.cloud.visionai.v1.DataSchemaDetails.customized_struct_config:type_name -> google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig + 8, // 64: google.cloud.visionai.v1.DataSchemaDetails.granularity:type_name -> google.cloud.visionai.v1.DataSchemaDetails.Granularity + 172, // 65: google.cloud.visionai.v1.DataSchemaDetails.search_strategy:type_name -> google.cloud.visionai.v1.DataSchemaDetails.SearchStrategy + 81, // 66: google.cloud.visionai.v1.UpdateDataSchemaRequest.data_schema:type_name -> google.cloud.visionai.v1.DataSchema + 188, // 67: google.cloud.visionai.v1.UpdateDataSchemaRequest.update_mask:type_name -> google.protobuf.FieldMask + 81, // 68: google.cloud.visionai.v1.ListDataSchemasResponse.data_schemas:type_name -> google.cloud.visionai.v1.DataSchema + 89, // 69: google.cloud.visionai.v1.CreateAnnotationRequest.annotation:type_name -> google.cloud.visionai.v1.Annotation + 90, // 70: google.cloud.visionai.v1.Annotation.user_specified_annotation:type_name -> google.cloud.visionai.v1.UserSpecifiedAnnotation + 92, // 71: google.cloud.visionai.v1.UserSpecifiedAnnotation.value:type_name -> google.cloud.visionai.v1.AnnotationValue + 165, // 72: google.cloud.visionai.v1.UserSpecifiedAnnotation.partition:type_name -> google.cloud.visionai.v1.Partition + 91, // 73: google.cloud.visionai.v1.AnnotationValue.geo_coordinate:type_name -> google.cloud.visionai.v1.GeoCoordinate + 192, // 74: google.cloud.visionai.v1.AnnotationValue.proto_any_value:type_name -> google.protobuf.Any + 193, // 75: google.cloud.visionai.v1.AnnotationValue.customized_struct_data_value:type_name -> google.protobuf.Struct + 93, // 76: google.cloud.visionai.v1.AnnotationValue.list_value:type_name -> google.cloud.visionai.v1.AnnotationList + 94, // 77: google.cloud.visionai.v1.AnnotationValue.customized_struct_value:type_name -> google.cloud.visionai.v1.AnnotationCustomizedStruct + 92, // 78: google.cloud.visionai.v1.AnnotationList.values:type_name -> google.cloud.visionai.v1.AnnotationValue + 174, // 79: google.cloud.visionai.v1.AnnotationCustomizedStruct.elements:type_name -> google.cloud.visionai.v1.AnnotationCustomizedStruct.ElementsEntry + 89, // 80: google.cloud.visionai.v1.ListAnnotationsResponse.annotations:type_name -> google.cloud.visionai.v1.Annotation + 89, // 81: google.cloud.visionai.v1.UpdateAnnotationRequest.annotation:type_name -> google.cloud.visionai.v1.Annotation + 188, // 82: google.cloud.visionai.v1.UpdateAnnotationRequest.update_mask:type_name -> google.protobuf.FieldMask + 191, // 83: google.cloud.visionai.v1.ImportAssetsMetadata.metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 109, // 84: google.cloud.visionai.v1.CreateSearchConfigRequest.search_config:type_name -> google.cloud.visionai.v1.SearchConfig + 109, // 85: google.cloud.visionai.v1.UpdateSearchConfigRequest.search_config:type_name -> google.cloud.visionai.v1.SearchConfig + 188, // 86: google.cloud.visionai.v1.UpdateSearchConfigRequest.update_mask:type_name -> google.protobuf.FieldMask + 109, // 87: google.cloud.visionai.v1.ListSearchConfigsResponse.search_configs:type_name -> google.cloud.visionai.v1.SearchConfig + 127, // 88: google.cloud.visionai.v1.SearchConfig.facet_property:type_name -> google.cloud.visionai.v1.FacetProperty + 135, // 89: google.cloud.visionai.v1.SearchConfig.search_criteria_property:type_name -> google.cloud.visionai.v1.SearchCriteriaProperty + 126, // 90: google.cloud.visionai.v1.IndexEndpoint.deployed_index:type_name -> google.cloud.visionai.v1.DeployedIndex + 10, // 91: google.cloud.visionai.v1.IndexEndpoint.state:type_name -> google.cloud.visionai.v1.IndexEndpoint.State + 175, // 92: google.cloud.visionai.v1.IndexEndpoint.labels:type_name -> google.cloud.visionai.v1.IndexEndpoint.LabelsEntry + 189, // 93: google.cloud.visionai.v1.IndexEndpoint.create_time:type_name -> google.protobuf.Timestamp + 189, // 94: google.cloud.visionai.v1.IndexEndpoint.update_time:type_name -> google.protobuf.Timestamp + 110, // 95: google.cloud.visionai.v1.CreateIndexEndpointRequest.index_endpoint:type_name -> google.cloud.visionai.v1.IndexEndpoint + 191, // 96: google.cloud.visionai.v1.CreateIndexEndpointMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 110, // 97: google.cloud.visionai.v1.ListIndexEndpointsResponse.index_endpoints:type_name -> google.cloud.visionai.v1.IndexEndpoint + 110, // 98: google.cloud.visionai.v1.UpdateIndexEndpointRequest.index_endpoint:type_name -> google.cloud.visionai.v1.IndexEndpoint + 188, // 99: google.cloud.visionai.v1.UpdateIndexEndpointRequest.update_mask:type_name -> google.protobuf.FieldMask + 191, // 100: google.cloud.visionai.v1.UpdateIndexEndpointMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 191, // 101: google.cloud.visionai.v1.DeleteIndexEndpointMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 126, // 102: google.cloud.visionai.v1.DeployIndexRequest.deployed_index:type_name -> google.cloud.visionai.v1.DeployedIndex + 191, // 103: google.cloud.visionai.v1.DeployIndexMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 191, // 104: google.cloud.visionai.v1.UndeployIndexMetadata.operation_metadata:type_name -> google.cloud.visionai.v1.OperationMetadata + 176, // 105: google.cloud.visionai.v1.FacetProperty.fixed_range_bucket_spec:type_name -> google.cloud.visionai.v1.FacetProperty.FixedRangeBucketSpec + 177, // 106: google.cloud.visionai.v1.FacetProperty.custom_range_bucket_spec:type_name -> google.cloud.visionai.v1.FacetProperty.CustomRangeBucketSpec + 178, // 107: google.cloud.visionai.v1.FacetProperty.datetime_bucket_spec:type_name -> google.cloud.visionai.v1.FacetProperty.DateTimeBucketSpec + 0, // 108: google.cloud.visionai.v1.FacetProperty.bucket_type:type_name -> google.cloud.visionai.v1.FacetBucketType + 128, // 109: google.cloud.visionai.v1.CreateSearchHypernymRequest.search_hypernym:type_name -> google.cloud.visionai.v1.SearchHypernym + 128, // 110: google.cloud.visionai.v1.UpdateSearchHypernymRequest.search_hypernym:type_name -> google.cloud.visionai.v1.SearchHypernym + 188, // 111: google.cloud.visionai.v1.UpdateSearchHypernymRequest.update_mask:type_name -> google.protobuf.FieldMask + 128, // 112: google.cloud.visionai.v1.ListSearchHypernymsResponse.search_hypernyms:type_name -> google.cloud.visionai.v1.SearchHypernym + 194, // 113: google.cloud.visionai.v1.FacetValue.datetime_value:type_name -> google.type.DateTime + 136, // 114: google.cloud.visionai.v1.FacetBucket.value:type_name -> google.cloud.visionai.v1.FacetValue + 179, // 115: google.cloud.visionai.v1.FacetBucket.range:type_name -> google.cloud.visionai.v1.FacetBucket.Range + 137, // 116: google.cloud.visionai.v1.FacetGroup.buckets:type_name -> google.cloud.visionai.v1.FacetBucket + 0, // 117: google.cloud.visionai.v1.FacetGroup.bucket_type:type_name -> google.cloud.visionai.v1.FacetBucketType + 180, // 118: google.cloud.visionai.v1.IngestAssetRequest.config:type_name -> google.cloud.visionai.v1.IngestAssetRequest.Config + 181, // 119: google.cloud.visionai.v1.IngestAssetRequest.time_indexed_data:type_name -> google.cloud.visionai.v1.IngestAssetRequest.TimeIndexedData + 185, // 120: google.cloud.visionai.v1.IngestAssetResponse.successfully_ingested_partition:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 185, // 121: google.cloud.visionai.v1.ClipAssetRequest.temporal_partition:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 183, // 122: google.cloud.visionai.v1.ClipAssetResponse.time_indexed_uris:type_name -> google.cloud.visionai.v1.ClipAssetResponse.TimeIndexedUri + 185, // 123: google.cloud.visionai.v1.GenerateHlsUriRequest.temporal_partitions:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 185, // 124: google.cloud.visionai.v1.GenerateHlsUriResponse.temporal_partitions:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 148, // 125: google.cloud.visionai.v1.SearchAssetsRequest.schema_key_sorting_strategy:type_name -> google.cloud.visionai.v1.SchemaKeySortingStrategy + 160, // 126: google.cloud.visionai.v1.SearchAssetsRequest.content_time_ranges:type_name -> google.cloud.visionai.v1.DateTimeRangeArray + 164, // 127: google.cloud.visionai.v1.SearchAssetsRequest.criteria:type_name -> google.cloud.visionai.v1.Criteria + 138, // 128: google.cloud.visionai.v1.SearchAssetsRequest.facet_selections:type_name -> google.cloud.visionai.v1.FacetGroup + 147, // 129: google.cloud.visionai.v1.SearchIndexEndpointRequest.image_query:type_name -> google.cloud.visionai.v1.ImageQuery + 164, // 130: google.cloud.visionai.v1.SearchIndexEndpointRequest.criteria:type_name -> google.cloud.visionai.v1.Criteria + 164, // 131: google.cloud.visionai.v1.SearchIndexEndpointRequest.exclusion_criteria:type_name -> google.cloud.visionai.v1.Criteria + 184, // 132: google.cloud.visionai.v1.SchemaKeySortingStrategy.options:type_name -> google.cloud.visionai.v1.SchemaKeySortingStrategy.Option + 164, // 133: google.cloud.visionai.v1.AnnotationMatchingResult.criteria:type_name -> google.cloud.visionai.v1.Criteria + 89, // 134: google.cloud.visionai.v1.AnnotationMatchingResult.matched_annotations:type_name -> google.cloud.visionai.v1.Annotation + 195, // 135: google.cloud.visionai.v1.AnnotationMatchingResult.status:type_name -> google.rpc.Status + 185, // 136: google.cloud.visionai.v1.SearchResultItem.segments:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 185, // 137: google.cloud.visionai.v1.SearchResultItem.segment:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 89, // 138: google.cloud.visionai.v1.SearchResultItem.requested_annotations:type_name -> google.cloud.visionai.v1.Annotation + 150, // 139: google.cloud.visionai.v1.SearchResultItem.annotation_matching_results:type_name -> google.cloud.visionai.v1.AnnotationMatchingResult + 151, // 140: google.cloud.visionai.v1.SearchAssetsResponse.search_result_items:type_name -> google.cloud.visionai.v1.SearchResultItem + 138, // 141: google.cloud.visionai.v1.SearchAssetsResponse.facet_results:type_name -> google.cloud.visionai.v1.FacetGroup + 151, // 142: google.cloud.visionai.v1.SearchIndexEndpointResponse.search_result_items:type_name -> google.cloud.visionai.v1.SearchResultItem + 154, // 143: google.cloud.visionai.v1.IntRangeArray.int_ranges:type_name -> google.cloud.visionai.v1.IntRange + 155, // 144: google.cloud.visionai.v1.FloatRangeArray.float_ranges:type_name -> google.cloud.visionai.v1.FloatRange + 194, // 145: google.cloud.visionai.v1.DateTimeRange.start:type_name -> google.type.DateTime + 194, // 146: google.cloud.visionai.v1.DateTimeRange.end:type_name -> google.type.DateTime + 159, // 147: google.cloud.visionai.v1.DateTimeRangeArray.date_time_ranges:type_name -> google.cloud.visionai.v1.DateTimeRange + 161, // 148: google.cloud.visionai.v1.GeoLocationArray.circle_areas:type_name -> google.cloud.visionai.v1.CircleArea + 156, // 149: google.cloud.visionai.v1.Criteria.text_array:type_name -> google.cloud.visionai.v1.StringArray + 157, // 150: google.cloud.visionai.v1.Criteria.int_range_array:type_name -> google.cloud.visionai.v1.IntRangeArray + 158, // 151: google.cloud.visionai.v1.Criteria.float_range_array:type_name -> google.cloud.visionai.v1.FloatRangeArray + 160, // 152: google.cloud.visionai.v1.Criteria.date_time_range_array:type_name -> google.cloud.visionai.v1.DateTimeRangeArray + 162, // 153: google.cloud.visionai.v1.Criteria.geo_location_array:type_name -> google.cloud.visionai.v1.GeoLocationArray + 163, // 154: google.cloud.visionai.v1.Criteria.bool_value:type_name -> google.cloud.visionai.v1.BoolValue + 185, // 155: google.cloud.visionai.v1.Partition.temporal_partition:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 186, // 156: google.cloud.visionai.v1.Partition.spatial_partition:type_name -> google.cloud.visionai.v1.Partition.SpatialPartition + 187, // 157: google.cloud.visionai.v1.Partition.relative_temporal_partition:type_name -> google.cloud.visionai.v1.Partition.RelativeTemporalPartition + 1, // 158: google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus.state:type_name -> google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus.State + 42, // 159: google.cloud.visionai.v1.AnalyzeAssetMetadata.AnalysisStatus.search_capability:type_name -> google.cloud.visionai.v1.SearchCapability + 82, // 160: google.cloud.visionai.v1.DataSchemaDetails.ListConfig.value_schema:type_name -> google.cloud.visionai.v1.DataSchemaDetails + 173, // 161: google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig.field_schemas:type_name -> google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig.FieldSchemasEntry + 9, // 162: google.cloud.visionai.v1.DataSchemaDetails.SearchStrategy.search_strategy_type:type_name -> google.cloud.visionai.v1.DataSchemaDetails.SearchStrategy.SearchStrategyType + 82, // 163: google.cloud.visionai.v1.DataSchemaDetails.CustomizedStructConfig.FieldSchemasEntry.value:type_name -> google.cloud.visionai.v1.DataSchemaDetails + 92, // 164: google.cloud.visionai.v1.AnnotationCustomizedStruct.ElementsEntry.value:type_name -> google.cloud.visionai.v1.AnnotationValue + 136, // 165: google.cloud.visionai.v1.FacetProperty.FixedRangeBucketSpec.bucket_start:type_name -> google.cloud.visionai.v1.FacetValue + 136, // 166: google.cloud.visionai.v1.FacetProperty.FixedRangeBucketSpec.bucket_granularity:type_name -> google.cloud.visionai.v1.FacetValue + 136, // 167: google.cloud.visionai.v1.FacetProperty.CustomRangeBucketSpec.endpoints:type_name -> google.cloud.visionai.v1.FacetValue + 11, // 168: google.cloud.visionai.v1.FacetProperty.DateTimeBucketSpec.granularity:type_name -> google.cloud.visionai.v1.FacetProperty.DateTimeBucketSpec.Granularity + 136, // 169: google.cloud.visionai.v1.FacetBucket.Range.start:type_name -> google.cloud.visionai.v1.FacetValue + 136, // 170: google.cloud.visionai.v1.FacetBucket.Range.end:type_name -> google.cloud.visionai.v1.FacetValue + 182, // 171: google.cloud.visionai.v1.IngestAssetRequest.Config.video_type:type_name -> google.cloud.visionai.v1.IngestAssetRequest.Config.VideoType + 185, // 172: google.cloud.visionai.v1.IngestAssetRequest.TimeIndexedData.temporal_partition:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 12, // 173: google.cloud.visionai.v1.IngestAssetRequest.Config.VideoType.container_format:type_name -> google.cloud.visionai.v1.IngestAssetRequest.Config.VideoType.ContainerFormat + 185, // 174: google.cloud.visionai.v1.ClipAssetResponse.TimeIndexedUri.temporal_partition:type_name -> google.cloud.visionai.v1.Partition.TemporalPartition + 13, // 175: google.cloud.visionai.v1.SchemaKeySortingStrategy.Option.aggregate_method:type_name -> google.cloud.visionai.v1.SchemaKeySortingStrategy.Option.AggregateMethod + 189, // 176: google.cloud.visionai.v1.Partition.TemporalPartition.start_time:type_name -> google.protobuf.Timestamp + 189, // 177: google.cloud.visionai.v1.Partition.TemporalPartition.end_time:type_name -> google.protobuf.Timestamp + 190, // 178: google.cloud.visionai.v1.Partition.RelativeTemporalPartition.start_offset:type_name -> google.protobuf.Duration + 190, // 179: google.cloud.visionai.v1.Partition.RelativeTemporalPartition.end_offset:type_name -> google.protobuf.Duration + 14, // 180: google.cloud.visionai.v1.Warehouse.CreateAsset:input_type -> google.cloud.visionai.v1.CreateAssetRequest + 18, // 181: google.cloud.visionai.v1.Warehouse.UpdateAsset:input_type -> google.cloud.visionai.v1.UpdateAssetRequest + 15, // 182: google.cloud.visionai.v1.Warehouse.GetAsset:input_type -> google.cloud.visionai.v1.GetAssetRequest + 16, // 183: google.cloud.visionai.v1.Warehouse.ListAssets:input_type -> google.cloud.visionai.v1.ListAssetsRequest + 19, // 184: google.cloud.visionai.v1.Warehouse.DeleteAsset:input_type -> google.cloud.visionai.v1.DeleteAssetRequest + 21, // 185: google.cloud.visionai.v1.Warehouse.UploadAsset:input_type -> google.cloud.visionai.v1.UploadAssetRequest + 24, // 186: google.cloud.visionai.v1.Warehouse.GenerateRetrievalUrl:input_type -> google.cloud.visionai.v1.GenerateRetrievalUrlRequest + 27, // 187: google.cloud.visionai.v1.Warehouse.AnalyzeAsset:input_type -> google.cloud.visionai.v1.AnalyzeAssetRequest + 31, // 188: google.cloud.visionai.v1.Warehouse.IndexAsset:input_type -> google.cloud.visionai.v1.IndexAssetRequest + 34, // 189: google.cloud.visionai.v1.Warehouse.RemoveIndexAsset:input_type -> google.cloud.visionai.v1.RemoveIndexAssetRequest + 38, // 190: google.cloud.visionai.v1.Warehouse.ViewIndexedAssets:input_type -> google.cloud.visionai.v1.ViewIndexedAssetsRequest + 60, // 191: google.cloud.visionai.v1.Warehouse.CreateIndex:input_type -> google.cloud.visionai.v1.CreateIndexRequest + 62, // 192: google.cloud.visionai.v1.Warehouse.UpdateIndex:input_type -> google.cloud.visionai.v1.UpdateIndexRequest + 64, // 193: google.cloud.visionai.v1.Warehouse.GetIndex:input_type -> google.cloud.visionai.v1.GetIndexRequest + 65, // 194: google.cloud.visionai.v1.Warehouse.ListIndexes:input_type -> google.cloud.visionai.v1.ListIndexesRequest + 67, // 195: google.cloud.visionai.v1.Warehouse.DeleteIndex:input_type -> google.cloud.visionai.v1.DeleteIndexRequest + 40, // 196: google.cloud.visionai.v1.Warehouse.CreateCorpus:input_type -> google.cloud.visionai.v1.CreateCorpusRequest + 72, // 197: google.cloud.visionai.v1.Warehouse.GetCorpus:input_type -> google.cloud.visionai.v1.GetCorpusRequest + 73, // 198: google.cloud.visionai.v1.Warehouse.UpdateCorpus:input_type -> google.cloud.visionai.v1.UpdateCorpusRequest + 74, // 199: google.cloud.visionai.v1.Warehouse.ListCorpora:input_type -> google.cloud.visionai.v1.ListCorporaRequest + 76, // 200: google.cloud.visionai.v1.Warehouse.DeleteCorpus:input_type -> google.cloud.visionai.v1.DeleteCorpusRequest + 77, // 201: google.cloud.visionai.v1.Warehouse.AnalyzeCorpus:input_type -> google.cloud.visionai.v1.AnalyzeCorpusRequest + 80, // 202: google.cloud.visionai.v1.Warehouse.CreateDataSchema:input_type -> google.cloud.visionai.v1.CreateDataSchemaRequest + 83, // 203: google.cloud.visionai.v1.Warehouse.UpdateDataSchema:input_type -> google.cloud.visionai.v1.UpdateDataSchemaRequest + 84, // 204: google.cloud.visionai.v1.Warehouse.GetDataSchema:input_type -> google.cloud.visionai.v1.GetDataSchemaRequest + 85, // 205: google.cloud.visionai.v1.Warehouse.DeleteDataSchema:input_type -> google.cloud.visionai.v1.DeleteDataSchemaRequest + 86, // 206: google.cloud.visionai.v1.Warehouse.ListDataSchemas:input_type -> google.cloud.visionai.v1.ListDataSchemasRequest + 88, // 207: google.cloud.visionai.v1.Warehouse.CreateAnnotation:input_type -> google.cloud.visionai.v1.CreateAnnotationRequest + 97, // 208: google.cloud.visionai.v1.Warehouse.GetAnnotation:input_type -> google.cloud.visionai.v1.GetAnnotationRequest + 95, // 209: google.cloud.visionai.v1.Warehouse.ListAnnotations:input_type -> google.cloud.visionai.v1.ListAnnotationsRequest + 98, // 210: google.cloud.visionai.v1.Warehouse.UpdateAnnotation:input_type -> google.cloud.visionai.v1.UpdateAnnotationRequest + 99, // 211: google.cloud.visionai.v1.Warehouse.DeleteAnnotation:input_type -> google.cloud.visionai.v1.DeleteAnnotationRequest + 139, // 212: google.cloud.visionai.v1.Warehouse.IngestAsset:input_type -> google.cloud.visionai.v1.IngestAssetRequest + 141, // 213: google.cloud.visionai.v1.Warehouse.ClipAsset:input_type -> google.cloud.visionai.v1.ClipAssetRequest + 143, // 214: google.cloud.visionai.v1.Warehouse.GenerateHlsUri:input_type -> google.cloud.visionai.v1.GenerateHlsUriRequest + 100, // 215: google.cloud.visionai.v1.Warehouse.ImportAssets:input_type -> google.cloud.visionai.v1.ImportAssetsRequest + 103, // 216: google.cloud.visionai.v1.Warehouse.CreateSearchConfig:input_type -> google.cloud.visionai.v1.CreateSearchConfigRequest + 104, // 217: google.cloud.visionai.v1.Warehouse.UpdateSearchConfig:input_type -> google.cloud.visionai.v1.UpdateSearchConfigRequest + 105, // 218: google.cloud.visionai.v1.Warehouse.GetSearchConfig:input_type -> google.cloud.visionai.v1.GetSearchConfigRequest + 106, // 219: google.cloud.visionai.v1.Warehouse.DeleteSearchConfig:input_type -> google.cloud.visionai.v1.DeleteSearchConfigRequest + 107, // 220: google.cloud.visionai.v1.Warehouse.ListSearchConfigs:input_type -> google.cloud.visionai.v1.ListSearchConfigsRequest + 129, // 221: google.cloud.visionai.v1.Warehouse.CreateSearchHypernym:input_type -> google.cloud.visionai.v1.CreateSearchHypernymRequest + 130, // 222: google.cloud.visionai.v1.Warehouse.UpdateSearchHypernym:input_type -> google.cloud.visionai.v1.UpdateSearchHypernymRequest + 131, // 223: google.cloud.visionai.v1.Warehouse.GetSearchHypernym:input_type -> google.cloud.visionai.v1.GetSearchHypernymRequest + 132, // 224: google.cloud.visionai.v1.Warehouse.DeleteSearchHypernym:input_type -> google.cloud.visionai.v1.DeleteSearchHypernymRequest + 133, // 225: google.cloud.visionai.v1.Warehouse.ListSearchHypernyms:input_type -> google.cloud.visionai.v1.ListSearchHypernymsRequest + 145, // 226: google.cloud.visionai.v1.Warehouse.SearchAssets:input_type -> google.cloud.visionai.v1.SearchAssetsRequest + 146, // 227: google.cloud.visionai.v1.Warehouse.SearchIndexEndpoint:input_type -> google.cloud.visionai.v1.SearchIndexEndpointRequest + 111, // 228: google.cloud.visionai.v1.Warehouse.CreateIndexEndpoint:input_type -> google.cloud.visionai.v1.CreateIndexEndpointRequest + 113, // 229: google.cloud.visionai.v1.Warehouse.GetIndexEndpoint:input_type -> google.cloud.visionai.v1.GetIndexEndpointRequest + 114, // 230: google.cloud.visionai.v1.Warehouse.ListIndexEndpoints:input_type -> google.cloud.visionai.v1.ListIndexEndpointsRequest + 116, // 231: google.cloud.visionai.v1.Warehouse.UpdateIndexEndpoint:input_type -> google.cloud.visionai.v1.UpdateIndexEndpointRequest + 118, // 232: google.cloud.visionai.v1.Warehouse.DeleteIndexEndpoint:input_type -> google.cloud.visionai.v1.DeleteIndexEndpointRequest + 120, // 233: google.cloud.visionai.v1.Warehouse.DeployIndex:input_type -> google.cloud.visionai.v1.DeployIndexRequest + 124, // 234: google.cloud.visionai.v1.Warehouse.UndeployIndex:input_type -> google.cloud.visionai.v1.UndeployIndexRequest + 45, // 235: google.cloud.visionai.v1.Warehouse.CreateCollection:input_type -> google.cloud.visionai.v1.CreateCollectionRequest + 47, // 236: google.cloud.visionai.v1.Warehouse.DeleteCollection:input_type -> google.cloud.visionai.v1.DeleteCollectionRequest + 48, // 237: google.cloud.visionai.v1.Warehouse.GetCollection:input_type -> google.cloud.visionai.v1.GetCollectionRequest + 49, // 238: google.cloud.visionai.v1.Warehouse.UpdateCollection:input_type -> google.cloud.visionai.v1.UpdateCollectionRequest + 50, // 239: google.cloud.visionai.v1.Warehouse.ListCollections:input_type -> google.cloud.visionai.v1.ListCollectionsRequest + 52, // 240: google.cloud.visionai.v1.Warehouse.AddCollectionItem:input_type -> google.cloud.visionai.v1.AddCollectionItemRequest + 54, // 241: google.cloud.visionai.v1.Warehouse.RemoveCollectionItem:input_type -> google.cloud.visionai.v1.RemoveCollectionItemRequest + 56, // 242: google.cloud.visionai.v1.Warehouse.ViewCollectionItems:input_type -> google.cloud.visionai.v1.ViewCollectionItemsRequest + 26, // 243: google.cloud.visionai.v1.Warehouse.CreateAsset:output_type -> google.cloud.visionai.v1.Asset + 26, // 244: google.cloud.visionai.v1.Warehouse.UpdateAsset:output_type -> google.cloud.visionai.v1.Asset + 26, // 245: google.cloud.visionai.v1.Warehouse.GetAsset:output_type -> google.cloud.visionai.v1.Asset + 17, // 246: google.cloud.visionai.v1.Warehouse.ListAssets:output_type -> google.cloud.visionai.v1.ListAssetsResponse + 196, // 247: google.cloud.visionai.v1.Warehouse.DeleteAsset:output_type -> google.longrunning.Operation + 196, // 248: google.cloud.visionai.v1.Warehouse.UploadAsset:output_type -> google.longrunning.Operation + 25, // 249: google.cloud.visionai.v1.Warehouse.GenerateRetrievalUrl:output_type -> google.cloud.visionai.v1.GenerateRetrievalUrlResponse + 196, // 250: google.cloud.visionai.v1.Warehouse.AnalyzeAsset:output_type -> google.longrunning.Operation + 196, // 251: google.cloud.visionai.v1.Warehouse.IndexAsset:output_type -> google.longrunning.Operation + 196, // 252: google.cloud.visionai.v1.Warehouse.RemoveIndexAsset:output_type -> google.longrunning.Operation + 39, // 253: google.cloud.visionai.v1.Warehouse.ViewIndexedAssets:output_type -> google.cloud.visionai.v1.ViewIndexedAssetsResponse + 196, // 254: google.cloud.visionai.v1.Warehouse.CreateIndex:output_type -> google.longrunning.Operation + 196, // 255: google.cloud.visionai.v1.Warehouse.UpdateIndex:output_type -> google.longrunning.Operation + 69, // 256: google.cloud.visionai.v1.Warehouse.GetIndex:output_type -> google.cloud.visionai.v1.Index + 66, // 257: google.cloud.visionai.v1.Warehouse.ListIndexes:output_type -> google.cloud.visionai.v1.ListIndexesResponse + 196, // 258: google.cloud.visionai.v1.Warehouse.DeleteIndex:output_type -> google.longrunning.Operation + 196, // 259: google.cloud.visionai.v1.Warehouse.CreateCorpus:output_type -> google.longrunning.Operation + 71, // 260: google.cloud.visionai.v1.Warehouse.GetCorpus:output_type -> google.cloud.visionai.v1.Corpus + 71, // 261: google.cloud.visionai.v1.Warehouse.UpdateCorpus:output_type -> google.cloud.visionai.v1.Corpus + 75, // 262: google.cloud.visionai.v1.Warehouse.ListCorpora:output_type -> google.cloud.visionai.v1.ListCorporaResponse + 197, // 263: google.cloud.visionai.v1.Warehouse.DeleteCorpus:output_type -> google.protobuf.Empty + 196, // 264: google.cloud.visionai.v1.Warehouse.AnalyzeCorpus:output_type -> google.longrunning.Operation + 81, // 265: google.cloud.visionai.v1.Warehouse.CreateDataSchema:output_type -> google.cloud.visionai.v1.DataSchema + 81, // 266: google.cloud.visionai.v1.Warehouse.UpdateDataSchema:output_type -> google.cloud.visionai.v1.DataSchema + 81, // 267: google.cloud.visionai.v1.Warehouse.GetDataSchema:output_type -> google.cloud.visionai.v1.DataSchema + 197, // 268: google.cloud.visionai.v1.Warehouse.DeleteDataSchema:output_type -> google.protobuf.Empty + 87, // 269: google.cloud.visionai.v1.Warehouse.ListDataSchemas:output_type -> google.cloud.visionai.v1.ListDataSchemasResponse + 89, // 270: google.cloud.visionai.v1.Warehouse.CreateAnnotation:output_type -> google.cloud.visionai.v1.Annotation + 89, // 271: google.cloud.visionai.v1.Warehouse.GetAnnotation:output_type -> google.cloud.visionai.v1.Annotation + 96, // 272: google.cloud.visionai.v1.Warehouse.ListAnnotations:output_type -> google.cloud.visionai.v1.ListAnnotationsResponse + 89, // 273: google.cloud.visionai.v1.Warehouse.UpdateAnnotation:output_type -> google.cloud.visionai.v1.Annotation + 197, // 274: google.cloud.visionai.v1.Warehouse.DeleteAnnotation:output_type -> google.protobuf.Empty + 140, // 275: google.cloud.visionai.v1.Warehouse.IngestAsset:output_type -> google.cloud.visionai.v1.IngestAssetResponse + 142, // 276: google.cloud.visionai.v1.Warehouse.ClipAsset:output_type -> google.cloud.visionai.v1.ClipAssetResponse + 144, // 277: google.cloud.visionai.v1.Warehouse.GenerateHlsUri:output_type -> google.cloud.visionai.v1.GenerateHlsUriResponse + 196, // 278: google.cloud.visionai.v1.Warehouse.ImportAssets:output_type -> google.longrunning.Operation + 109, // 279: google.cloud.visionai.v1.Warehouse.CreateSearchConfig:output_type -> google.cloud.visionai.v1.SearchConfig + 109, // 280: google.cloud.visionai.v1.Warehouse.UpdateSearchConfig:output_type -> google.cloud.visionai.v1.SearchConfig + 109, // 281: google.cloud.visionai.v1.Warehouse.GetSearchConfig:output_type -> google.cloud.visionai.v1.SearchConfig + 197, // 282: google.cloud.visionai.v1.Warehouse.DeleteSearchConfig:output_type -> google.protobuf.Empty + 108, // 283: google.cloud.visionai.v1.Warehouse.ListSearchConfigs:output_type -> google.cloud.visionai.v1.ListSearchConfigsResponse + 128, // 284: google.cloud.visionai.v1.Warehouse.CreateSearchHypernym:output_type -> google.cloud.visionai.v1.SearchHypernym + 128, // 285: google.cloud.visionai.v1.Warehouse.UpdateSearchHypernym:output_type -> google.cloud.visionai.v1.SearchHypernym + 128, // 286: google.cloud.visionai.v1.Warehouse.GetSearchHypernym:output_type -> google.cloud.visionai.v1.SearchHypernym + 197, // 287: google.cloud.visionai.v1.Warehouse.DeleteSearchHypernym:output_type -> google.protobuf.Empty + 134, // 288: google.cloud.visionai.v1.Warehouse.ListSearchHypernyms:output_type -> google.cloud.visionai.v1.ListSearchHypernymsResponse + 152, // 289: google.cloud.visionai.v1.Warehouse.SearchAssets:output_type -> google.cloud.visionai.v1.SearchAssetsResponse + 153, // 290: google.cloud.visionai.v1.Warehouse.SearchIndexEndpoint:output_type -> google.cloud.visionai.v1.SearchIndexEndpointResponse + 196, // 291: google.cloud.visionai.v1.Warehouse.CreateIndexEndpoint:output_type -> google.longrunning.Operation + 110, // 292: google.cloud.visionai.v1.Warehouse.GetIndexEndpoint:output_type -> google.cloud.visionai.v1.IndexEndpoint + 115, // 293: google.cloud.visionai.v1.Warehouse.ListIndexEndpoints:output_type -> google.cloud.visionai.v1.ListIndexEndpointsResponse + 196, // 294: google.cloud.visionai.v1.Warehouse.UpdateIndexEndpoint:output_type -> google.longrunning.Operation + 196, // 295: google.cloud.visionai.v1.Warehouse.DeleteIndexEndpoint:output_type -> google.longrunning.Operation + 196, // 296: google.cloud.visionai.v1.Warehouse.DeployIndex:output_type -> google.longrunning.Operation + 196, // 297: google.cloud.visionai.v1.Warehouse.UndeployIndex:output_type -> google.longrunning.Operation + 196, // 298: google.cloud.visionai.v1.Warehouse.CreateCollection:output_type -> google.longrunning.Operation + 196, // 299: google.cloud.visionai.v1.Warehouse.DeleteCollection:output_type -> google.longrunning.Operation + 58, // 300: google.cloud.visionai.v1.Warehouse.GetCollection:output_type -> google.cloud.visionai.v1.Collection + 58, // 301: google.cloud.visionai.v1.Warehouse.UpdateCollection:output_type -> google.cloud.visionai.v1.Collection + 51, // 302: google.cloud.visionai.v1.Warehouse.ListCollections:output_type -> google.cloud.visionai.v1.ListCollectionsResponse + 53, // 303: google.cloud.visionai.v1.Warehouse.AddCollectionItem:output_type -> google.cloud.visionai.v1.AddCollectionItemResponse + 55, // 304: google.cloud.visionai.v1.Warehouse.RemoveCollectionItem:output_type -> google.cloud.visionai.v1.RemoveCollectionItemResponse + 57, // 305: google.cloud.visionai.v1.Warehouse.ViewCollectionItems:output_type -> google.cloud.visionai.v1.ViewCollectionItemsResponse + 243, // [243:306] is the sub-list for method output_type + 180, // [180:243] is the sub-list for method input_type + 180, // [180:180] is the sub-list for extension type_name + 180, // [180:180] is the sub-list for extension extendee + 0, // [0:180] is the sub-list for field type_name +} + +func init() { file_google_cloud_visionai_v1_warehouse_proto_init() } +func file_google_cloud_visionai_v1_warehouse_proto_init() { + if File_google_cloud_visionai_v1_warehouse_proto != nil { + return + } + file_google_cloud_visionai_v1_common_proto_init() + if !protoimpl.UnsafeEnabled { + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAssetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAssetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssetSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UploadAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UploadAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UploadAssetMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateRetrievalUrlRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateRetrievalUrlResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Asset); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeAssetMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexingStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexAssetMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveIndexAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveIndexAssetMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveIndexAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexedAsset); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewIndexedAssetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewIndexedAssetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCorpusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCorpusMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchCapability); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchCapabilitySetting); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCollectionMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCollectionMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCollectionRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCollectionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCollectionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddCollectionItemRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddCollectionItemResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveCollectionItemRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveCollectionItemResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewCollectionItemsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ViewCollectionItemsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Collection); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CollectionItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateIndexMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateIndexMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteIndexMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Index); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployedIndexReference); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Corpus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCorpusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateCorpusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCorporaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListCorporaResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteCorpusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeCorpusRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeCorpusMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeCorpusResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateDataSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchema); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchemaDetails); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateDataSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDataSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteDataSchemaRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataSchemasRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListDataSchemasResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Annotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSpecifiedAnnotation); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeoCoordinate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationCustomizedStruct); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnnotationsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListAnnotationsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAnnotationRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportAssetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportAssetsMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportAssetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSearchConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSearchConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSearchConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSearchConfigRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSearchConfigsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSearchConfigsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IndexEndpoint); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateIndexEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateIndexEndpointMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetIndexEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexEndpointsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListIndexEndpointsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateIndexEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateIndexEndpointMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteIndexEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteIndexEndpointMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployIndexResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployIndexMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UndeployIndexMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UndeployIndexRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UndeployIndexResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeployedIndex); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetProperty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchHypernym); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateSearchHypernymRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateSearchHypernymRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSearchHypernymRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteSearchHypernymRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSearchHypernymsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListSearchHypernymsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchCriteriaProperty); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetBucket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetGroup); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngestAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngestAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClipAssetRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClipAssetResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateHlsUriRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GenerateHlsUriResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchAssetsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchIndexEndpointRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageQuery); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchemaKeySortingStrategy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteAssetMetadata); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnnotationMatchingResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchResultItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchAssetsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchIndexEndpointResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StringArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntRangeArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FloatRangeArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DateTimeRange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DateTimeRangeArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CircleArea); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GeoLocationArray); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoolValue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Criteria); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Partition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssetSource_AssetGcsSource); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AssetSource_AssetContentData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnalyzeAssetMetadata_AnalysisStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchemaDetails_ProtoAnyConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchemaDetails_ListConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchemaDetails_CustomizedStructConfig); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DataSchemaDetails_SearchStrategy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetProperty_FixedRangeBucketSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetProperty_CustomRangeBucketSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetProperty_DateTimeBucketSpec); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FacetBucket_Range); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngestAssetRequest_Config); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngestAssetRequest_TimeIndexedData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IngestAssetRequest_Config_VideoType); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ClipAssetResponse_TimeIndexedUri); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchemaKeySortingStrategy_Option); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Partition_TemporalPartition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[172].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Partition_SpatialPartition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[173].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Partition_RelativeTemporalPartition); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[0].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[6].OneofWrappers = []interface{}{ + (*AssetSource_AssetGcsSource_)(nil), + (*AssetSource_AssetContentData_)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[31].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[55].OneofWrappers = []interface{}{ + (*Index_EntireCorpus)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[74].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[78].OneofWrappers = []interface{}{ + (*AnnotationValue_IntValue)(nil), + (*AnnotationValue_FloatValue)(nil), + (*AnnotationValue_StrValue)(nil), + (*AnnotationValue_DatetimeValue)(nil), + (*AnnotationValue_GeoCoordinate)(nil), + (*AnnotationValue_ProtoAnyValue)(nil), + (*AnnotationValue_BoolValue)(nil), + (*AnnotationValue_CustomizedStructDataValue)(nil), + (*AnnotationValue_ListValue)(nil), + (*AnnotationValue_CustomizedStructValue)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[86].OneofWrappers = []interface{}{ + (*ImportAssetsRequest_AssetsGcsUri)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[113].OneofWrappers = []interface{}{ + (*FacetProperty_FixedRangeBucketSpec_)(nil), + (*FacetProperty_CustomRangeBucketSpec_)(nil), + (*FacetProperty_DatetimeBucketSpec)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[115].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[122].OneofWrappers = []interface{}{ + (*FacetValue_StringValue)(nil), + (*FacetValue_IntegerValue)(nil), + (*FacetValue_DatetimeValue)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[123].OneofWrappers = []interface{}{ + (*FacetBucket_Value)(nil), + (*FacetBucket_Range_)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[125].OneofWrappers = []interface{}{ + (*IngestAssetRequest_Config_)(nil), + (*IngestAssetRequest_TimeIndexedData_)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[131].OneofWrappers = []interface{}{ + (*SearchAssetsRequest_SchemaKeySortingStrategy)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[132].OneofWrappers = []interface{}{ + (*SearchIndexEndpointRequest_ImageQuery)(nil), + (*SearchIndexEndpointRequest_TextQuery)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[133].OneofWrappers = []interface{}{ + (*ImageQuery_InputImage)(nil), + (*ImageQuery_Asset)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[140].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[141].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[150].OneofWrappers = []interface{}{ + (*Criteria_TextArray)(nil), + (*Criteria_IntRangeArray)(nil), + (*Criteria_FloatRangeArray)(nil), + (*Criteria_DateTimeRangeArray)(nil), + (*Criteria_GeoLocationArray)(nil), + (*Criteria_BoolValue)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[166].OneofWrappers = []interface{}{ + (*IngestAssetRequest_Config_VideoType_)(nil), + } + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[170].OneofWrappers = []interface{}{} + file_google_cloud_visionai_v1_warehouse_proto_msgTypes[172].OneofWrappers = []interface{}{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_google_cloud_visionai_v1_warehouse_proto_rawDesc, + NumEnums: 14, + NumMessages: 174, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_google_cloud_visionai_v1_warehouse_proto_goTypes, + DependencyIndexes: file_google_cloud_visionai_v1_warehouse_proto_depIdxs, + EnumInfos: file_google_cloud_visionai_v1_warehouse_proto_enumTypes, + MessageInfos: file_google_cloud_visionai_v1_warehouse_proto_msgTypes, + }.Build() + File_google_cloud_visionai_v1_warehouse_proto = out.File + file_google_cloud_visionai_v1_warehouse_proto_rawDesc = nil + file_google_cloud_visionai_v1_warehouse_proto_goTypes = nil + file_google_cloud_visionai_v1_warehouse_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 + +// WarehouseClient is the client API for Warehouse service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type WarehouseClient interface { + // Creates an asset inside corpus. + CreateAsset(ctx context.Context, in *CreateAssetRequest, opts ...grpc.CallOption) (*Asset, error) + // Updates an asset inside corpus. + UpdateAsset(ctx context.Context, in *UpdateAssetRequest, opts ...grpc.CallOption) (*Asset, error) + // Reads an asset inside corpus. + GetAsset(ctx context.Context, in *GetAssetRequest, opts ...grpc.CallOption) (*Asset, error) + // Lists an list of assets inside corpus. + ListAssets(ctx context.Context, in *ListAssetsRequest, opts ...grpc.CallOption) (*ListAssetsResponse, error) + // Deletes asset inside corpus. + DeleteAsset(ctx context.Context, in *DeleteAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Upload asset by specifing the asset Cloud Storage uri. + // For video warehouse, it requires users who call this API have read access + // to the cloud storage file. Once it is uploaded, it can be retrieved by + // GenerateRetrievalUrl API which by default, only can retrieve cloud storage + // files from the same project of the warehouse. To allow retrieval cloud + // storage files that are in a separate project, it requires to find the + // vision ai service account (Go to IAM, check checkbox to show "Include + // Google-provided role grants", search for "Cloud Vision AI Service Agent") + // and grant the read access of the cloud storage files to that service + // account. + UploadAsset(ctx context.Context, in *UploadAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Generates a signed url for downloading the asset. + // For video warehouse, please see comment of UploadAsset about how to allow + // retrieval of cloud storage files in a different project. + GenerateRetrievalUrl(ctx context.Context, in *GenerateRetrievalUrlRequest, opts ...grpc.CallOption) (*GenerateRetrievalUrlResponse, error) + // Analyze asset to power search capability. + AnalyzeAsset(ctx context.Context, in *AnalyzeAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Index one asset for search. + // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND + IndexAsset(ctx context.Context, in *IndexAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Remove one asset's index data for search. + // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND + RemoveIndexAsset(ctx context.Context, in *RemoveIndexAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Lists assets inside an index. + ViewIndexedAssets(ctx context.Context, in *ViewIndexedAssetsRequest, opts ...grpc.CallOption) (*ViewIndexedAssetsResponse, error) + // Creates an Index under the corpus. + CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Updates an Index under the corpus. + // Users can perform a metadata-only update or trigger a full index rebuild + // with different update_mask values. + UpdateIndex(ctx context.Context, in *UpdateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets the details of a single Index under a Corpus. + GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) + // List all Indexes in a given Corpus. + ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) + // Delete a single Index. In order to delete an index, the caller must + // make sure that it is not deployed to any index endpoint. + DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a corpus inside a project. + CreateCorpus(ctx context.Context, in *CreateCorpusRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets corpus details inside a project. + GetCorpus(ctx context.Context, in *GetCorpusRequest, opts ...grpc.CallOption) (*Corpus, error) + // Updates a corpus in a project. + UpdateCorpus(ctx context.Context, in *UpdateCorpusRequest, opts ...grpc.CallOption) (*Corpus, error) + // Lists all corpora in a project. + ListCorpora(ctx context.Context, in *ListCorporaRequest, opts ...grpc.CallOption) (*ListCorporaResponse, error) + // Deletes a corpus only if its empty. + // Returns empty response. + DeleteCorpus(ctx context.Context, in *DeleteCorpusRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Analyzes a corpus. + AnalyzeCorpus(ctx context.Context, in *AnalyzeCorpusRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates data schema inside corpus. + CreateDataSchema(ctx context.Context, in *CreateDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) + // Updates data schema inside corpus. + UpdateDataSchema(ctx context.Context, in *UpdateDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) + // Gets data schema inside corpus. + GetDataSchema(ctx context.Context, in *GetDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) + // Deletes data schema inside corpus. + DeleteDataSchema(ctx context.Context, in *DeleteDataSchemaRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Lists a list of data schemas inside corpus. + ListDataSchemas(ctx context.Context, in *ListDataSchemasRequest, opts ...grpc.CallOption) (*ListDataSchemasResponse, error) + // Creates annotation inside asset. + CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) + // Reads annotation inside asset. + GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) + // Lists a list of annotations inside asset. + ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) + // Updates annotation inside asset. + UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) + // Deletes annotation inside asset. + DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Ingests data for the asset. It is not allowed to ingest a data chunk which + // is already expired according to TTL. + // This method is only available via the gRPC API (not HTTP since + // bi-directional streaming is not supported via HTTP). + IngestAsset(ctx context.Context, opts ...grpc.CallOption) (Warehouse_IngestAssetClient, error) + // Generates clips for downloading. The api takes in a time range, and + // generates a clip of the first content available after start_time and + // before end_time, which may overflow beyond these bounds. + // Returned clips are truncated if the total size of the clips are larger + // than 100MB. + ClipAsset(ctx context.Context, in *ClipAssetRequest, opts ...grpc.CallOption) (*ClipAssetResponse, error) + // Generates a uri for an HLS manifest. The api takes in a collection of time + // ranges, and generates a URI for an HLS manifest that covers all the + // requested time ranges. + GenerateHlsUri(ctx context.Context, in *GenerateHlsUriRequest, opts ...grpc.CallOption) (*GenerateHlsUriResponse, error) + // Imports assets (images plus annotations) from a meta file on cloud storage. + // Each row in the meta file is corresponding to an image (specified by a + // cloud storage uri) and its annotations. + ImportAssets(ctx context.Context, in *ImportAssetsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a search configuration inside a corpus. + // + // Please follow the rules below to create a valid CreateSearchConfigRequest. + // --- General Rules --- + // 1. Request.search_config_id must not be associated with an existing + // SearchConfig. + // 2. Request must contain at least one non-empty search_criteria_property or + // facet_property. + // 3. mapped_fields must not be empty, and must map to existing UGA keys. + // 4. All mapped_fields must be of the same type. + // 5. All mapped_fields must share the same granularity. + // 6. All mapped_fields must share the same semantic SearchConfig match + // options. + // + // For property-specific rules, please reference the comments for + // FacetProperty and SearchCriteriaProperty. + CreateSearchConfig(ctx context.Context, in *CreateSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) + // Updates a search configuration inside a corpus. + // + // Please follow the rules below to create a valid UpdateSearchConfigRequest. + // --- General Rules --- + // 1. Request.search_configuration.name must already exist. + // 2. Request must contain at least one non-empty search_criteria_property or + // facet_property. + // 3. mapped_fields must not be empty, and must map to existing UGA keys. + // 4. All mapped_fields must be of the same type. + // 5. All mapped_fields must share the same granularity. + // 6. All mapped_fields must share the same semantic SearchConfig match + // options. + // + // For property-specific rules, please reference the comments for + // FacetProperty and SearchCriteriaProperty. + UpdateSearchConfig(ctx context.Context, in *UpdateSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) + // Gets a search configuration inside a corpus. + GetSearchConfig(ctx context.Context, in *GetSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) + // Deletes a search configuration inside a corpus. + // + // For a DeleteSearchConfigRequest to be valid, + // Request.search_configuration.name must already exist. + DeleteSearchConfig(ctx context.Context, in *DeleteSearchConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Lists all search configurations inside a corpus. + ListSearchConfigs(ctx context.Context, in *ListSearchConfigsRequest, opts ...grpc.CallOption) (*ListSearchConfigsResponse, error) + // Creates a SearchHypernym inside a corpus. + CreateSearchHypernym(ctx context.Context, in *CreateSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) + // Updates a SearchHypernym inside a corpus. + UpdateSearchHypernym(ctx context.Context, in *UpdateSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) + // Gets a SearchHypernym inside a corpus. + GetSearchHypernym(ctx context.Context, in *GetSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) + // Deletes a SearchHypernym inside a corpus. + DeleteSearchHypernym(ctx context.Context, in *DeleteSearchHypernymRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + // Lists SearchHypernyms inside a corpus. + ListSearchHypernyms(ctx context.Context, in *ListSearchHypernymsRequest, opts ...grpc.CallOption) (*ListSearchHypernymsResponse, error) + // Search media asset. + SearchAssets(ctx context.Context, in *SearchAssetsRequest, opts ...grpc.CallOption) (*SearchAssetsResponse, error) + // Search a deployed index endpoint (IMAGE corpus type only). + SearchIndexEndpoint(ctx context.Context, in *SearchIndexEndpointRequest, opts ...grpc.CallOption) (*SearchIndexEndpointResponse, error) + // Creates an IndexEndpoint. + CreateIndexEndpoint(ctx context.Context, in *CreateIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets an IndexEndpoint. + GetIndexEndpoint(ctx context.Context, in *GetIndexEndpointRequest, opts ...grpc.CallOption) (*IndexEndpoint, error) + // Lists all IndexEndpoints in a project. + ListIndexEndpoints(ctx context.Context, in *ListIndexEndpointsRequest, opts ...grpc.CallOption) (*ListIndexEndpointsResponse, error) + // Updates an IndexEndpoint. + UpdateIndexEndpoint(ctx context.Context, in *UpdateIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes an IndexEndpoint. + DeleteIndexEndpoint(ctx context.Context, in *DeleteIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deploys an Index to IndexEndpoint. + DeployIndex(ctx context.Context, in *DeployIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Undeploys an Index from IndexEndpoint. + UndeployIndex(ctx context.Context, in *UndeployIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Creates a collection. + CreateCollection(ctx context.Context, in *CreateCollectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Deletes a collection. + DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) + // Gets a collection. + GetCollection(ctx context.Context, in *GetCollectionRequest, opts ...grpc.CallOption) (*Collection, error) + // Updates a collection. + UpdateCollection(ctx context.Context, in *UpdateCollectionRequest, opts ...grpc.CallOption) (*Collection, error) + // Lists collections inside a corpus. + ListCollections(ctx context.Context, in *ListCollectionsRequest, opts ...grpc.CallOption) (*ListCollectionsResponse, error) + // Adds an item into a Collection. + AddCollectionItem(ctx context.Context, in *AddCollectionItemRequest, opts ...grpc.CallOption) (*AddCollectionItemResponse, error) + // Removes an item from a collection. + RemoveCollectionItem(ctx context.Context, in *RemoveCollectionItemRequest, opts ...grpc.CallOption) (*RemoveCollectionItemResponse, error) + // View items inside a collection. + ViewCollectionItems(ctx context.Context, in *ViewCollectionItemsRequest, opts ...grpc.CallOption) (*ViewCollectionItemsResponse, error) +} + +type warehouseClient struct { + cc grpc.ClientConnInterface +} + +func NewWarehouseClient(cc grpc.ClientConnInterface) WarehouseClient { + return &warehouseClient{cc} +} + +func (c *warehouseClient) CreateAsset(ctx context.Context, in *CreateAssetRequest, opts ...grpc.CallOption) (*Asset, error) { + out := new(Asset) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateAsset(ctx context.Context, in *UpdateAssetRequest, opts ...grpc.CallOption) (*Asset, error) { + out := new(Asset) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetAsset(ctx context.Context, in *GetAssetRequest, opts ...grpc.CallOption) (*Asset, error) { + out := new(Asset) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListAssets(ctx context.Context, in *ListAssetsRequest, opts ...grpc.CallOption) (*ListAssetsResponse, error) { + out := new(ListAssetsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListAssets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteAsset(ctx context.Context, in *DeleteAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UploadAsset(ctx context.Context, in *UploadAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UploadAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GenerateRetrievalUrl(ctx context.Context, in *GenerateRetrievalUrlRequest, opts ...grpc.CallOption) (*GenerateRetrievalUrlResponse, error) { + out := new(GenerateRetrievalUrlResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GenerateRetrievalUrl", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) AnalyzeAsset(ctx context.Context, in *AnalyzeAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/AnalyzeAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) IndexAsset(ctx context.Context, in *IndexAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/IndexAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) RemoveIndexAsset(ctx context.Context, in *RemoveIndexAssetRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/RemoveIndexAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ViewIndexedAssets(ctx context.Context, in *ViewIndexedAssetsRequest, opts ...grpc.CallOption) (*ViewIndexedAssetsResponse, error) { + out := new(ViewIndexedAssetsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ViewIndexedAssets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateIndex(ctx context.Context, in *CreateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateIndex(ctx context.Context, in *UpdateIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetIndex(ctx context.Context, in *GetIndexRequest, opts ...grpc.CallOption) (*Index, error) { + out := new(Index) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListIndexes(ctx context.Context, in *ListIndexesRequest, opts ...grpc.CallOption) (*ListIndexesResponse, error) { + out := new(ListIndexesResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListIndexes", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteIndex(ctx context.Context, in *DeleteIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateCorpus(ctx context.Context, in *CreateCorpusRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateCorpus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetCorpus(ctx context.Context, in *GetCorpusRequest, opts ...grpc.CallOption) (*Corpus, error) { + out := new(Corpus) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetCorpus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateCorpus(ctx context.Context, in *UpdateCorpusRequest, opts ...grpc.CallOption) (*Corpus, error) { + out := new(Corpus) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateCorpus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListCorpora(ctx context.Context, in *ListCorporaRequest, opts ...grpc.CallOption) (*ListCorporaResponse, error) { + out := new(ListCorporaResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListCorpora", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteCorpus(ctx context.Context, in *DeleteCorpusRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteCorpus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) AnalyzeCorpus(ctx context.Context, in *AnalyzeCorpusRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/AnalyzeCorpus", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateDataSchema(ctx context.Context, in *CreateDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) { + out := new(DataSchema) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateDataSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateDataSchema(ctx context.Context, in *UpdateDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) { + out := new(DataSchema) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateDataSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetDataSchema(ctx context.Context, in *GetDataSchemaRequest, opts ...grpc.CallOption) (*DataSchema, error) { + out := new(DataSchema) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetDataSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteDataSchema(ctx context.Context, in *DeleteDataSchemaRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteDataSchema", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListDataSchemas(ctx context.Context, in *ListDataSchemasRequest, opts ...grpc.CallOption) (*ListDataSchemasResponse, error) { + out := new(ListDataSchemasResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListDataSchemas", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateAnnotation(ctx context.Context, in *CreateAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) { + out := new(Annotation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetAnnotation(ctx context.Context, in *GetAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) { + out := new(Annotation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListAnnotations(ctx context.Context, in *ListAnnotationsRequest, opts ...grpc.CallOption) (*ListAnnotationsResponse, error) { + out := new(ListAnnotationsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListAnnotations", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateAnnotation(ctx context.Context, in *UpdateAnnotationRequest, opts ...grpc.CallOption) (*Annotation, error) { + out := new(Annotation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteAnnotation(ctx context.Context, in *DeleteAnnotationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteAnnotation", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) IngestAsset(ctx context.Context, opts ...grpc.CallOption) (Warehouse_IngestAssetClient, error) { + stream, err := c.cc.NewStream(ctx, &_Warehouse_serviceDesc.Streams[0], "/google.cloud.visionai.v1.Warehouse/IngestAsset", opts...) + if err != nil { + return nil, err + } + x := &warehouseIngestAssetClient{stream} + return x, nil +} + +type Warehouse_IngestAssetClient interface { + Send(*IngestAssetRequest) error + Recv() (*IngestAssetResponse, error) + grpc.ClientStream +} + +type warehouseIngestAssetClient struct { + grpc.ClientStream +} + +func (x *warehouseIngestAssetClient) Send(m *IngestAssetRequest) error { + return x.ClientStream.SendMsg(m) +} + +func (x *warehouseIngestAssetClient) Recv() (*IngestAssetResponse, error) { + m := new(IngestAssetResponse) + if err := x.ClientStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func (c *warehouseClient) ClipAsset(ctx context.Context, in *ClipAssetRequest, opts ...grpc.CallOption) (*ClipAssetResponse, error) { + out := new(ClipAssetResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ClipAsset", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GenerateHlsUri(ctx context.Context, in *GenerateHlsUriRequest, opts ...grpc.CallOption) (*GenerateHlsUriResponse, error) { + out := new(GenerateHlsUriResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GenerateHlsUri", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ImportAssets(ctx context.Context, in *ImportAssetsRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ImportAssets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateSearchConfig(ctx context.Context, in *CreateSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) { + out := new(SearchConfig) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateSearchConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateSearchConfig(ctx context.Context, in *UpdateSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) { + out := new(SearchConfig) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateSearchConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetSearchConfig(ctx context.Context, in *GetSearchConfigRequest, opts ...grpc.CallOption) (*SearchConfig, error) { + out := new(SearchConfig) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetSearchConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteSearchConfig(ctx context.Context, in *DeleteSearchConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteSearchConfig", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListSearchConfigs(ctx context.Context, in *ListSearchConfigsRequest, opts ...grpc.CallOption) (*ListSearchConfigsResponse, error) { + out := new(ListSearchConfigsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListSearchConfigs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateSearchHypernym(ctx context.Context, in *CreateSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) { + out := new(SearchHypernym) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateSearchHypernym", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateSearchHypernym(ctx context.Context, in *UpdateSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) { + out := new(SearchHypernym) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateSearchHypernym", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetSearchHypernym(ctx context.Context, in *GetSearchHypernymRequest, opts ...grpc.CallOption) (*SearchHypernym, error) { + out := new(SearchHypernym) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetSearchHypernym", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteSearchHypernym(ctx context.Context, in *DeleteSearchHypernymRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { + out := new(emptypb.Empty) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteSearchHypernym", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListSearchHypernyms(ctx context.Context, in *ListSearchHypernymsRequest, opts ...grpc.CallOption) (*ListSearchHypernymsResponse, error) { + out := new(ListSearchHypernymsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListSearchHypernyms", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) SearchAssets(ctx context.Context, in *SearchAssetsRequest, opts ...grpc.CallOption) (*SearchAssetsResponse, error) { + out := new(SearchAssetsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/SearchAssets", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) SearchIndexEndpoint(ctx context.Context, in *SearchIndexEndpointRequest, opts ...grpc.CallOption) (*SearchIndexEndpointResponse, error) { + out := new(SearchIndexEndpointResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/SearchIndexEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateIndexEndpoint(ctx context.Context, in *CreateIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateIndexEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetIndexEndpoint(ctx context.Context, in *GetIndexEndpointRequest, opts ...grpc.CallOption) (*IndexEndpoint, error) { + out := new(IndexEndpoint) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetIndexEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListIndexEndpoints(ctx context.Context, in *ListIndexEndpointsRequest, opts ...grpc.CallOption) (*ListIndexEndpointsResponse, error) { + out := new(ListIndexEndpointsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListIndexEndpoints", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateIndexEndpoint(ctx context.Context, in *UpdateIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateIndexEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteIndexEndpoint(ctx context.Context, in *DeleteIndexEndpointRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteIndexEndpoint", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeployIndex(ctx context.Context, in *DeployIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeployIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UndeployIndex(ctx context.Context, in *UndeployIndexRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UndeployIndex", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) CreateCollection(ctx context.Context, in *CreateCollectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/CreateCollection", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) DeleteCollection(ctx context.Context, in *DeleteCollectionRequest, opts ...grpc.CallOption) (*longrunningpb.Operation, error) { + out := new(longrunningpb.Operation) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/DeleteCollection", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) GetCollection(ctx context.Context, in *GetCollectionRequest, opts ...grpc.CallOption) (*Collection, error) { + out := new(Collection) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/GetCollection", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) UpdateCollection(ctx context.Context, in *UpdateCollectionRequest, opts ...grpc.CallOption) (*Collection, error) { + out := new(Collection) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/UpdateCollection", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ListCollections(ctx context.Context, in *ListCollectionsRequest, opts ...grpc.CallOption) (*ListCollectionsResponse, error) { + out := new(ListCollectionsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ListCollections", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) AddCollectionItem(ctx context.Context, in *AddCollectionItemRequest, opts ...grpc.CallOption) (*AddCollectionItemResponse, error) { + out := new(AddCollectionItemResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/AddCollectionItem", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) RemoveCollectionItem(ctx context.Context, in *RemoveCollectionItemRequest, opts ...grpc.CallOption) (*RemoveCollectionItemResponse, error) { + out := new(RemoveCollectionItemResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/RemoveCollectionItem", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *warehouseClient) ViewCollectionItems(ctx context.Context, in *ViewCollectionItemsRequest, opts ...grpc.CallOption) (*ViewCollectionItemsResponse, error) { + out := new(ViewCollectionItemsResponse) + err := c.cc.Invoke(ctx, "/google.cloud.visionai.v1.Warehouse/ViewCollectionItems", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WarehouseServer is the server API for Warehouse service. +type WarehouseServer interface { + // Creates an asset inside corpus. + CreateAsset(context.Context, *CreateAssetRequest) (*Asset, error) + // Updates an asset inside corpus. + UpdateAsset(context.Context, *UpdateAssetRequest) (*Asset, error) + // Reads an asset inside corpus. + GetAsset(context.Context, *GetAssetRequest) (*Asset, error) + // Lists an list of assets inside corpus. + ListAssets(context.Context, *ListAssetsRequest) (*ListAssetsResponse, error) + // Deletes asset inside corpus. + DeleteAsset(context.Context, *DeleteAssetRequest) (*longrunningpb.Operation, error) + // Upload asset by specifing the asset Cloud Storage uri. + // For video warehouse, it requires users who call this API have read access + // to the cloud storage file. Once it is uploaded, it can be retrieved by + // GenerateRetrievalUrl API which by default, only can retrieve cloud storage + // files from the same project of the warehouse. To allow retrieval cloud + // storage files that are in a separate project, it requires to find the + // vision ai service account (Go to IAM, check checkbox to show "Include + // Google-provided role grants", search for "Cloud Vision AI Service Agent") + // and grant the read access of the cloud storage files to that service + // account. + UploadAsset(context.Context, *UploadAssetRequest) (*longrunningpb.Operation, error) + // Generates a signed url for downloading the asset. + // For video warehouse, please see comment of UploadAsset about how to allow + // retrieval of cloud storage files in a different project. + GenerateRetrievalUrl(context.Context, *GenerateRetrievalUrlRequest) (*GenerateRetrievalUrlResponse, error) + // Analyze asset to power search capability. + AnalyzeAsset(context.Context, *AnalyzeAssetRequest) (*longrunningpb.Operation, error) + // Index one asset for search. + // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND + IndexAsset(context.Context, *IndexAssetRequest) (*longrunningpb.Operation, error) + // Remove one asset's index data for search. + // Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND + RemoveIndexAsset(context.Context, *RemoveIndexAssetRequest) (*longrunningpb.Operation, error) + // Lists assets inside an index. + ViewIndexedAssets(context.Context, *ViewIndexedAssetsRequest) (*ViewIndexedAssetsResponse, error) + // Creates an Index under the corpus. + CreateIndex(context.Context, *CreateIndexRequest) (*longrunningpb.Operation, error) + // Updates an Index under the corpus. + // Users can perform a metadata-only update or trigger a full index rebuild + // with different update_mask values. + UpdateIndex(context.Context, *UpdateIndexRequest) (*longrunningpb.Operation, error) + // Gets the details of a single Index under a Corpus. + GetIndex(context.Context, *GetIndexRequest) (*Index, error) + // List all Indexes in a given Corpus. + ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) + // Delete a single Index. In order to delete an index, the caller must + // make sure that it is not deployed to any index endpoint. + DeleteIndex(context.Context, *DeleteIndexRequest) (*longrunningpb.Operation, error) + // Creates a corpus inside a project. + CreateCorpus(context.Context, *CreateCorpusRequest) (*longrunningpb.Operation, error) + // Gets corpus details inside a project. + GetCorpus(context.Context, *GetCorpusRequest) (*Corpus, error) + // Updates a corpus in a project. + UpdateCorpus(context.Context, *UpdateCorpusRequest) (*Corpus, error) + // Lists all corpora in a project. + ListCorpora(context.Context, *ListCorporaRequest) (*ListCorporaResponse, error) + // Deletes a corpus only if its empty. + // Returns empty response. + DeleteCorpus(context.Context, *DeleteCorpusRequest) (*emptypb.Empty, error) + // Analyzes a corpus. + AnalyzeCorpus(context.Context, *AnalyzeCorpusRequest) (*longrunningpb.Operation, error) + // Creates data schema inside corpus. + CreateDataSchema(context.Context, *CreateDataSchemaRequest) (*DataSchema, error) + // Updates data schema inside corpus. + UpdateDataSchema(context.Context, *UpdateDataSchemaRequest) (*DataSchema, error) + // Gets data schema inside corpus. + GetDataSchema(context.Context, *GetDataSchemaRequest) (*DataSchema, error) + // Deletes data schema inside corpus. + DeleteDataSchema(context.Context, *DeleteDataSchemaRequest) (*emptypb.Empty, error) + // Lists a list of data schemas inside corpus. + ListDataSchemas(context.Context, *ListDataSchemasRequest) (*ListDataSchemasResponse, error) + // Creates annotation inside asset. + CreateAnnotation(context.Context, *CreateAnnotationRequest) (*Annotation, error) + // Reads annotation inside asset. + GetAnnotation(context.Context, *GetAnnotationRequest) (*Annotation, error) + // Lists a list of annotations inside asset. + ListAnnotations(context.Context, *ListAnnotationsRequest) (*ListAnnotationsResponse, error) + // Updates annotation inside asset. + UpdateAnnotation(context.Context, *UpdateAnnotationRequest) (*Annotation, error) + // Deletes annotation inside asset. + DeleteAnnotation(context.Context, *DeleteAnnotationRequest) (*emptypb.Empty, error) + // Ingests data for the asset. It is not allowed to ingest a data chunk which + // is already expired according to TTL. + // This method is only available via the gRPC API (not HTTP since + // bi-directional streaming is not supported via HTTP). + IngestAsset(Warehouse_IngestAssetServer) error + // Generates clips for downloading. The api takes in a time range, and + // generates a clip of the first content available after start_time and + // before end_time, which may overflow beyond these bounds. + // Returned clips are truncated if the total size of the clips are larger + // than 100MB. + ClipAsset(context.Context, *ClipAssetRequest) (*ClipAssetResponse, error) + // Generates a uri for an HLS manifest. The api takes in a collection of time + // ranges, and generates a URI for an HLS manifest that covers all the + // requested time ranges. + GenerateHlsUri(context.Context, *GenerateHlsUriRequest) (*GenerateHlsUriResponse, error) + // Imports assets (images plus annotations) from a meta file on cloud storage. + // Each row in the meta file is corresponding to an image (specified by a + // cloud storage uri) and its annotations. + ImportAssets(context.Context, *ImportAssetsRequest) (*longrunningpb.Operation, error) + // Creates a search configuration inside a corpus. + // + // Please follow the rules below to create a valid CreateSearchConfigRequest. + // --- General Rules --- + // 1. Request.search_config_id must not be associated with an existing + // SearchConfig. + // 2. Request must contain at least one non-empty search_criteria_property or + // facet_property. + // 3. mapped_fields must not be empty, and must map to existing UGA keys. + // 4. All mapped_fields must be of the same type. + // 5. All mapped_fields must share the same granularity. + // 6. All mapped_fields must share the same semantic SearchConfig match + // options. + // + // For property-specific rules, please reference the comments for + // FacetProperty and SearchCriteriaProperty. + CreateSearchConfig(context.Context, *CreateSearchConfigRequest) (*SearchConfig, error) + // Updates a search configuration inside a corpus. + // + // Please follow the rules below to create a valid UpdateSearchConfigRequest. + // --- General Rules --- + // 1. Request.search_configuration.name must already exist. + // 2. Request must contain at least one non-empty search_criteria_property or + // facet_property. + // 3. mapped_fields must not be empty, and must map to existing UGA keys. + // 4. All mapped_fields must be of the same type. + // 5. All mapped_fields must share the same granularity. + // 6. All mapped_fields must share the same semantic SearchConfig match + // options. + // + // For property-specific rules, please reference the comments for + // FacetProperty and SearchCriteriaProperty. + UpdateSearchConfig(context.Context, *UpdateSearchConfigRequest) (*SearchConfig, error) + // Gets a search configuration inside a corpus. + GetSearchConfig(context.Context, *GetSearchConfigRequest) (*SearchConfig, error) + // Deletes a search configuration inside a corpus. + // + // For a DeleteSearchConfigRequest to be valid, + // Request.search_configuration.name must already exist. + DeleteSearchConfig(context.Context, *DeleteSearchConfigRequest) (*emptypb.Empty, error) + // Lists all search configurations inside a corpus. + ListSearchConfigs(context.Context, *ListSearchConfigsRequest) (*ListSearchConfigsResponse, error) + // Creates a SearchHypernym inside a corpus. + CreateSearchHypernym(context.Context, *CreateSearchHypernymRequest) (*SearchHypernym, error) + // Updates a SearchHypernym inside a corpus. + UpdateSearchHypernym(context.Context, *UpdateSearchHypernymRequest) (*SearchHypernym, error) + // Gets a SearchHypernym inside a corpus. + GetSearchHypernym(context.Context, *GetSearchHypernymRequest) (*SearchHypernym, error) + // Deletes a SearchHypernym inside a corpus. + DeleteSearchHypernym(context.Context, *DeleteSearchHypernymRequest) (*emptypb.Empty, error) + // Lists SearchHypernyms inside a corpus. + ListSearchHypernyms(context.Context, *ListSearchHypernymsRequest) (*ListSearchHypernymsResponse, error) + // Search media asset. + SearchAssets(context.Context, *SearchAssetsRequest) (*SearchAssetsResponse, error) + // Search a deployed index endpoint (IMAGE corpus type only). + SearchIndexEndpoint(context.Context, *SearchIndexEndpointRequest) (*SearchIndexEndpointResponse, error) + // Creates an IndexEndpoint. + CreateIndexEndpoint(context.Context, *CreateIndexEndpointRequest) (*longrunningpb.Operation, error) + // Gets an IndexEndpoint. + GetIndexEndpoint(context.Context, *GetIndexEndpointRequest) (*IndexEndpoint, error) + // Lists all IndexEndpoints in a project. + ListIndexEndpoints(context.Context, *ListIndexEndpointsRequest) (*ListIndexEndpointsResponse, error) + // Updates an IndexEndpoint. + UpdateIndexEndpoint(context.Context, *UpdateIndexEndpointRequest) (*longrunningpb.Operation, error) + // Deletes an IndexEndpoint. + DeleteIndexEndpoint(context.Context, *DeleteIndexEndpointRequest) (*longrunningpb.Operation, error) + // Deploys an Index to IndexEndpoint. + DeployIndex(context.Context, *DeployIndexRequest) (*longrunningpb.Operation, error) + // Undeploys an Index from IndexEndpoint. + UndeployIndex(context.Context, *UndeployIndexRequest) (*longrunningpb.Operation, error) + // Creates a collection. + CreateCollection(context.Context, *CreateCollectionRequest) (*longrunningpb.Operation, error) + // Deletes a collection. + DeleteCollection(context.Context, *DeleteCollectionRequest) (*longrunningpb.Operation, error) + // Gets a collection. + GetCollection(context.Context, *GetCollectionRequest) (*Collection, error) + // Updates a collection. + UpdateCollection(context.Context, *UpdateCollectionRequest) (*Collection, error) + // Lists collections inside a corpus. + ListCollections(context.Context, *ListCollectionsRequest) (*ListCollectionsResponse, error) + // Adds an item into a Collection. + AddCollectionItem(context.Context, *AddCollectionItemRequest) (*AddCollectionItemResponse, error) + // Removes an item from a collection. + RemoveCollectionItem(context.Context, *RemoveCollectionItemRequest) (*RemoveCollectionItemResponse, error) + // View items inside a collection. + ViewCollectionItems(context.Context, *ViewCollectionItemsRequest) (*ViewCollectionItemsResponse, error) +} + +// UnimplementedWarehouseServer can be embedded to have forward compatible implementations. +type UnimplementedWarehouseServer struct { +} + +func (*UnimplementedWarehouseServer) CreateAsset(context.Context, *CreateAssetRequest) (*Asset, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateAsset not implemented") +} +func (*UnimplementedWarehouseServer) UpdateAsset(context.Context, *UpdateAssetRequest) (*Asset, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateAsset not implemented") +} +func (*UnimplementedWarehouseServer) GetAsset(context.Context, *GetAssetRequest) (*Asset, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetAsset not implemented") +} +func (*UnimplementedWarehouseServer) ListAssets(context.Context, *ListAssetsRequest) (*ListAssetsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListAssets not implemented") +} +func (*UnimplementedWarehouseServer) DeleteAsset(context.Context, *DeleteAssetRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteAsset not implemented") +} +func (*UnimplementedWarehouseServer) UploadAsset(context.Context, *UploadAssetRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UploadAsset not implemented") +} +func (*UnimplementedWarehouseServer) GenerateRetrievalUrl(context.Context, *GenerateRetrievalUrlRequest) (*GenerateRetrievalUrlResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GenerateRetrievalUrl not implemented") +} +func (*UnimplementedWarehouseServer) AnalyzeAsset(context.Context, *AnalyzeAssetRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method AnalyzeAsset not implemented") +} +func (*UnimplementedWarehouseServer) IndexAsset(context.Context, *IndexAssetRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method IndexAsset not implemented") +} +func (*UnimplementedWarehouseServer) RemoveIndexAsset(context.Context, *RemoveIndexAssetRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method RemoveIndexAsset not implemented") +} +func (*UnimplementedWarehouseServer) ViewIndexedAssets(context.Context, *ViewIndexedAssetsRequest) (*ViewIndexedAssetsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ViewIndexedAssets not implemented") +} +func (*UnimplementedWarehouseServer) CreateIndex(context.Context, *CreateIndexRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateIndex not implemented") +} +func (*UnimplementedWarehouseServer) UpdateIndex(context.Context, *UpdateIndexRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateIndex not implemented") +} +func (*UnimplementedWarehouseServer) GetIndex(context.Context, *GetIndexRequest) (*Index, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetIndex not implemented") +} +func (*UnimplementedWarehouseServer) ListIndexes(context.Context, *ListIndexesRequest) (*ListIndexesResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListIndexes not implemented") +} +func (*UnimplementedWarehouseServer) DeleteIndex(context.Context, *DeleteIndexRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteIndex not implemented") +} +func (*UnimplementedWarehouseServer) CreateCorpus(context.Context, *CreateCorpusRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateCorpus not implemented") +} +func (*UnimplementedWarehouseServer) GetCorpus(context.Context, *GetCorpusRequest) (*Corpus, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetCorpus not implemented") +} +func (*UnimplementedWarehouseServer) UpdateCorpus(context.Context, *UpdateCorpusRequest) (*Corpus, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateCorpus not implemented") +} +func (*UnimplementedWarehouseServer) ListCorpora(context.Context, *ListCorporaRequest) (*ListCorporaResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListCorpora not implemented") +} +func (*UnimplementedWarehouseServer) DeleteCorpus(context.Context, *DeleteCorpusRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteCorpus not implemented") +} +func (*UnimplementedWarehouseServer) AnalyzeCorpus(context.Context, *AnalyzeCorpusRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method AnalyzeCorpus not implemented") +} +func (*UnimplementedWarehouseServer) CreateDataSchema(context.Context, *CreateDataSchemaRequest) (*DataSchema, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateDataSchema not implemented") +} +func (*UnimplementedWarehouseServer) UpdateDataSchema(context.Context, *UpdateDataSchemaRequest) (*DataSchema, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateDataSchema not implemented") +} +func (*UnimplementedWarehouseServer) GetDataSchema(context.Context, *GetDataSchemaRequest) (*DataSchema, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetDataSchema not implemented") +} +func (*UnimplementedWarehouseServer) DeleteDataSchema(context.Context, *DeleteDataSchemaRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteDataSchema not implemented") +} +func (*UnimplementedWarehouseServer) ListDataSchemas(context.Context, *ListDataSchemasRequest) (*ListDataSchemasResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListDataSchemas not implemented") +} +func (*UnimplementedWarehouseServer) CreateAnnotation(context.Context, *CreateAnnotationRequest) (*Annotation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateAnnotation not implemented") +} +func (*UnimplementedWarehouseServer) GetAnnotation(context.Context, *GetAnnotationRequest) (*Annotation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetAnnotation not implemented") +} +func (*UnimplementedWarehouseServer) ListAnnotations(context.Context, *ListAnnotationsRequest) (*ListAnnotationsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListAnnotations not implemented") +} +func (*UnimplementedWarehouseServer) UpdateAnnotation(context.Context, *UpdateAnnotationRequest) (*Annotation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateAnnotation not implemented") +} +func (*UnimplementedWarehouseServer) DeleteAnnotation(context.Context, *DeleteAnnotationRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteAnnotation not implemented") +} +func (*UnimplementedWarehouseServer) IngestAsset(Warehouse_IngestAssetServer) error { + return status1.Errorf(codes.Unimplemented, "method IngestAsset not implemented") +} +func (*UnimplementedWarehouseServer) ClipAsset(context.Context, *ClipAssetRequest) (*ClipAssetResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ClipAsset not implemented") +} +func (*UnimplementedWarehouseServer) GenerateHlsUri(context.Context, *GenerateHlsUriRequest) (*GenerateHlsUriResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GenerateHlsUri not implemented") +} +func (*UnimplementedWarehouseServer) ImportAssets(context.Context, *ImportAssetsRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ImportAssets not implemented") +} +func (*UnimplementedWarehouseServer) CreateSearchConfig(context.Context, *CreateSearchConfigRequest) (*SearchConfig, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateSearchConfig not implemented") +} +func (*UnimplementedWarehouseServer) UpdateSearchConfig(context.Context, *UpdateSearchConfigRequest) (*SearchConfig, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateSearchConfig not implemented") +} +func (*UnimplementedWarehouseServer) GetSearchConfig(context.Context, *GetSearchConfigRequest) (*SearchConfig, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetSearchConfig not implemented") +} +func (*UnimplementedWarehouseServer) DeleteSearchConfig(context.Context, *DeleteSearchConfigRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteSearchConfig not implemented") +} +func (*UnimplementedWarehouseServer) ListSearchConfigs(context.Context, *ListSearchConfigsRequest) (*ListSearchConfigsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListSearchConfigs not implemented") +} +func (*UnimplementedWarehouseServer) CreateSearchHypernym(context.Context, *CreateSearchHypernymRequest) (*SearchHypernym, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateSearchHypernym not implemented") +} +func (*UnimplementedWarehouseServer) UpdateSearchHypernym(context.Context, *UpdateSearchHypernymRequest) (*SearchHypernym, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateSearchHypernym not implemented") +} +func (*UnimplementedWarehouseServer) GetSearchHypernym(context.Context, *GetSearchHypernymRequest) (*SearchHypernym, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetSearchHypernym not implemented") +} +func (*UnimplementedWarehouseServer) DeleteSearchHypernym(context.Context, *DeleteSearchHypernymRequest) (*emptypb.Empty, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteSearchHypernym not implemented") +} +func (*UnimplementedWarehouseServer) ListSearchHypernyms(context.Context, *ListSearchHypernymsRequest) (*ListSearchHypernymsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListSearchHypernyms not implemented") +} +func (*UnimplementedWarehouseServer) SearchAssets(context.Context, *SearchAssetsRequest) (*SearchAssetsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method SearchAssets not implemented") +} +func (*UnimplementedWarehouseServer) SearchIndexEndpoint(context.Context, *SearchIndexEndpointRequest) (*SearchIndexEndpointResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method SearchIndexEndpoint not implemented") +} +func (*UnimplementedWarehouseServer) CreateIndexEndpoint(context.Context, *CreateIndexEndpointRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateIndexEndpoint not implemented") +} +func (*UnimplementedWarehouseServer) GetIndexEndpoint(context.Context, *GetIndexEndpointRequest) (*IndexEndpoint, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetIndexEndpoint not implemented") +} +func (*UnimplementedWarehouseServer) ListIndexEndpoints(context.Context, *ListIndexEndpointsRequest) (*ListIndexEndpointsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListIndexEndpoints not implemented") +} +func (*UnimplementedWarehouseServer) UpdateIndexEndpoint(context.Context, *UpdateIndexEndpointRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateIndexEndpoint not implemented") +} +func (*UnimplementedWarehouseServer) DeleteIndexEndpoint(context.Context, *DeleteIndexEndpointRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteIndexEndpoint not implemented") +} +func (*UnimplementedWarehouseServer) DeployIndex(context.Context, *DeployIndexRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeployIndex not implemented") +} +func (*UnimplementedWarehouseServer) UndeployIndex(context.Context, *UndeployIndexRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UndeployIndex not implemented") +} +func (*UnimplementedWarehouseServer) CreateCollection(context.Context, *CreateCollectionRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method CreateCollection not implemented") +} +func (*UnimplementedWarehouseServer) DeleteCollection(context.Context, *DeleteCollectionRequest) (*longrunningpb.Operation, error) { + return nil, status1.Errorf(codes.Unimplemented, "method DeleteCollection not implemented") +} +func (*UnimplementedWarehouseServer) GetCollection(context.Context, *GetCollectionRequest) (*Collection, error) { + return nil, status1.Errorf(codes.Unimplemented, "method GetCollection not implemented") +} +func (*UnimplementedWarehouseServer) UpdateCollection(context.Context, *UpdateCollectionRequest) (*Collection, error) { + return nil, status1.Errorf(codes.Unimplemented, "method UpdateCollection not implemented") +} +func (*UnimplementedWarehouseServer) ListCollections(context.Context, *ListCollectionsRequest) (*ListCollectionsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ListCollections not implemented") +} +func (*UnimplementedWarehouseServer) AddCollectionItem(context.Context, *AddCollectionItemRequest) (*AddCollectionItemResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method AddCollectionItem not implemented") +} +func (*UnimplementedWarehouseServer) RemoveCollectionItem(context.Context, *RemoveCollectionItemRequest) (*RemoveCollectionItemResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method RemoveCollectionItem not implemented") +} +func (*UnimplementedWarehouseServer) ViewCollectionItems(context.Context, *ViewCollectionItemsRequest) (*ViewCollectionItemsResponse, error) { + return nil, status1.Errorf(codes.Unimplemented, "method ViewCollectionItems not implemented") +} + +func RegisterWarehouseServer(s *grpc.Server, srv WarehouseServer) { + s.RegisterService(&_Warehouse_serviceDesc, srv) +} + +func _Warehouse_CreateAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateAsset(ctx, req.(*CreateAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateAsset(ctx, req.(*UpdateAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetAsset(ctx, req.(*GetAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAssetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListAssets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListAssets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListAssets(ctx, req.(*ListAssetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteAsset(ctx, req.(*DeleteAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UploadAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UploadAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UploadAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UploadAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UploadAsset(ctx, req.(*UploadAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GenerateRetrievalUrl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateRetrievalUrlRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GenerateRetrievalUrl(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GenerateRetrievalUrl", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GenerateRetrievalUrl(ctx, req.(*GenerateRetrievalUrlRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_AnalyzeAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnalyzeAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).AnalyzeAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/AnalyzeAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).AnalyzeAsset(ctx, req.(*AnalyzeAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_IndexAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IndexAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).IndexAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/IndexAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).IndexAsset(ctx, req.(*IndexAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_RemoveIndexAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveIndexAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).RemoveIndexAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/RemoveIndexAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).RemoveIndexAsset(ctx, req.(*RemoveIndexAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ViewIndexedAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewIndexedAssetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ViewIndexedAssets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ViewIndexedAssets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ViewIndexedAssets(ctx, req.(*ViewIndexedAssetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateIndex(ctx, req.(*CreateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateIndex(ctx, req.(*UpdateIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetIndex(ctx, req.(*GetIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListIndexes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListIndexesRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListIndexes(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListIndexes", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListIndexes(ctx, req.(*ListIndexesRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteIndex(ctx, req.(*DeleteIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateCorpus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateCorpusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateCorpus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateCorpus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateCorpus(ctx, req.(*CreateCorpusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetCorpus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCorpusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetCorpus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetCorpus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetCorpus(ctx, req.(*GetCorpusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateCorpus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCorpusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateCorpus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateCorpus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateCorpus(ctx, req.(*UpdateCorpusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListCorpora_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCorporaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListCorpora(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListCorpora", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListCorpora(ctx, req.(*ListCorporaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteCorpus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCorpusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteCorpus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteCorpus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteCorpus(ctx, req.(*DeleteCorpusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_AnalyzeCorpus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AnalyzeCorpusRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).AnalyzeCorpus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/AnalyzeCorpus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).AnalyzeCorpus(ctx, req.(*AnalyzeCorpusRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateDataSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateDataSchemaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateDataSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateDataSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateDataSchema(ctx, req.(*CreateDataSchemaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateDataSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateDataSchemaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateDataSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateDataSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateDataSchema(ctx, req.(*UpdateDataSchemaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetDataSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDataSchemaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetDataSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetDataSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetDataSchema(ctx, req.(*GetDataSchemaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteDataSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteDataSchemaRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteDataSchema(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteDataSchema", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteDataSchema(ctx, req.(*DeleteDataSchemaRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListDataSchemas_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListDataSchemasRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListDataSchemas(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListDataSchemas", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListDataSchemas(ctx, req.(*ListDataSchemasRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateAnnotation(ctx, req.(*CreateAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetAnnotation(ctx, req.(*GetAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListAnnotations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListAnnotationsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListAnnotations(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListAnnotations", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListAnnotations(ctx, req.(*ListAnnotationsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateAnnotation(ctx, req.(*UpdateAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteAnnotation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteAnnotationRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteAnnotation(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteAnnotation", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteAnnotation(ctx, req.(*DeleteAnnotationRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_IngestAsset_Handler(srv interface{}, stream grpc.ServerStream) error { + return srv.(WarehouseServer).IngestAsset(&warehouseIngestAssetServer{stream}) +} + +type Warehouse_IngestAssetServer interface { + Send(*IngestAssetResponse) error + Recv() (*IngestAssetRequest, error) + grpc.ServerStream +} + +type warehouseIngestAssetServer struct { + grpc.ServerStream +} + +func (x *warehouseIngestAssetServer) Send(m *IngestAssetResponse) error { + return x.ServerStream.SendMsg(m) +} + +func (x *warehouseIngestAssetServer) Recv() (*IngestAssetRequest, error) { + m := new(IngestAssetRequest) + if err := x.ServerStream.RecvMsg(m); err != nil { + return nil, err + } + return m, nil +} + +func _Warehouse_ClipAsset_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ClipAssetRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ClipAsset(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ClipAsset", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ClipAsset(ctx, req.(*ClipAssetRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GenerateHlsUri_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GenerateHlsUriRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GenerateHlsUri(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GenerateHlsUri", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GenerateHlsUri(ctx, req.(*GenerateHlsUriRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ImportAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportAssetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ImportAssets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ImportAssets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ImportAssets(ctx, req.(*ImportAssetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateSearchConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSearchConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateSearchConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateSearchConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateSearchConfig(ctx, req.(*CreateSearchConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateSearchConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSearchConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateSearchConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateSearchConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateSearchConfig(ctx, req.(*UpdateSearchConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetSearchConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSearchConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetSearchConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetSearchConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetSearchConfig(ctx, req.(*GetSearchConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteSearchConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSearchConfigRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteSearchConfig(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteSearchConfig", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteSearchConfig(ctx, req.(*DeleteSearchConfigRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListSearchConfigs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSearchConfigsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListSearchConfigs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListSearchConfigs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListSearchConfigs(ctx, req.(*ListSearchConfigsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateSearchHypernym_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateSearchHypernymRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateSearchHypernym(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateSearchHypernym", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateSearchHypernym(ctx, req.(*CreateSearchHypernymRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateSearchHypernym_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateSearchHypernymRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateSearchHypernym(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateSearchHypernym", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateSearchHypernym(ctx, req.(*UpdateSearchHypernymRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetSearchHypernym_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSearchHypernymRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetSearchHypernym(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetSearchHypernym", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetSearchHypernym(ctx, req.(*GetSearchHypernymRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteSearchHypernym_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteSearchHypernymRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteSearchHypernym(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteSearchHypernym", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteSearchHypernym(ctx, req.(*DeleteSearchHypernymRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListSearchHypernyms_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListSearchHypernymsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListSearchHypernyms(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListSearchHypernyms", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListSearchHypernyms(ctx, req.(*ListSearchHypernymsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_SearchAssets_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchAssetsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).SearchAssets(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/SearchAssets", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).SearchAssets(ctx, req.(*SearchAssetsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_SearchIndexEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SearchIndexEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).SearchIndexEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/SearchIndexEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).SearchIndexEndpoint(ctx, req.(*SearchIndexEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateIndexEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateIndexEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateIndexEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateIndexEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateIndexEndpoint(ctx, req.(*CreateIndexEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetIndexEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetIndexEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetIndexEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetIndexEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetIndexEndpoint(ctx, req.(*GetIndexEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListIndexEndpoints_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListIndexEndpointsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListIndexEndpoints(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListIndexEndpoints", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListIndexEndpoints(ctx, req.(*ListIndexEndpointsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateIndexEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateIndexEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateIndexEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateIndexEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateIndexEndpoint(ctx, req.(*UpdateIndexEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteIndexEndpoint_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteIndexEndpointRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteIndexEndpoint(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteIndexEndpoint", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteIndexEndpoint(ctx, req.(*DeleteIndexEndpointRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeployIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeployIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeployIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeployIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeployIndex(ctx, req.(*DeployIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UndeployIndex_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UndeployIndexRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UndeployIndex(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UndeployIndex", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UndeployIndex(ctx, req.(*UndeployIndexRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_CreateCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateCollectionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).CreateCollection(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/CreateCollection", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).CreateCollection(ctx, req.(*CreateCollectionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_DeleteCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteCollectionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).DeleteCollection(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/DeleteCollection", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).DeleteCollection(ctx, req.(*DeleteCollectionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_GetCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetCollectionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).GetCollection(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/GetCollection", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).GetCollection(ctx, req.(*GetCollectionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_UpdateCollection_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateCollectionRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).UpdateCollection(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/UpdateCollection", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).UpdateCollection(ctx, req.(*UpdateCollectionRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ListCollections_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListCollectionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ListCollections(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ListCollections", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ListCollections(ctx, req.(*ListCollectionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_AddCollectionItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddCollectionItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).AddCollectionItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/AddCollectionItem", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).AddCollectionItem(ctx, req.(*AddCollectionItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_RemoveCollectionItem_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveCollectionItemRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).RemoveCollectionItem(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/RemoveCollectionItem", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).RemoveCollectionItem(ctx, req.(*RemoveCollectionItemRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Warehouse_ViewCollectionItems_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ViewCollectionItemsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WarehouseServer).ViewCollectionItems(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/google.cloud.visionai.v1.Warehouse/ViewCollectionItems", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WarehouseServer).ViewCollectionItems(ctx, req.(*ViewCollectionItemsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +var _Warehouse_serviceDesc = grpc.ServiceDesc{ + ServiceName: "google.cloud.visionai.v1.Warehouse", + HandlerType: (*WarehouseServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "CreateAsset", + Handler: _Warehouse_CreateAsset_Handler, + }, + { + MethodName: "UpdateAsset", + Handler: _Warehouse_UpdateAsset_Handler, + }, + { + MethodName: "GetAsset", + Handler: _Warehouse_GetAsset_Handler, + }, + { + MethodName: "ListAssets", + Handler: _Warehouse_ListAssets_Handler, + }, + { + MethodName: "DeleteAsset", + Handler: _Warehouse_DeleteAsset_Handler, + }, + { + MethodName: "UploadAsset", + Handler: _Warehouse_UploadAsset_Handler, + }, + { + MethodName: "GenerateRetrievalUrl", + Handler: _Warehouse_GenerateRetrievalUrl_Handler, + }, + { + MethodName: "AnalyzeAsset", + Handler: _Warehouse_AnalyzeAsset_Handler, + }, + { + MethodName: "IndexAsset", + Handler: _Warehouse_IndexAsset_Handler, + }, + { + MethodName: "RemoveIndexAsset", + Handler: _Warehouse_RemoveIndexAsset_Handler, + }, + { + MethodName: "ViewIndexedAssets", + Handler: _Warehouse_ViewIndexedAssets_Handler, + }, + { + MethodName: "CreateIndex", + Handler: _Warehouse_CreateIndex_Handler, + }, + { + MethodName: "UpdateIndex", + Handler: _Warehouse_UpdateIndex_Handler, + }, + { + MethodName: "GetIndex", + Handler: _Warehouse_GetIndex_Handler, + }, + { + MethodName: "ListIndexes", + Handler: _Warehouse_ListIndexes_Handler, + }, + { + MethodName: "DeleteIndex", + Handler: _Warehouse_DeleteIndex_Handler, + }, + { + MethodName: "CreateCorpus", + Handler: _Warehouse_CreateCorpus_Handler, + }, + { + MethodName: "GetCorpus", + Handler: _Warehouse_GetCorpus_Handler, + }, + { + MethodName: "UpdateCorpus", + Handler: _Warehouse_UpdateCorpus_Handler, + }, + { + MethodName: "ListCorpora", + Handler: _Warehouse_ListCorpora_Handler, + }, + { + MethodName: "DeleteCorpus", + Handler: _Warehouse_DeleteCorpus_Handler, + }, + { + MethodName: "AnalyzeCorpus", + Handler: _Warehouse_AnalyzeCorpus_Handler, + }, + { + MethodName: "CreateDataSchema", + Handler: _Warehouse_CreateDataSchema_Handler, + }, + { + MethodName: "UpdateDataSchema", + Handler: _Warehouse_UpdateDataSchema_Handler, + }, + { + MethodName: "GetDataSchema", + Handler: _Warehouse_GetDataSchema_Handler, + }, + { + MethodName: "DeleteDataSchema", + Handler: _Warehouse_DeleteDataSchema_Handler, + }, + { + MethodName: "ListDataSchemas", + Handler: _Warehouse_ListDataSchemas_Handler, + }, + { + MethodName: "CreateAnnotation", + Handler: _Warehouse_CreateAnnotation_Handler, + }, + { + MethodName: "GetAnnotation", + Handler: _Warehouse_GetAnnotation_Handler, + }, + { + MethodName: "ListAnnotations", + Handler: _Warehouse_ListAnnotations_Handler, + }, + { + MethodName: "UpdateAnnotation", + Handler: _Warehouse_UpdateAnnotation_Handler, + }, + { + MethodName: "DeleteAnnotation", + Handler: _Warehouse_DeleteAnnotation_Handler, + }, + { + MethodName: "ClipAsset", + Handler: _Warehouse_ClipAsset_Handler, + }, + { + MethodName: "GenerateHlsUri", + Handler: _Warehouse_GenerateHlsUri_Handler, + }, + { + MethodName: "ImportAssets", + Handler: _Warehouse_ImportAssets_Handler, + }, + { + MethodName: "CreateSearchConfig", + Handler: _Warehouse_CreateSearchConfig_Handler, + }, + { + MethodName: "UpdateSearchConfig", + Handler: _Warehouse_UpdateSearchConfig_Handler, + }, + { + MethodName: "GetSearchConfig", + Handler: _Warehouse_GetSearchConfig_Handler, + }, + { + MethodName: "DeleteSearchConfig", + Handler: _Warehouse_DeleteSearchConfig_Handler, + }, + { + MethodName: "ListSearchConfigs", + Handler: _Warehouse_ListSearchConfigs_Handler, + }, + { + MethodName: "CreateSearchHypernym", + Handler: _Warehouse_CreateSearchHypernym_Handler, + }, + { + MethodName: "UpdateSearchHypernym", + Handler: _Warehouse_UpdateSearchHypernym_Handler, + }, + { + MethodName: "GetSearchHypernym", + Handler: _Warehouse_GetSearchHypernym_Handler, + }, + { + MethodName: "DeleteSearchHypernym", + Handler: _Warehouse_DeleteSearchHypernym_Handler, + }, + { + MethodName: "ListSearchHypernyms", + Handler: _Warehouse_ListSearchHypernyms_Handler, + }, + { + MethodName: "SearchAssets", + Handler: _Warehouse_SearchAssets_Handler, + }, + { + MethodName: "SearchIndexEndpoint", + Handler: _Warehouse_SearchIndexEndpoint_Handler, + }, + { + MethodName: "CreateIndexEndpoint", + Handler: _Warehouse_CreateIndexEndpoint_Handler, + }, + { + MethodName: "GetIndexEndpoint", + Handler: _Warehouse_GetIndexEndpoint_Handler, + }, + { + MethodName: "ListIndexEndpoints", + Handler: _Warehouse_ListIndexEndpoints_Handler, + }, + { + MethodName: "UpdateIndexEndpoint", + Handler: _Warehouse_UpdateIndexEndpoint_Handler, + }, + { + MethodName: "DeleteIndexEndpoint", + Handler: _Warehouse_DeleteIndexEndpoint_Handler, + }, + { + MethodName: "DeployIndex", + Handler: _Warehouse_DeployIndex_Handler, + }, + { + MethodName: "UndeployIndex", + Handler: _Warehouse_UndeployIndex_Handler, + }, + { + MethodName: "CreateCollection", + Handler: _Warehouse_CreateCollection_Handler, + }, + { + MethodName: "DeleteCollection", + Handler: _Warehouse_DeleteCollection_Handler, + }, + { + MethodName: "GetCollection", + Handler: _Warehouse_GetCollection_Handler, + }, + { + MethodName: "UpdateCollection", + Handler: _Warehouse_UpdateCollection_Handler, + }, + { + MethodName: "ListCollections", + Handler: _Warehouse_ListCollections_Handler, + }, + { + MethodName: "AddCollectionItem", + Handler: _Warehouse_AddCollectionItem_Handler, + }, + { + MethodName: "RemoveCollectionItem", + Handler: _Warehouse_RemoveCollectionItem_Handler, + }, + { + MethodName: "ViewCollectionItems", + Handler: _Warehouse_ViewCollectionItems_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "IngestAsset", + Handler: _Warehouse_IngestAsset_Handler, + ServerStreams: true, + ClientStreams: true, + }, + }, + Metadata: "google/cloud/visionai/v1/warehouse.proto", +} diff --git a/visionai/apiv1/warehouse_client.go b/visionai/apiv1/warehouse_client.go new file mode 100755 index 00000000000..3d4a21d9172 --- /dev/null +++ b/visionai/apiv1/warehouse_client.go @@ -0,0 +1,9046 @@ +// Copyright 2024 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 visionai + +import ( + "bytes" + "context" + "fmt" + "io" + "math" + "net/http" + "net/url" + "time" + + "cloud.google.com/go/longrunning" + lroauto "cloud.google.com/go/longrunning/autogen" + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + 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" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" +) + +var newWarehouseClientHook clientHook + +// WarehouseCallOptions contains the retry settings for each method of WarehouseClient. +type WarehouseCallOptions struct { + CreateAsset []gax.CallOption + UpdateAsset []gax.CallOption + GetAsset []gax.CallOption + ListAssets []gax.CallOption + DeleteAsset []gax.CallOption + UploadAsset []gax.CallOption + GenerateRetrievalUrl []gax.CallOption + AnalyzeAsset []gax.CallOption + IndexAsset []gax.CallOption + RemoveIndexAsset []gax.CallOption + ViewIndexedAssets []gax.CallOption + CreateIndex []gax.CallOption + UpdateIndex []gax.CallOption + GetIndex []gax.CallOption + ListIndexes []gax.CallOption + DeleteIndex []gax.CallOption + CreateCorpus []gax.CallOption + GetCorpus []gax.CallOption + UpdateCorpus []gax.CallOption + ListCorpora []gax.CallOption + DeleteCorpus []gax.CallOption + AnalyzeCorpus []gax.CallOption + CreateDataSchema []gax.CallOption + UpdateDataSchema []gax.CallOption + GetDataSchema []gax.CallOption + DeleteDataSchema []gax.CallOption + ListDataSchemas []gax.CallOption + CreateAnnotation []gax.CallOption + GetAnnotation []gax.CallOption + ListAnnotations []gax.CallOption + UpdateAnnotation []gax.CallOption + DeleteAnnotation []gax.CallOption + IngestAsset []gax.CallOption + ClipAsset []gax.CallOption + GenerateHlsUri []gax.CallOption + ImportAssets []gax.CallOption + CreateSearchConfig []gax.CallOption + UpdateSearchConfig []gax.CallOption + GetSearchConfig []gax.CallOption + DeleteSearchConfig []gax.CallOption + ListSearchConfigs []gax.CallOption + CreateSearchHypernym []gax.CallOption + UpdateSearchHypernym []gax.CallOption + GetSearchHypernym []gax.CallOption + DeleteSearchHypernym []gax.CallOption + ListSearchHypernyms []gax.CallOption + SearchAssets []gax.CallOption + SearchIndexEndpoint []gax.CallOption + CreateIndexEndpoint []gax.CallOption + GetIndexEndpoint []gax.CallOption + ListIndexEndpoints []gax.CallOption + UpdateIndexEndpoint []gax.CallOption + DeleteIndexEndpoint []gax.CallOption + DeployIndex []gax.CallOption + UndeployIndex []gax.CallOption + CreateCollection []gax.CallOption + DeleteCollection []gax.CallOption + GetCollection []gax.CallOption + UpdateCollection []gax.CallOption + ListCollections []gax.CallOption + AddCollectionItem []gax.CallOption + RemoveCollectionItem []gax.CallOption + ViewCollectionItems []gax.CallOption + CancelOperation []gax.CallOption + DeleteOperation []gax.CallOption + GetOperation []gax.CallOption + ListOperations []gax.CallOption +} + +func defaultWarehouseGRPCClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("visionai.googleapis.com:443"), + internaloption.WithDefaultEndpointTemplate("visionai.UNIVERSE_DOMAIN:443"), + internaloption.WithDefaultMTLSEndpoint("visionai.mtls.googleapis.com:443"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.googleapis.com/"), + internaloption.WithDefaultScopes(DefaultAuthScopes()...), + internaloption.EnableJwtWithScope(), + option.WithGRPCDialOption(grpc.WithDefaultCallOptions( + grpc.MaxCallRecvMsgSize(math.MaxInt32))), + } +} + +func defaultWarehouseCallOptions() *WarehouseCallOptions { + return &WarehouseCallOptions{ + CreateAsset: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }) + }), + }, + UpdateAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UploadAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GenerateRetrievalUrl: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + AnalyzeAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + IndexAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + RemoveIndexAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ViewIndexedAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListIndexes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateCorpus: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }) + }), + }, + GetCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListCorpora: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + AnalyzeCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateDataSchema: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }) + }), + }, + UpdateDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListDataSchemas: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateAnnotation: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }) + }), + }, + GetAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListAnnotations: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + IngestAsset: []gax.CallOption{ + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }) + }), + }, + ClipAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GenerateHlsUri: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ImportAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListSearchConfigs: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListSearchHypernyms: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + SearchAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + SearchIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListIndexEndpoints: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeployIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UndeployIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CreateCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + DeleteCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + GetCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + UpdateCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ListCollections: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + AddCollectionItem: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + RemoveCollectionItem: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + ViewCollectionItems: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnCodes([]codes.Code{ + codes.Unavailable, + }, gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }) + }), + }, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +func defaultWarehouseRESTCallOptions() *WarehouseCallOptions { + return &WarehouseCallOptions{ + CreateAsset: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UploadAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GenerateRetrievalUrl: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + AnalyzeAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + IndexAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + RemoveIndexAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ViewIndexedAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListIndexes: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateCorpus: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }, + http.StatusServiceUnavailable) + }), + }, + GetCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListCorpora: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + AnalyzeCorpus: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateDataSchema: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteDataSchema: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListDataSchemas: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateAnnotation: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }, + http.StatusServiceUnavailable) + }), + }, + GetAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListAnnotations: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteAnnotation: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + IngestAsset: []gax.CallOption{ + gax.WithTimeout(120000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 120000 * time.Millisecond, + Multiplier: 2.50, + }, + http.StatusServiceUnavailable) + }), + }, + ClipAsset: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GenerateHlsUri: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ImportAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteSearchConfig: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListSearchConfigs: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteSearchHypernym: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListSearchHypernyms: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + SearchAssets: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + SearchIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListIndexEndpoints: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteIndexEndpoint: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeployIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UndeployIndex: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CreateCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + DeleteCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + GetCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + UpdateCollection: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ListCollections: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + AddCollectionItem: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + RemoveCollectionItem: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + ViewCollectionItems: []gax.CallOption{ + gax.WithTimeout(60000 * time.Millisecond), + gax.WithRetry(func() gax.Retryer { + return gax.OnHTTPCodes(gax.Backoff{ + Initial: 1000 * time.Millisecond, + Max: 10000 * time.Millisecond, + Multiplier: 1.30, + }, + http.StatusServiceUnavailable) + }), + }, + CancelOperation: []gax.CallOption{}, + DeleteOperation: []gax.CallOption{}, + GetOperation: []gax.CallOption{}, + ListOperations: []gax.CallOption{}, + } +} + +// internalWarehouseClient is an interface that defines the methods available from Vision AI API. +type internalWarehouseClient interface { + Close() error + setGoogleClientInfo(...string) + Connection() *grpc.ClientConn + CreateAsset(context.Context, *visionaipb.CreateAssetRequest, ...gax.CallOption) (*visionaipb.Asset, error) + UpdateAsset(context.Context, *visionaipb.UpdateAssetRequest, ...gax.CallOption) (*visionaipb.Asset, error) + GetAsset(context.Context, *visionaipb.GetAssetRequest, ...gax.CallOption) (*visionaipb.Asset, error) + ListAssets(context.Context, *visionaipb.ListAssetsRequest, ...gax.CallOption) *AssetIterator + DeleteAsset(context.Context, *visionaipb.DeleteAssetRequest, ...gax.CallOption) (*DeleteAssetOperation, error) + DeleteAssetOperation(name string) *DeleteAssetOperation + UploadAsset(context.Context, *visionaipb.UploadAssetRequest, ...gax.CallOption) (*UploadAssetOperation, error) + UploadAssetOperation(name string) *UploadAssetOperation + GenerateRetrievalUrl(context.Context, *visionaipb.GenerateRetrievalUrlRequest, ...gax.CallOption) (*visionaipb.GenerateRetrievalUrlResponse, error) + AnalyzeAsset(context.Context, *visionaipb.AnalyzeAssetRequest, ...gax.CallOption) (*AnalyzeAssetOperation, error) + AnalyzeAssetOperation(name string) *AnalyzeAssetOperation + IndexAsset(context.Context, *visionaipb.IndexAssetRequest, ...gax.CallOption) (*IndexAssetOperation, error) + IndexAssetOperation(name string) *IndexAssetOperation + RemoveIndexAsset(context.Context, *visionaipb.RemoveIndexAssetRequest, ...gax.CallOption) (*RemoveIndexAssetOperation, error) + RemoveIndexAssetOperation(name string) *RemoveIndexAssetOperation + ViewIndexedAssets(context.Context, *visionaipb.ViewIndexedAssetsRequest, ...gax.CallOption) *IndexedAssetIterator + CreateIndex(context.Context, *visionaipb.CreateIndexRequest, ...gax.CallOption) (*CreateIndexOperation, error) + CreateIndexOperation(name string) *CreateIndexOperation + UpdateIndex(context.Context, *visionaipb.UpdateIndexRequest, ...gax.CallOption) (*UpdateIndexOperation, error) + UpdateIndexOperation(name string) *UpdateIndexOperation + GetIndex(context.Context, *visionaipb.GetIndexRequest, ...gax.CallOption) (*visionaipb.Index, error) + ListIndexes(context.Context, *visionaipb.ListIndexesRequest, ...gax.CallOption) *IndexIterator + DeleteIndex(context.Context, *visionaipb.DeleteIndexRequest, ...gax.CallOption) (*DeleteIndexOperation, error) + DeleteIndexOperation(name string) *DeleteIndexOperation + CreateCorpus(context.Context, *visionaipb.CreateCorpusRequest, ...gax.CallOption) (*CreateCorpusOperation, error) + CreateCorpusOperation(name string) *CreateCorpusOperation + GetCorpus(context.Context, *visionaipb.GetCorpusRequest, ...gax.CallOption) (*visionaipb.Corpus, error) + UpdateCorpus(context.Context, *visionaipb.UpdateCorpusRequest, ...gax.CallOption) (*visionaipb.Corpus, error) + ListCorpora(context.Context, *visionaipb.ListCorporaRequest, ...gax.CallOption) *CorpusIterator + DeleteCorpus(context.Context, *visionaipb.DeleteCorpusRequest, ...gax.CallOption) error + AnalyzeCorpus(context.Context, *visionaipb.AnalyzeCorpusRequest, ...gax.CallOption) (*AnalyzeCorpusOperation, error) + AnalyzeCorpusOperation(name string) *AnalyzeCorpusOperation + CreateDataSchema(context.Context, *visionaipb.CreateDataSchemaRequest, ...gax.CallOption) (*visionaipb.DataSchema, error) + UpdateDataSchema(context.Context, *visionaipb.UpdateDataSchemaRequest, ...gax.CallOption) (*visionaipb.DataSchema, error) + GetDataSchema(context.Context, *visionaipb.GetDataSchemaRequest, ...gax.CallOption) (*visionaipb.DataSchema, error) + DeleteDataSchema(context.Context, *visionaipb.DeleteDataSchemaRequest, ...gax.CallOption) error + ListDataSchemas(context.Context, *visionaipb.ListDataSchemasRequest, ...gax.CallOption) *DataSchemaIterator + CreateAnnotation(context.Context, *visionaipb.CreateAnnotationRequest, ...gax.CallOption) (*visionaipb.Annotation, error) + GetAnnotation(context.Context, *visionaipb.GetAnnotationRequest, ...gax.CallOption) (*visionaipb.Annotation, error) + ListAnnotations(context.Context, *visionaipb.ListAnnotationsRequest, ...gax.CallOption) *AnnotationIterator + UpdateAnnotation(context.Context, *visionaipb.UpdateAnnotationRequest, ...gax.CallOption) (*visionaipb.Annotation, error) + DeleteAnnotation(context.Context, *visionaipb.DeleteAnnotationRequest, ...gax.CallOption) error + IngestAsset(context.Context, ...gax.CallOption) (visionaipb.Warehouse_IngestAssetClient, error) + ClipAsset(context.Context, *visionaipb.ClipAssetRequest, ...gax.CallOption) (*visionaipb.ClipAssetResponse, error) + GenerateHlsUri(context.Context, *visionaipb.GenerateHlsUriRequest, ...gax.CallOption) (*visionaipb.GenerateHlsUriResponse, error) + ImportAssets(context.Context, *visionaipb.ImportAssetsRequest, ...gax.CallOption) (*ImportAssetsOperation, error) + ImportAssetsOperation(name string) *ImportAssetsOperation + CreateSearchConfig(context.Context, *visionaipb.CreateSearchConfigRequest, ...gax.CallOption) (*visionaipb.SearchConfig, error) + UpdateSearchConfig(context.Context, *visionaipb.UpdateSearchConfigRequest, ...gax.CallOption) (*visionaipb.SearchConfig, error) + GetSearchConfig(context.Context, *visionaipb.GetSearchConfigRequest, ...gax.CallOption) (*visionaipb.SearchConfig, error) + DeleteSearchConfig(context.Context, *visionaipb.DeleteSearchConfigRequest, ...gax.CallOption) error + ListSearchConfigs(context.Context, *visionaipb.ListSearchConfigsRequest, ...gax.CallOption) *SearchConfigIterator + CreateSearchHypernym(context.Context, *visionaipb.CreateSearchHypernymRequest, ...gax.CallOption) (*visionaipb.SearchHypernym, error) + UpdateSearchHypernym(context.Context, *visionaipb.UpdateSearchHypernymRequest, ...gax.CallOption) (*visionaipb.SearchHypernym, error) + GetSearchHypernym(context.Context, *visionaipb.GetSearchHypernymRequest, ...gax.CallOption) (*visionaipb.SearchHypernym, error) + DeleteSearchHypernym(context.Context, *visionaipb.DeleteSearchHypernymRequest, ...gax.CallOption) error + ListSearchHypernyms(context.Context, *visionaipb.ListSearchHypernymsRequest, ...gax.CallOption) *SearchHypernymIterator + SearchAssets(context.Context, *visionaipb.SearchAssetsRequest, ...gax.CallOption) *SearchResultItemIterator + SearchIndexEndpoint(context.Context, *visionaipb.SearchIndexEndpointRequest, ...gax.CallOption) *SearchResultItemIterator + CreateIndexEndpoint(context.Context, *visionaipb.CreateIndexEndpointRequest, ...gax.CallOption) (*CreateIndexEndpointOperation, error) + CreateIndexEndpointOperation(name string) *CreateIndexEndpointOperation + GetIndexEndpoint(context.Context, *visionaipb.GetIndexEndpointRequest, ...gax.CallOption) (*visionaipb.IndexEndpoint, error) + ListIndexEndpoints(context.Context, *visionaipb.ListIndexEndpointsRequest, ...gax.CallOption) *IndexEndpointIterator + UpdateIndexEndpoint(context.Context, *visionaipb.UpdateIndexEndpointRequest, ...gax.CallOption) (*UpdateIndexEndpointOperation, error) + UpdateIndexEndpointOperation(name string) *UpdateIndexEndpointOperation + DeleteIndexEndpoint(context.Context, *visionaipb.DeleteIndexEndpointRequest, ...gax.CallOption) (*DeleteIndexEndpointOperation, error) + DeleteIndexEndpointOperation(name string) *DeleteIndexEndpointOperation + DeployIndex(context.Context, *visionaipb.DeployIndexRequest, ...gax.CallOption) (*DeployIndexOperation, error) + DeployIndexOperation(name string) *DeployIndexOperation + UndeployIndex(context.Context, *visionaipb.UndeployIndexRequest, ...gax.CallOption) (*UndeployIndexOperation, error) + UndeployIndexOperation(name string) *UndeployIndexOperation + CreateCollection(context.Context, *visionaipb.CreateCollectionRequest, ...gax.CallOption) (*CreateCollectionOperation, error) + CreateCollectionOperation(name string) *CreateCollectionOperation + DeleteCollection(context.Context, *visionaipb.DeleteCollectionRequest, ...gax.CallOption) (*DeleteCollectionOperation, error) + DeleteCollectionOperation(name string) *DeleteCollectionOperation + GetCollection(context.Context, *visionaipb.GetCollectionRequest, ...gax.CallOption) (*visionaipb.Collection, error) + UpdateCollection(context.Context, *visionaipb.UpdateCollectionRequest, ...gax.CallOption) (*visionaipb.Collection, error) + ListCollections(context.Context, *visionaipb.ListCollectionsRequest, ...gax.CallOption) *CollectionIterator + AddCollectionItem(context.Context, *visionaipb.AddCollectionItemRequest, ...gax.CallOption) (*visionaipb.AddCollectionItemResponse, error) + RemoveCollectionItem(context.Context, *visionaipb.RemoveCollectionItemRequest, ...gax.CallOption) (*visionaipb.RemoveCollectionItemResponse, error) + ViewCollectionItems(context.Context, *visionaipb.ViewCollectionItemsRequest, ...gax.CallOption) *CollectionItemIterator + 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 +} + +// WarehouseClient is a client for interacting with Vision AI API. +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +// +// Service that manages media content + metadata for streaming. +type WarehouseClient struct { + // The internal transport-dependent client. + internalClient internalWarehouseClient + + // The call options for this service. + CallOptions *WarehouseCallOptions + + // 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 *WarehouseClient) 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 *WarehouseClient) 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 *WarehouseClient) Connection() *grpc.ClientConn { + return c.internalClient.Connection() +} + +// CreateAsset creates an asset inside corpus. +func (c *WarehouseClient) CreateAsset(ctx context.Context, req *visionaipb.CreateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + return c.internalClient.CreateAsset(ctx, req, opts...) +} + +// UpdateAsset updates an asset inside corpus. +func (c *WarehouseClient) UpdateAsset(ctx context.Context, req *visionaipb.UpdateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + return c.internalClient.UpdateAsset(ctx, req, opts...) +} + +// GetAsset reads an asset inside corpus. +func (c *WarehouseClient) GetAsset(ctx context.Context, req *visionaipb.GetAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + return c.internalClient.GetAsset(ctx, req, opts...) +} + +// ListAssets lists an list of assets inside corpus. +func (c *WarehouseClient) ListAssets(ctx context.Context, req *visionaipb.ListAssetsRequest, opts ...gax.CallOption) *AssetIterator { + return c.internalClient.ListAssets(ctx, req, opts...) +} + +// DeleteAsset deletes asset inside corpus. +func (c *WarehouseClient) DeleteAsset(ctx context.Context, req *visionaipb.DeleteAssetRequest, opts ...gax.CallOption) (*DeleteAssetOperation, error) { + return c.internalClient.DeleteAsset(ctx, req, opts...) +} + +// DeleteAssetOperation returns a new DeleteAssetOperation from a given name. +// The name must be that of a previously created DeleteAssetOperation, possibly from a different process. +func (c *WarehouseClient) DeleteAssetOperation(name string) *DeleteAssetOperation { + return c.internalClient.DeleteAssetOperation(name) +} + +// UploadAsset upload asset by specifing the asset Cloud Storage uri. +// For video warehouse, it requires users who call this API have read access +// to the cloud storage file. Once it is uploaded, it can be retrieved by +// GenerateRetrievalUrl API which by default, only can retrieve cloud storage +// files from the same project of the warehouse. To allow retrieval cloud +// storage files that are in a separate project, it requires to find the +// vision ai service account (Go to IAM, check checkbox to show “Include +// Google-provided role grants”, search for “Cloud Vision AI Service Agent”) +// and grant the read access of the cloud storage files to that service +// account. +func (c *WarehouseClient) UploadAsset(ctx context.Context, req *visionaipb.UploadAssetRequest, opts ...gax.CallOption) (*UploadAssetOperation, error) { + return c.internalClient.UploadAsset(ctx, req, opts...) +} + +// UploadAssetOperation returns a new UploadAssetOperation from a given name. +// The name must be that of a previously created UploadAssetOperation, possibly from a different process. +func (c *WarehouseClient) UploadAssetOperation(name string) *UploadAssetOperation { + return c.internalClient.UploadAssetOperation(name) +} + +// GenerateRetrievalUrl generates a signed url for downloading the asset. +// For video warehouse, please see comment of UploadAsset about how to allow +// retrieval of cloud storage files in a different project. +func (c *WarehouseClient) GenerateRetrievalUrl(ctx context.Context, req *visionaipb.GenerateRetrievalUrlRequest, opts ...gax.CallOption) (*visionaipb.GenerateRetrievalUrlResponse, error) { + return c.internalClient.GenerateRetrievalUrl(ctx, req, opts...) +} + +// AnalyzeAsset analyze asset to power search capability. +func (c *WarehouseClient) AnalyzeAsset(ctx context.Context, req *visionaipb.AnalyzeAssetRequest, opts ...gax.CallOption) (*AnalyzeAssetOperation, error) { + return c.internalClient.AnalyzeAsset(ctx, req, opts...) +} + +// AnalyzeAssetOperation returns a new AnalyzeAssetOperation from a given name. +// The name must be that of a previously created AnalyzeAssetOperation, possibly from a different process. +func (c *WarehouseClient) AnalyzeAssetOperation(name string) *AnalyzeAssetOperation { + return c.internalClient.AnalyzeAssetOperation(name) +} + +// IndexAsset index one asset for search. +// Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND +func (c *WarehouseClient) IndexAsset(ctx context.Context, req *visionaipb.IndexAssetRequest, opts ...gax.CallOption) (*IndexAssetOperation, error) { + return c.internalClient.IndexAsset(ctx, req, opts...) +} + +// IndexAssetOperation returns a new IndexAssetOperation from a given name. +// The name must be that of a previously created IndexAssetOperation, possibly from a different process. +func (c *WarehouseClient) IndexAssetOperation(name string) *IndexAssetOperation { + return c.internalClient.IndexAssetOperation(name) +} + +// RemoveIndexAsset remove one asset’s index data for search. +// Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND +func (c *WarehouseClient) RemoveIndexAsset(ctx context.Context, req *visionaipb.RemoveIndexAssetRequest, opts ...gax.CallOption) (*RemoveIndexAssetOperation, error) { + return c.internalClient.RemoveIndexAsset(ctx, req, opts...) +} + +// RemoveIndexAssetOperation returns a new RemoveIndexAssetOperation from a given name. +// The name must be that of a previously created RemoveIndexAssetOperation, possibly from a different process. +func (c *WarehouseClient) RemoveIndexAssetOperation(name string) *RemoveIndexAssetOperation { + return c.internalClient.RemoveIndexAssetOperation(name) +} + +// ViewIndexedAssets lists assets inside an index. +func (c *WarehouseClient) ViewIndexedAssets(ctx context.Context, req *visionaipb.ViewIndexedAssetsRequest, opts ...gax.CallOption) *IndexedAssetIterator { + return c.internalClient.ViewIndexedAssets(ctx, req, opts...) +} + +// CreateIndex creates an Index under the corpus. +func (c *WarehouseClient) CreateIndex(ctx context.Context, req *visionaipb.CreateIndexRequest, opts ...gax.CallOption) (*CreateIndexOperation, error) { + return c.internalClient.CreateIndex(ctx, req, opts...) +} + +// CreateIndexOperation returns a new CreateIndexOperation from a given name. +// The name must be that of a previously created CreateIndexOperation, possibly from a different process. +func (c *WarehouseClient) CreateIndexOperation(name string) *CreateIndexOperation { + return c.internalClient.CreateIndexOperation(name) +} + +// UpdateIndex updates an Index under the corpus. +// Users can perform a metadata-only update or trigger a full index rebuild +// with different update_mask values. +func (c *WarehouseClient) UpdateIndex(ctx context.Context, req *visionaipb.UpdateIndexRequest, opts ...gax.CallOption) (*UpdateIndexOperation, error) { + return c.internalClient.UpdateIndex(ctx, req, opts...) +} + +// UpdateIndexOperation returns a new UpdateIndexOperation from a given name. +// The name must be that of a previously created UpdateIndexOperation, possibly from a different process. +func (c *WarehouseClient) UpdateIndexOperation(name string) *UpdateIndexOperation { + return c.internalClient.UpdateIndexOperation(name) +} + +// GetIndex gets the details of a single Index under a Corpus. +func (c *WarehouseClient) GetIndex(ctx context.Context, req *visionaipb.GetIndexRequest, opts ...gax.CallOption) (*visionaipb.Index, error) { + return c.internalClient.GetIndex(ctx, req, opts...) +} + +// ListIndexes list all Indexes in a given Corpus. +func (c *WarehouseClient) ListIndexes(ctx context.Context, req *visionaipb.ListIndexesRequest, opts ...gax.CallOption) *IndexIterator { + return c.internalClient.ListIndexes(ctx, req, opts...) +} + +// DeleteIndex delete a single Index. In order to delete an index, the caller must +// make sure that it is not deployed to any index endpoint. +func (c *WarehouseClient) DeleteIndex(ctx context.Context, req *visionaipb.DeleteIndexRequest, opts ...gax.CallOption) (*DeleteIndexOperation, error) { + return c.internalClient.DeleteIndex(ctx, req, opts...) +} + +// DeleteIndexOperation returns a new DeleteIndexOperation from a given name. +// The name must be that of a previously created DeleteIndexOperation, possibly from a different process. +func (c *WarehouseClient) DeleteIndexOperation(name string) *DeleteIndexOperation { + return c.internalClient.DeleteIndexOperation(name) +} + +// CreateCorpus creates a corpus inside a project. +func (c *WarehouseClient) CreateCorpus(ctx context.Context, req *visionaipb.CreateCorpusRequest, opts ...gax.CallOption) (*CreateCorpusOperation, error) { + return c.internalClient.CreateCorpus(ctx, req, opts...) +} + +// CreateCorpusOperation returns a new CreateCorpusOperation from a given name. +// The name must be that of a previously created CreateCorpusOperation, possibly from a different process. +func (c *WarehouseClient) CreateCorpusOperation(name string) *CreateCorpusOperation { + return c.internalClient.CreateCorpusOperation(name) +} + +// GetCorpus gets corpus details inside a project. +func (c *WarehouseClient) GetCorpus(ctx context.Context, req *visionaipb.GetCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + return c.internalClient.GetCorpus(ctx, req, opts...) +} + +// UpdateCorpus updates a corpus in a project. +func (c *WarehouseClient) UpdateCorpus(ctx context.Context, req *visionaipb.UpdateCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + return c.internalClient.UpdateCorpus(ctx, req, opts...) +} + +// ListCorpora lists all corpora in a project. +func (c *WarehouseClient) ListCorpora(ctx context.Context, req *visionaipb.ListCorporaRequest, opts ...gax.CallOption) *CorpusIterator { + return c.internalClient.ListCorpora(ctx, req, opts...) +} + +// DeleteCorpus deletes a corpus only if its empty. +// Returns empty response. +func (c *WarehouseClient) DeleteCorpus(ctx context.Context, req *visionaipb.DeleteCorpusRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteCorpus(ctx, req, opts...) +} + +// AnalyzeCorpus analyzes a corpus. +func (c *WarehouseClient) AnalyzeCorpus(ctx context.Context, req *visionaipb.AnalyzeCorpusRequest, opts ...gax.CallOption) (*AnalyzeCorpusOperation, error) { + return c.internalClient.AnalyzeCorpus(ctx, req, opts...) +} + +// AnalyzeCorpusOperation returns a new AnalyzeCorpusOperation from a given name. +// The name must be that of a previously created AnalyzeCorpusOperation, possibly from a different process. +func (c *WarehouseClient) AnalyzeCorpusOperation(name string) *AnalyzeCorpusOperation { + return c.internalClient.AnalyzeCorpusOperation(name) +} + +// CreateDataSchema creates data schema inside corpus. +func (c *WarehouseClient) CreateDataSchema(ctx context.Context, req *visionaipb.CreateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + return c.internalClient.CreateDataSchema(ctx, req, opts...) +} + +// UpdateDataSchema updates data schema inside corpus. +func (c *WarehouseClient) UpdateDataSchema(ctx context.Context, req *visionaipb.UpdateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + return c.internalClient.UpdateDataSchema(ctx, req, opts...) +} + +// GetDataSchema gets data schema inside corpus. +func (c *WarehouseClient) GetDataSchema(ctx context.Context, req *visionaipb.GetDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + return c.internalClient.GetDataSchema(ctx, req, opts...) +} + +// DeleteDataSchema deletes data schema inside corpus. +func (c *WarehouseClient) DeleteDataSchema(ctx context.Context, req *visionaipb.DeleteDataSchemaRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteDataSchema(ctx, req, opts...) +} + +// ListDataSchemas lists a list of data schemas inside corpus. +func (c *WarehouseClient) ListDataSchemas(ctx context.Context, req *visionaipb.ListDataSchemasRequest, opts ...gax.CallOption) *DataSchemaIterator { + return c.internalClient.ListDataSchemas(ctx, req, opts...) +} + +// CreateAnnotation creates annotation inside asset. +func (c *WarehouseClient) CreateAnnotation(ctx context.Context, req *visionaipb.CreateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + return c.internalClient.CreateAnnotation(ctx, req, opts...) +} + +// GetAnnotation reads annotation inside asset. +func (c *WarehouseClient) GetAnnotation(ctx context.Context, req *visionaipb.GetAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + return c.internalClient.GetAnnotation(ctx, req, opts...) +} + +// ListAnnotations lists a list of annotations inside asset. +func (c *WarehouseClient) ListAnnotations(ctx context.Context, req *visionaipb.ListAnnotationsRequest, opts ...gax.CallOption) *AnnotationIterator { + return c.internalClient.ListAnnotations(ctx, req, opts...) +} + +// UpdateAnnotation updates annotation inside asset. +func (c *WarehouseClient) UpdateAnnotation(ctx context.Context, req *visionaipb.UpdateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + return c.internalClient.UpdateAnnotation(ctx, req, opts...) +} + +// DeleteAnnotation deletes annotation inside asset. +func (c *WarehouseClient) DeleteAnnotation(ctx context.Context, req *visionaipb.DeleteAnnotationRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteAnnotation(ctx, req, opts...) +} + +// IngestAsset ingests data for the asset. It is not allowed to ingest a data chunk which +// is already expired according to TTL. +// This method is only available via the gRPC API (not HTTP since +// bi-directional streaming is not supported via HTTP). +// +// This method is not supported for the REST transport. +func (c *WarehouseClient) IngestAsset(ctx context.Context, opts ...gax.CallOption) (visionaipb.Warehouse_IngestAssetClient, error) { + return c.internalClient.IngestAsset(ctx, opts...) +} + +// ClipAsset generates clips for downloading. The api takes in a time range, and +// generates a clip of the first content available after start_time and +// before end_time, which may overflow beyond these bounds. +// Returned clips are truncated if the total size of the clips are larger +// than 100MB. +func (c *WarehouseClient) ClipAsset(ctx context.Context, req *visionaipb.ClipAssetRequest, opts ...gax.CallOption) (*visionaipb.ClipAssetResponse, error) { + return c.internalClient.ClipAsset(ctx, req, opts...) +} + +// GenerateHlsUri generates a uri for an HLS manifest. The api takes in a collection of time +// ranges, and generates a URI for an HLS manifest that covers all the +// requested time ranges. +func (c *WarehouseClient) GenerateHlsUri(ctx context.Context, req *visionaipb.GenerateHlsUriRequest, opts ...gax.CallOption) (*visionaipb.GenerateHlsUriResponse, error) { + return c.internalClient.GenerateHlsUri(ctx, req, opts...) +} + +// ImportAssets imports assets (images plus annotations) from a meta file on cloud storage. +// Each row in the meta file is corresponding to an image (specified by a +// cloud storage uri) and its annotations. +func (c *WarehouseClient) ImportAssets(ctx context.Context, req *visionaipb.ImportAssetsRequest, opts ...gax.CallOption) (*ImportAssetsOperation, error) { + return c.internalClient.ImportAssets(ctx, req, opts...) +} + +// ImportAssetsOperation returns a new ImportAssetsOperation from a given name. +// The name must be that of a previously created ImportAssetsOperation, possibly from a different process. +func (c *WarehouseClient) ImportAssetsOperation(name string) *ImportAssetsOperation { + return c.internalClient.ImportAssetsOperation(name) +} + +// CreateSearchConfig creates a search configuration inside a corpus. +// +// Please follow the rules below to create a valid CreateSearchConfigRequest. +// — General Rules — +// +// Request.search_config_id must not be associated with an existing +// SearchConfig. +// +// Request must contain at least one non-empty search_criteria_property or +// facet_property. +// +// mapped_fields must not be empty, and must map to existing UGA keys. +// +// All mapped_fields must be of the same type. +// +// All mapped_fields must share the same granularity. +// +// All mapped_fields must share the same semantic SearchConfig match +// options. +// For property-specific rules, please reference the comments for +// FacetProperty and SearchCriteriaProperty. +func (c *WarehouseClient) CreateSearchConfig(ctx context.Context, req *visionaipb.CreateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + return c.internalClient.CreateSearchConfig(ctx, req, opts...) +} + +// UpdateSearchConfig updates a search configuration inside a corpus. +// +// Please follow the rules below to create a valid UpdateSearchConfigRequest. +// — General Rules — +// +// Request.search_configuration.name must already exist. +// +// Request must contain at least one non-empty search_criteria_property or +// facet_property. +// +// mapped_fields must not be empty, and must map to existing UGA keys. +// +// All mapped_fields must be of the same type. +// +// All mapped_fields must share the same granularity. +// +// All mapped_fields must share the same semantic SearchConfig match +// options. +// For property-specific rules, please reference the comments for +// FacetProperty and SearchCriteriaProperty. +func (c *WarehouseClient) UpdateSearchConfig(ctx context.Context, req *visionaipb.UpdateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + return c.internalClient.UpdateSearchConfig(ctx, req, opts...) +} + +// GetSearchConfig gets a search configuration inside a corpus. +func (c *WarehouseClient) GetSearchConfig(ctx context.Context, req *visionaipb.GetSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + return c.internalClient.GetSearchConfig(ctx, req, opts...) +} + +// DeleteSearchConfig deletes a search configuration inside a corpus. +// +// For a DeleteSearchConfigRequest to be valid, +// Request.search_configuration.name must already exist. +func (c *WarehouseClient) DeleteSearchConfig(ctx context.Context, req *visionaipb.DeleteSearchConfigRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteSearchConfig(ctx, req, opts...) +} + +// ListSearchConfigs lists all search configurations inside a corpus. +func (c *WarehouseClient) ListSearchConfigs(ctx context.Context, req *visionaipb.ListSearchConfigsRequest, opts ...gax.CallOption) *SearchConfigIterator { + return c.internalClient.ListSearchConfigs(ctx, req, opts...) +} + +// CreateSearchHypernym creates a SearchHypernym inside a corpus. +func (c *WarehouseClient) CreateSearchHypernym(ctx context.Context, req *visionaipb.CreateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + return c.internalClient.CreateSearchHypernym(ctx, req, opts...) +} + +// UpdateSearchHypernym updates a SearchHypernym inside a corpus. +func (c *WarehouseClient) UpdateSearchHypernym(ctx context.Context, req *visionaipb.UpdateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + return c.internalClient.UpdateSearchHypernym(ctx, req, opts...) +} + +// GetSearchHypernym gets a SearchHypernym inside a corpus. +func (c *WarehouseClient) GetSearchHypernym(ctx context.Context, req *visionaipb.GetSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + return c.internalClient.GetSearchHypernym(ctx, req, opts...) +} + +// DeleteSearchHypernym deletes a SearchHypernym inside a corpus. +func (c *WarehouseClient) DeleteSearchHypernym(ctx context.Context, req *visionaipb.DeleteSearchHypernymRequest, opts ...gax.CallOption) error { + return c.internalClient.DeleteSearchHypernym(ctx, req, opts...) +} + +// ListSearchHypernyms lists SearchHypernyms inside a corpus. +func (c *WarehouseClient) ListSearchHypernyms(ctx context.Context, req *visionaipb.ListSearchHypernymsRequest, opts ...gax.CallOption) *SearchHypernymIterator { + return c.internalClient.ListSearchHypernyms(ctx, req, opts...) +} + +// SearchAssets search media asset. +func (c *WarehouseClient) SearchAssets(ctx context.Context, req *visionaipb.SearchAssetsRequest, opts ...gax.CallOption) *SearchResultItemIterator { + return c.internalClient.SearchAssets(ctx, req, opts...) +} + +// SearchIndexEndpoint search a deployed index endpoint (IMAGE corpus type only). +func (c *WarehouseClient) SearchIndexEndpoint(ctx context.Context, req *visionaipb.SearchIndexEndpointRequest, opts ...gax.CallOption) *SearchResultItemIterator { + return c.internalClient.SearchIndexEndpoint(ctx, req, opts...) +} + +// CreateIndexEndpoint creates an IndexEndpoint. +func (c *WarehouseClient) CreateIndexEndpoint(ctx context.Context, req *visionaipb.CreateIndexEndpointRequest, opts ...gax.CallOption) (*CreateIndexEndpointOperation, error) { + return c.internalClient.CreateIndexEndpoint(ctx, req, opts...) +} + +// CreateIndexEndpointOperation returns a new CreateIndexEndpointOperation from a given name. +// The name must be that of a previously created CreateIndexEndpointOperation, possibly from a different process. +func (c *WarehouseClient) CreateIndexEndpointOperation(name string) *CreateIndexEndpointOperation { + return c.internalClient.CreateIndexEndpointOperation(name) +} + +// GetIndexEndpoint gets an IndexEndpoint. +func (c *WarehouseClient) GetIndexEndpoint(ctx context.Context, req *visionaipb.GetIndexEndpointRequest, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, error) { + return c.internalClient.GetIndexEndpoint(ctx, req, opts...) +} + +// ListIndexEndpoints lists all IndexEndpoints in a project. +func (c *WarehouseClient) ListIndexEndpoints(ctx context.Context, req *visionaipb.ListIndexEndpointsRequest, opts ...gax.CallOption) *IndexEndpointIterator { + return c.internalClient.ListIndexEndpoints(ctx, req, opts...) +} + +// UpdateIndexEndpoint updates an IndexEndpoint. +func (c *WarehouseClient) UpdateIndexEndpoint(ctx context.Context, req *visionaipb.UpdateIndexEndpointRequest, opts ...gax.CallOption) (*UpdateIndexEndpointOperation, error) { + return c.internalClient.UpdateIndexEndpoint(ctx, req, opts...) +} + +// UpdateIndexEndpointOperation returns a new UpdateIndexEndpointOperation from a given name. +// The name must be that of a previously created UpdateIndexEndpointOperation, possibly from a different process. +func (c *WarehouseClient) UpdateIndexEndpointOperation(name string) *UpdateIndexEndpointOperation { + return c.internalClient.UpdateIndexEndpointOperation(name) +} + +// DeleteIndexEndpoint deletes an IndexEndpoint. +func (c *WarehouseClient) DeleteIndexEndpoint(ctx context.Context, req *visionaipb.DeleteIndexEndpointRequest, opts ...gax.CallOption) (*DeleteIndexEndpointOperation, error) { + return c.internalClient.DeleteIndexEndpoint(ctx, req, opts...) +} + +// DeleteIndexEndpointOperation returns a new DeleteIndexEndpointOperation from a given name. +// The name must be that of a previously created DeleteIndexEndpointOperation, possibly from a different process. +func (c *WarehouseClient) DeleteIndexEndpointOperation(name string) *DeleteIndexEndpointOperation { + return c.internalClient.DeleteIndexEndpointOperation(name) +} + +// DeployIndex deploys an Index to IndexEndpoint. +func (c *WarehouseClient) DeployIndex(ctx context.Context, req *visionaipb.DeployIndexRequest, opts ...gax.CallOption) (*DeployIndexOperation, error) { + return c.internalClient.DeployIndex(ctx, req, opts...) +} + +// DeployIndexOperation returns a new DeployIndexOperation from a given name. +// The name must be that of a previously created DeployIndexOperation, possibly from a different process. +func (c *WarehouseClient) DeployIndexOperation(name string) *DeployIndexOperation { + return c.internalClient.DeployIndexOperation(name) +} + +// UndeployIndex undeploys an Index from IndexEndpoint. +func (c *WarehouseClient) UndeployIndex(ctx context.Context, req *visionaipb.UndeployIndexRequest, opts ...gax.CallOption) (*UndeployIndexOperation, error) { + return c.internalClient.UndeployIndex(ctx, req, opts...) +} + +// UndeployIndexOperation returns a new UndeployIndexOperation from a given name. +// The name must be that of a previously created UndeployIndexOperation, possibly from a different process. +func (c *WarehouseClient) UndeployIndexOperation(name string) *UndeployIndexOperation { + return c.internalClient.UndeployIndexOperation(name) +} + +// CreateCollection creates a collection. +func (c *WarehouseClient) CreateCollection(ctx context.Context, req *visionaipb.CreateCollectionRequest, opts ...gax.CallOption) (*CreateCollectionOperation, error) { + return c.internalClient.CreateCollection(ctx, req, opts...) +} + +// CreateCollectionOperation returns a new CreateCollectionOperation from a given name. +// The name must be that of a previously created CreateCollectionOperation, possibly from a different process. +func (c *WarehouseClient) CreateCollectionOperation(name string) *CreateCollectionOperation { + return c.internalClient.CreateCollectionOperation(name) +} + +// DeleteCollection deletes a collection. +func (c *WarehouseClient) DeleteCollection(ctx context.Context, req *visionaipb.DeleteCollectionRequest, opts ...gax.CallOption) (*DeleteCollectionOperation, error) { + return c.internalClient.DeleteCollection(ctx, req, opts...) +} + +// DeleteCollectionOperation returns a new DeleteCollectionOperation from a given name. +// The name must be that of a previously created DeleteCollectionOperation, possibly from a different process. +func (c *WarehouseClient) DeleteCollectionOperation(name string) *DeleteCollectionOperation { + return c.internalClient.DeleteCollectionOperation(name) +} + +// GetCollection gets a collection. +func (c *WarehouseClient) GetCollection(ctx context.Context, req *visionaipb.GetCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, error) { + return c.internalClient.GetCollection(ctx, req, opts...) +} + +// UpdateCollection updates a collection. +func (c *WarehouseClient) UpdateCollection(ctx context.Context, req *visionaipb.UpdateCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, error) { + return c.internalClient.UpdateCollection(ctx, req, opts...) +} + +// ListCollections lists collections inside a corpus. +func (c *WarehouseClient) ListCollections(ctx context.Context, req *visionaipb.ListCollectionsRequest, opts ...gax.CallOption) *CollectionIterator { + return c.internalClient.ListCollections(ctx, req, opts...) +} + +// AddCollectionItem adds an item into a Collection. +func (c *WarehouseClient) AddCollectionItem(ctx context.Context, req *visionaipb.AddCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.AddCollectionItemResponse, error) { + return c.internalClient.AddCollectionItem(ctx, req, opts...) +} + +// RemoveCollectionItem removes an item from a collection. +func (c *WarehouseClient) RemoveCollectionItem(ctx context.Context, req *visionaipb.RemoveCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.RemoveCollectionItemResponse, error) { + return c.internalClient.RemoveCollectionItem(ctx, req, opts...) +} + +// ViewCollectionItems view items inside a collection. +func (c *WarehouseClient) ViewCollectionItems(ctx context.Context, req *visionaipb.ViewCollectionItemsRequest, opts ...gax.CallOption) *CollectionItemIterator { + return c.internalClient.ViewCollectionItems(ctx, req, opts...) +} + +// CancelOperation is a utility method from google.longrunning.Operations. +func (c *WarehouseClient) 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 *WarehouseClient) 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 *WarehouseClient) 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 *WarehouseClient) ListOperations(ctx context.Context, req *longrunningpb.ListOperationsRequest, opts ...gax.CallOption) *OperationIterator { + return c.internalClient.ListOperations(ctx, req, opts...) +} + +// warehouseGRPCClient is a client for interacting with Vision AI API over gRPC transport. +// +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type warehouseGRPCClient struct { + // Connection pool of gRPC connections to the service. + connPool gtransport.ConnPool + + // Points back to the CallOptions field of the containing WarehouseClient + CallOptions **WarehouseCallOptions + + // The gRPC API client. + warehouseClient visionaipb.WarehouseClient + + // 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 + + // The x-goog-* metadata to be sent with each request. + xGoogHeaders []string +} + +// NewWarehouseClient creates a new warehouse client based on gRPC. +// The returned client must be Closed when it is done being used to clean up its underlying connections. +// +// Service that manages media content + metadata for streaming. +func NewWarehouseClient(ctx context.Context, opts ...option.ClientOption) (*WarehouseClient, error) { + clientOpts := defaultWarehouseGRPCClientOptions() + if newWarehouseClientHook != nil { + hookOpts, err := newWarehouseClientHook(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 := WarehouseClient{CallOptions: defaultWarehouseCallOptions()} + + c := &warehouseGRPCClient{ + connPool: connPool, + warehouseClient: visionaipb.NewWarehouseClient(connPool), + CallOptions: &client.CallOptions, + operationsClient: longrunningpb.NewOperationsClient(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 *warehouseGRPCClient) 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 *warehouseGRPCClient) 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 *warehouseGRPCClient) Close() error { + return c.connPool.Close() +} + +// Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls. +type warehouseRESTClient struct { + // The http endpoint to connect to. + endpoint string + + // The http client. + httpClient *http.Client + + // 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 + + // The x-goog-* headers to be sent with each request. + xGoogHeaders []string + + // Points back to the CallOptions field of the containing WarehouseClient + CallOptions **WarehouseCallOptions +} + +// NewWarehouseRESTClient creates a new warehouse rest client. +// +// Service that manages media content + metadata for streaming. +func NewWarehouseRESTClient(ctx context.Context, opts ...option.ClientOption) (*WarehouseClient, error) { + clientOpts := append(defaultWarehouseRESTClientOptions(), opts...) + httpClient, endpoint, err := httptransport.NewClient(ctx, clientOpts...) + if err != nil { + return nil, err + } + + callOpts := defaultWarehouseRESTCallOptions() + c := &warehouseRESTClient{ + endpoint: endpoint, + httpClient: httpClient, + CallOptions: &callOpts, + } + c.setGoogleClientInfo() + + lroOpts := []option.ClientOption{ + option.WithHTTPClient(httpClient), + option.WithEndpoint(endpoint), + } + opClient, err := lroauto.NewOperationsRESTClient(ctx, lroOpts...) + if err != nil { + return nil, err + } + c.LROClient = &opClient + + return &WarehouseClient{internalClient: c, CallOptions: callOpts}, nil +} + +func defaultWarehouseRESTClientOptions() []option.ClientOption { + return []option.ClientOption{ + internaloption.WithDefaultEndpoint("https://visionai.googleapis.com"), + internaloption.WithDefaultEndpointTemplate("https://visionai.UNIVERSE_DOMAIN"), + internaloption.WithDefaultMTLSEndpoint("https://visionai.mtls.googleapis.com"), + internaloption.WithDefaultUniverseDomain("googleapis.com"), + internaloption.WithDefaultAudience("https://visionai.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 *warehouseRESTClient) 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 *warehouseRESTClient) 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 *warehouseRESTClient) Connection() *grpc.ClientConn { + return nil +} +func (c *warehouseGRPCClient) CreateAsset(ctx context.Context, req *visionaipb.CreateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, 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).CreateAsset[0:len((*c.CallOptions).CreateAsset):len((*c.CallOptions).CreateAsset)], opts...) + var resp *visionaipb.Asset + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateAsset(ctx context.Context, req *visionaipb.UpdateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "asset.name", url.QueryEscape(req.GetAsset().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateAsset[0:len((*c.CallOptions).UpdateAsset):len((*c.CallOptions).UpdateAsset)], opts...) + var resp *visionaipb.Asset + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GetAsset(ctx context.Context, req *visionaipb.GetAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, 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).GetAsset[0:len((*c.CallOptions).GetAsset):len((*c.CallOptions).GetAsset)], opts...) + var resp *visionaipb.Asset + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListAssets(ctx context.Context, req *visionaipb.ListAssetsRequest, opts ...gax.CallOption) *AssetIterator { + 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).ListAssets[0:len((*c.CallOptions).ListAssets):len((*c.CallOptions).ListAssets)], opts...) + it := &AssetIterator{} + req = proto.Clone(req).(*visionaipb.ListAssetsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Asset, string, error) { + resp := &visionaipb.ListAssetsResponse{} + 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.warehouseClient.ListAssets(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetAssets(), 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 *warehouseGRPCClient) DeleteAsset(ctx context.Context, req *visionaipb.DeleteAssetRequest, opts ...gax.CallOption) (*DeleteAssetOperation, 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).DeleteAsset[0:len((*c.CallOptions).DeleteAsset):len((*c.CallOptions).DeleteAsset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.DeleteAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) UploadAsset(ctx context.Context, req *visionaipb.UploadAssetRequest, opts ...gax.CallOption) (*UploadAssetOperation, 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).UploadAsset[0:len((*c.CallOptions).UploadAsset):len((*c.CallOptions).UploadAsset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UploadAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UploadAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) GenerateRetrievalUrl(ctx context.Context, req *visionaipb.GenerateRetrievalUrlRequest, opts ...gax.CallOption) (*visionaipb.GenerateRetrievalUrlResponse, 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).GenerateRetrievalUrl[0:len((*c.CallOptions).GenerateRetrievalUrl):len((*c.CallOptions).GenerateRetrievalUrl)], opts...) + var resp *visionaipb.GenerateRetrievalUrlResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GenerateRetrievalUrl(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) AnalyzeAsset(ctx context.Context, req *visionaipb.AnalyzeAssetRequest, opts ...gax.CallOption) (*AnalyzeAssetOperation, 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).AnalyzeAsset[0:len((*c.CallOptions).AnalyzeAsset):len((*c.CallOptions).AnalyzeAsset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.AnalyzeAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &AnalyzeAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) IndexAsset(ctx context.Context, req *visionaipb.IndexAssetRequest, opts ...gax.CallOption) (*IndexAssetOperation, 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).IndexAsset[0:len((*c.CallOptions).IndexAsset):len((*c.CallOptions).IndexAsset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.IndexAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &IndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) RemoveIndexAsset(ctx context.Context, req *visionaipb.RemoveIndexAssetRequest, opts ...gax.CallOption) (*RemoveIndexAssetOperation, 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).RemoveIndexAsset[0:len((*c.CallOptions).RemoveIndexAsset):len((*c.CallOptions).RemoveIndexAsset)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.RemoveIndexAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &RemoveIndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) ViewIndexedAssets(ctx context.Context, req *visionaipb.ViewIndexedAssetsRequest, opts ...gax.CallOption) *IndexedAssetIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index", url.QueryEscape(req.GetIndex()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ViewIndexedAssets[0:len((*c.CallOptions).ViewIndexedAssets):len((*c.CallOptions).ViewIndexedAssets)], opts...) + it := &IndexedAssetIterator{} + req = proto.Clone(req).(*visionaipb.ViewIndexedAssetsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.IndexedAsset, string, error) { + resp := &visionaipb.ViewIndexedAssetsResponse{} + 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.warehouseClient.ViewIndexedAssets(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetIndexedAssets(), 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 *warehouseGRPCClient) CreateIndex(ctx context.Context, req *visionaipb.CreateIndexRequest, opts ...gax.CallOption) (*CreateIndexOperation, 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).CreateIndex[0:len((*c.CallOptions).CreateIndex):len((*c.CallOptions).CreateIndex)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) UpdateIndex(ctx context.Context, req *visionaipb.UpdateIndexRequest, opts ...gax.CallOption) (*UpdateIndexOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index.name", url.QueryEscape(req.GetIndex().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateIndex[0:len((*c.CallOptions).UpdateIndex):len((*c.CallOptions).UpdateIndex)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) GetIndex(ctx context.Context, req *visionaipb.GetIndexRequest, opts ...gax.CallOption) (*visionaipb.Index, 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).GetIndex[0:len((*c.CallOptions).GetIndex):len((*c.CallOptions).GetIndex)], opts...) + var resp *visionaipb.Index + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListIndexes(ctx context.Context, req *visionaipb.ListIndexesRequest, opts ...gax.CallOption) *IndexIterator { + 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).ListIndexes[0:len((*c.CallOptions).ListIndexes):len((*c.CallOptions).ListIndexes)], opts...) + it := &IndexIterator{} + req = proto.Clone(req).(*visionaipb.ListIndexesRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Index, string, error) { + resp := &visionaipb.ListIndexesResponse{} + 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.warehouseClient.ListIndexes(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetIndexes(), 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 *warehouseGRPCClient) DeleteIndex(ctx context.Context, req *visionaipb.DeleteIndexRequest, opts ...gax.CallOption) (*DeleteIndexOperation, 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).DeleteIndex[0:len((*c.CallOptions).DeleteIndex):len((*c.CallOptions).DeleteIndex)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.DeleteIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) CreateCorpus(ctx context.Context, req *visionaipb.CreateCorpusRequest, opts ...gax.CallOption) (*CreateCorpusOperation, 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).CreateCorpus[0:len((*c.CallOptions).CreateCorpus):len((*c.CallOptions).CreateCorpus)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateCorpus(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) GetCorpus(ctx context.Context, req *visionaipb.GetCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, 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).GetCorpus[0:len((*c.CallOptions).GetCorpus):len((*c.CallOptions).GetCorpus)], opts...) + var resp *visionaipb.Corpus + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetCorpus(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateCorpus(ctx context.Context, req *visionaipb.UpdateCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "corpus.name", url.QueryEscape(req.GetCorpus().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateCorpus[0:len((*c.CallOptions).UpdateCorpus):len((*c.CallOptions).UpdateCorpus)], opts...) + var resp *visionaipb.Corpus + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateCorpus(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListCorpora(ctx context.Context, req *visionaipb.ListCorporaRequest, opts ...gax.CallOption) *CorpusIterator { + 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).ListCorpora[0:len((*c.CallOptions).ListCorpora):len((*c.CallOptions).ListCorpora)], opts...) + it := &CorpusIterator{} + req = proto.Clone(req).(*visionaipb.ListCorporaRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Corpus, string, error) { + resp := &visionaipb.ListCorporaResponse{} + 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.warehouseClient.ListCorpora(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetCorpora(), 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 *warehouseGRPCClient) DeleteCorpus(ctx context.Context, req *visionaipb.DeleteCorpusRequest, 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).DeleteCorpus[0:len((*c.CallOptions).DeleteCorpus):len((*c.CallOptions).DeleteCorpus)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.warehouseClient.DeleteCorpus(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *warehouseGRPCClient) AnalyzeCorpus(ctx context.Context, req *visionaipb.AnalyzeCorpusRequest, opts ...gax.CallOption) (*AnalyzeCorpusOperation, 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).AnalyzeCorpus[0:len((*c.CallOptions).AnalyzeCorpus):len((*c.CallOptions).AnalyzeCorpus)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.AnalyzeCorpus(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &AnalyzeCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) CreateDataSchema(ctx context.Context, req *visionaipb.CreateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, 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).CreateDataSchema[0:len((*c.CallOptions).CreateDataSchema):len((*c.CallOptions).CreateDataSchema)], opts...) + var resp *visionaipb.DataSchema + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateDataSchema(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateDataSchema(ctx context.Context, req *visionaipb.UpdateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "data_schema.name", url.QueryEscape(req.GetDataSchema().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateDataSchema[0:len((*c.CallOptions).UpdateDataSchema):len((*c.CallOptions).UpdateDataSchema)], opts...) + var resp *visionaipb.DataSchema + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateDataSchema(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GetDataSchema(ctx context.Context, req *visionaipb.GetDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, 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).GetDataSchema[0:len((*c.CallOptions).GetDataSchema):len((*c.CallOptions).GetDataSchema)], opts...) + var resp *visionaipb.DataSchema + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetDataSchema(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) DeleteDataSchema(ctx context.Context, req *visionaipb.DeleteDataSchemaRequest, 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).DeleteDataSchema[0:len((*c.CallOptions).DeleteDataSchema):len((*c.CallOptions).DeleteDataSchema)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.warehouseClient.DeleteDataSchema(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *warehouseGRPCClient) ListDataSchemas(ctx context.Context, req *visionaipb.ListDataSchemasRequest, opts ...gax.CallOption) *DataSchemaIterator { + 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).ListDataSchemas[0:len((*c.CallOptions).ListDataSchemas):len((*c.CallOptions).ListDataSchemas)], opts...) + it := &DataSchemaIterator{} + req = proto.Clone(req).(*visionaipb.ListDataSchemasRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.DataSchema, string, error) { + resp := &visionaipb.ListDataSchemasResponse{} + 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.warehouseClient.ListDataSchemas(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetDataSchemas(), 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 *warehouseGRPCClient) CreateAnnotation(ctx context.Context, req *visionaipb.CreateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, 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).CreateAnnotation[0:len((*c.CallOptions).CreateAnnotation):len((*c.CallOptions).CreateAnnotation)], opts...) + var resp *visionaipb.Annotation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateAnnotation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GetAnnotation(ctx context.Context, req *visionaipb.GetAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, 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).GetAnnotation[0:len((*c.CallOptions).GetAnnotation):len((*c.CallOptions).GetAnnotation)], opts...) + var resp *visionaipb.Annotation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetAnnotation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListAnnotations(ctx context.Context, req *visionaipb.ListAnnotationsRequest, opts ...gax.CallOption) *AnnotationIterator { + 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).ListAnnotations[0:len((*c.CallOptions).ListAnnotations):len((*c.CallOptions).ListAnnotations)], opts...) + it := &AnnotationIterator{} + req = proto.Clone(req).(*visionaipb.ListAnnotationsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Annotation, string, error) { + resp := &visionaipb.ListAnnotationsResponse{} + 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.warehouseClient.ListAnnotations(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetAnnotations(), 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 *warehouseGRPCClient) UpdateAnnotation(ctx context.Context, req *visionaipb.UpdateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "annotation.name", url.QueryEscape(req.GetAnnotation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateAnnotation[0:len((*c.CallOptions).UpdateAnnotation):len((*c.CallOptions).UpdateAnnotation)], opts...) + var resp *visionaipb.Annotation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateAnnotation(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) DeleteAnnotation(ctx context.Context, req *visionaipb.DeleteAnnotationRequest, 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).DeleteAnnotation[0:len((*c.CallOptions).DeleteAnnotation):len((*c.CallOptions).DeleteAnnotation)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.warehouseClient.DeleteAnnotation(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *warehouseGRPCClient) IngestAsset(ctx context.Context, opts ...gax.CallOption) (visionaipb.Warehouse_IngestAssetClient, error) { + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, c.xGoogHeaders...) + var resp visionaipb.Warehouse_IngestAssetClient + opts = append((*c.CallOptions).IngestAsset[0:len((*c.CallOptions).IngestAsset):len((*c.CallOptions).IngestAsset)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.IngestAsset(ctx, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ClipAsset(ctx context.Context, req *visionaipb.ClipAssetRequest, opts ...gax.CallOption) (*visionaipb.ClipAssetResponse, 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).ClipAsset[0:len((*c.CallOptions).ClipAsset):len((*c.CallOptions).ClipAsset)], opts...) + var resp *visionaipb.ClipAssetResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.ClipAsset(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GenerateHlsUri(ctx context.Context, req *visionaipb.GenerateHlsUriRequest, opts ...gax.CallOption) (*visionaipb.GenerateHlsUriResponse, 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).GenerateHlsUri[0:len((*c.CallOptions).GenerateHlsUri):len((*c.CallOptions).GenerateHlsUri)], opts...) + var resp *visionaipb.GenerateHlsUriResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GenerateHlsUri(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ImportAssets(ctx context.Context, req *visionaipb.ImportAssetsRequest, opts ...gax.CallOption) (*ImportAssetsOperation, 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).ImportAssets[0:len((*c.CallOptions).ImportAssets):len((*c.CallOptions).ImportAssets)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.ImportAssets(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &ImportAssetsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) CreateSearchConfig(ctx context.Context, req *visionaipb.CreateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, 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).CreateSearchConfig[0:len((*c.CallOptions).CreateSearchConfig):len((*c.CallOptions).CreateSearchConfig)], opts...) + var resp *visionaipb.SearchConfig + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateSearchConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateSearchConfig(ctx context.Context, req *visionaipb.UpdateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "search_config.name", url.QueryEscape(req.GetSearchConfig().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSearchConfig[0:len((*c.CallOptions).UpdateSearchConfig):len((*c.CallOptions).UpdateSearchConfig)], opts...) + var resp *visionaipb.SearchConfig + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateSearchConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GetSearchConfig(ctx context.Context, req *visionaipb.GetSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, 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).GetSearchConfig[0:len((*c.CallOptions).GetSearchConfig):len((*c.CallOptions).GetSearchConfig)], opts...) + var resp *visionaipb.SearchConfig + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetSearchConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) DeleteSearchConfig(ctx context.Context, req *visionaipb.DeleteSearchConfigRequest, 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).DeleteSearchConfig[0:len((*c.CallOptions).DeleteSearchConfig):len((*c.CallOptions).DeleteSearchConfig)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.warehouseClient.DeleteSearchConfig(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *warehouseGRPCClient) ListSearchConfigs(ctx context.Context, req *visionaipb.ListSearchConfigsRequest, opts ...gax.CallOption) *SearchConfigIterator { + 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).ListSearchConfigs[0:len((*c.CallOptions).ListSearchConfigs):len((*c.CallOptions).ListSearchConfigs)], opts...) + it := &SearchConfigIterator{} + req = proto.Clone(req).(*visionaipb.ListSearchConfigsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchConfig, string, error) { + resp := &visionaipb.ListSearchConfigsResponse{} + 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.warehouseClient.ListSearchConfigs(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSearchConfigs(), 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 *warehouseGRPCClient) CreateSearchHypernym(ctx context.Context, req *visionaipb.CreateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, 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).CreateSearchHypernym[0:len((*c.CallOptions).CreateSearchHypernym):len((*c.CallOptions).CreateSearchHypernym)], opts...) + var resp *visionaipb.SearchHypernym + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateSearchHypernym(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateSearchHypernym(ctx context.Context, req *visionaipb.UpdateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "search_hypernym.name", url.QueryEscape(req.GetSearchHypernym().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateSearchHypernym[0:len((*c.CallOptions).UpdateSearchHypernym):len((*c.CallOptions).UpdateSearchHypernym)], opts...) + var resp *visionaipb.SearchHypernym + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateSearchHypernym(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) GetSearchHypernym(ctx context.Context, req *visionaipb.GetSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, 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).GetSearchHypernym[0:len((*c.CallOptions).GetSearchHypernym):len((*c.CallOptions).GetSearchHypernym)], opts...) + var resp *visionaipb.SearchHypernym + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetSearchHypernym(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) DeleteSearchHypernym(ctx context.Context, req *visionaipb.DeleteSearchHypernymRequest, 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).DeleteSearchHypernym[0:len((*c.CallOptions).DeleteSearchHypernym):len((*c.CallOptions).DeleteSearchHypernym)], opts...) + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + _, err = c.warehouseClient.DeleteSearchHypernym(ctx, req, settings.GRPC...) + return err + }, opts...) + return err +} + +func (c *warehouseGRPCClient) ListSearchHypernyms(ctx context.Context, req *visionaipb.ListSearchHypernymsRequest, opts ...gax.CallOption) *SearchHypernymIterator { + 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).ListSearchHypernyms[0:len((*c.CallOptions).ListSearchHypernyms):len((*c.CallOptions).ListSearchHypernyms)], opts...) + it := &SearchHypernymIterator{} + req = proto.Clone(req).(*visionaipb.ListSearchHypernymsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchHypernym, string, error) { + resp := &visionaipb.ListSearchHypernymsResponse{} + 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.warehouseClient.ListSearchHypernyms(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSearchHypernyms(), 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 *warehouseGRPCClient) SearchAssets(ctx context.Context, req *visionaipb.SearchAssetsRequest, opts ...gax.CallOption) *SearchResultItemIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "corpus", url.QueryEscape(req.GetCorpus()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SearchAssets[0:len((*c.CallOptions).SearchAssets):len((*c.CallOptions).SearchAssets)], opts...) + it := &SearchResultItemIterator{} + req = proto.Clone(req).(*visionaipb.SearchAssetsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchResultItem, string, error) { + resp := &visionaipb.SearchAssetsResponse{} + 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.warehouseClient.SearchAssets(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSearchResultItems(), 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 *warehouseGRPCClient) SearchIndexEndpoint(ctx context.Context, req *visionaipb.SearchIndexEndpointRequest, opts ...gax.CallOption) *SearchResultItemIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index_endpoint", url.QueryEscape(req.GetIndexEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).SearchIndexEndpoint[0:len((*c.CallOptions).SearchIndexEndpoint):len((*c.CallOptions).SearchIndexEndpoint)], opts...) + it := &SearchResultItemIterator{} + req = proto.Clone(req).(*visionaipb.SearchIndexEndpointRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchResultItem, string, error) { + resp := &visionaipb.SearchIndexEndpointResponse{} + 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.warehouseClient.SearchIndexEndpoint(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetSearchResultItems(), 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 *warehouseGRPCClient) CreateIndexEndpoint(ctx context.Context, req *visionaipb.CreateIndexEndpointRequest, opts ...gax.CallOption) (*CreateIndexEndpointOperation, 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).CreateIndexEndpoint[0:len((*c.CallOptions).CreateIndexEndpoint):len((*c.CallOptions).CreateIndexEndpoint)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateIndexEndpoint(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) GetIndexEndpoint(ctx context.Context, req *visionaipb.GetIndexEndpointRequest, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, 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).GetIndexEndpoint[0:len((*c.CallOptions).GetIndexEndpoint):len((*c.CallOptions).GetIndexEndpoint)], opts...) + var resp *visionaipb.IndexEndpoint + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetIndexEndpoint(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListIndexEndpoints(ctx context.Context, req *visionaipb.ListIndexEndpointsRequest, opts ...gax.CallOption) *IndexEndpointIterator { + 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).ListIndexEndpoints[0:len((*c.CallOptions).ListIndexEndpoints):len((*c.CallOptions).ListIndexEndpoints)], opts...) + it := &IndexEndpointIterator{} + req = proto.Clone(req).(*visionaipb.ListIndexEndpointsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.IndexEndpoint, string, error) { + resp := &visionaipb.ListIndexEndpointsResponse{} + 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.warehouseClient.ListIndexEndpoints(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetIndexEndpoints(), 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 *warehouseGRPCClient) UpdateIndexEndpoint(ctx context.Context, req *visionaipb.UpdateIndexEndpointRequest, opts ...gax.CallOption) (*UpdateIndexEndpointOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index_endpoint.name", url.QueryEscape(req.GetIndexEndpoint().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateIndexEndpoint[0:len((*c.CallOptions).UpdateIndexEndpoint):len((*c.CallOptions).UpdateIndexEndpoint)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateIndexEndpoint(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UpdateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) DeleteIndexEndpoint(ctx context.Context, req *visionaipb.DeleteIndexEndpointRequest, opts ...gax.CallOption) (*DeleteIndexEndpointOperation, 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).DeleteIndexEndpoint[0:len((*c.CallOptions).DeleteIndexEndpoint):len((*c.CallOptions).DeleteIndexEndpoint)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.DeleteIndexEndpoint(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) DeployIndex(ctx context.Context, req *visionaipb.DeployIndexRequest, opts ...gax.CallOption) (*DeployIndexOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index_endpoint", url.QueryEscape(req.GetIndexEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).DeployIndex[0:len((*c.CallOptions).DeployIndex):len((*c.CallOptions).DeployIndex)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.DeployIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) UndeployIndex(ctx context.Context, req *visionaipb.UndeployIndexRequest, opts ...gax.CallOption) (*UndeployIndexOperation, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index_endpoint", url.QueryEscape(req.GetIndexEndpoint()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UndeployIndex[0:len((*c.CallOptions).UndeployIndex):len((*c.CallOptions).UndeployIndex)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UndeployIndex(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &UndeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) CreateCollection(ctx context.Context, req *visionaipb.CreateCollectionRequest, opts ...gax.CallOption) (*CreateCollectionOperation, 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).CreateCollection[0:len((*c.CallOptions).CreateCollection):len((*c.CallOptions).CreateCollection)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.CreateCollection(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &CreateCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) DeleteCollection(ctx context.Context, req *visionaipb.DeleteCollectionRequest, opts ...gax.CallOption) (*DeleteCollectionOperation, 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).DeleteCollection[0:len((*c.CallOptions).DeleteCollection):len((*c.CallOptions).DeleteCollection)], opts...) + var resp *longrunningpb.Operation + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.DeleteCollection(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return &DeleteCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + }, nil +} + +func (c *warehouseGRPCClient) GetCollection(ctx context.Context, req *visionaipb.GetCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, 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).GetCollection[0:len((*c.CallOptions).GetCollection):len((*c.CallOptions).GetCollection)], opts...) + var resp *visionaipb.Collection + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.GetCollection(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) UpdateCollection(ctx context.Context, req *visionaipb.UpdateCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "collection.name", url.QueryEscape(req.GetCollection().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).UpdateCollection[0:len((*c.CallOptions).UpdateCollection):len((*c.CallOptions).UpdateCollection)], opts...) + var resp *visionaipb.Collection + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.UpdateCollection(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ListCollections(ctx context.Context, req *visionaipb.ListCollectionsRequest, opts ...gax.CallOption) *CollectionIterator { + 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).ListCollections[0:len((*c.CallOptions).ListCollections):len((*c.CallOptions).ListCollections)], opts...) + it := &CollectionIterator{} + req = proto.Clone(req).(*visionaipb.ListCollectionsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Collection, string, error) { + resp := &visionaipb.ListCollectionsResponse{} + 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.warehouseClient.ListCollections(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetCollections(), 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 *warehouseGRPCClient) AddCollectionItem(ctx context.Context, req *visionaipb.AddCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.AddCollectionItemResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "item.collection", url.QueryEscape(req.GetItem().GetCollection()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).AddCollectionItem[0:len((*c.CallOptions).AddCollectionItem):len((*c.CallOptions).AddCollectionItem)], opts...) + var resp *visionaipb.AddCollectionItemResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.AddCollectionItem(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) RemoveCollectionItem(ctx context.Context, req *visionaipb.RemoveCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.RemoveCollectionItemResponse, error) { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "item.collection", url.QueryEscape(req.GetItem().GetCollection()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).RemoveCollectionItem[0:len((*c.CallOptions).RemoveCollectionItem):len((*c.CallOptions).RemoveCollectionItem)], opts...) + var resp *visionaipb.RemoveCollectionItemResponse + err := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + var err error + resp, err = c.warehouseClient.RemoveCollectionItem(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, err + } + return resp, nil +} + +func (c *warehouseGRPCClient) ViewCollectionItems(ctx context.Context, req *visionaipb.ViewCollectionItemsRequest, opts ...gax.CallOption) *CollectionItemIterator { + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "collection", url.QueryEscape(req.GetCollection()))} + + hds = append(c.xGoogHeaders, hds...) + ctx = gax.InsertMetadataIntoOutgoingContext(ctx, hds...) + opts = append((*c.CallOptions).ViewCollectionItems[0:len((*c.CallOptions).ViewCollectionItems):len((*c.CallOptions).ViewCollectionItems)], opts...) + it := &CollectionItemIterator{} + req = proto.Clone(req).(*visionaipb.ViewCollectionItemsRequest) + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.CollectionItem, string, error) { + resp := &visionaipb.ViewCollectionItemsResponse{} + 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.warehouseClient.ViewCollectionItems(ctx, req, settings.GRPC...) + return err + }, opts...) + if err != nil { + return nil, "", err + } + + it.Response = resp + return resp.GetItems(), 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 *warehouseGRPCClient) 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 *warehouseGRPCClient) 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 *warehouseGRPCClient) 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 *warehouseGRPCClient) 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 +} + +// CreateAsset creates an asset inside corpus. +func (c *warehouseRESTClient) CreateAsset(ctx context.Context, req *visionaipb.CreateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAsset() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/assets", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req != nil && req.AssetId != nil { + params.Add("assetId", fmt.Sprintf("%v", req.GetAssetId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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...) + opts = append((*c.CallOptions).CreateAsset[0:len((*c.CallOptions).CreateAsset):len((*c.CallOptions).CreateAsset)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Asset{} + 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 +} + +// UpdateAsset updates an asset inside corpus. +func (c *warehouseRESTClient) UpdateAsset(ctx context.Context, req *visionaipb.UpdateAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAsset() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetAsset().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "asset.name", url.QueryEscape(req.GetAsset().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateAsset[0:len((*c.CallOptions).UpdateAsset):len((*c.CallOptions).UpdateAsset)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Asset{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// GetAsset reads an asset inside corpus. +func (c *warehouseRESTClient) GetAsset(ctx context.Context, req *visionaipb.GetAssetRequest, opts ...gax.CallOption) (*visionaipb.Asset, 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).GetAsset[0:len((*c.CallOptions).GetAsset):len((*c.CallOptions).GetAsset)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Asset{} + 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 +} + +// ListAssets lists an list of assets inside corpus. +func (c *warehouseRESTClient) ListAssets(ctx context.Context, req *visionaipb.ListAssetsRequest, opts ...gax.CallOption) *AssetIterator { + it := &AssetIterator{} + req = proto.Clone(req).(*visionaipb.ListAssetsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Asset, string, error) { + resp := &visionaipb.ListAssetsResponse{} + 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/assets", req.GetParent()) + + 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.GetAssets(), 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 +} + +// DeleteAsset deletes asset inside corpus. +func (c *warehouseRESTClient) DeleteAsset(ctx context.Context, req *visionaipb.DeleteAssetRequest, opts ...gax.CallOption) (*DeleteAssetOperation, 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...) + 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("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() + + 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 &DeleteAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UploadAsset upload asset by specifing the asset Cloud Storage uri. +// For video warehouse, it requires users who call this API have read access +// to the cloud storage file. Once it is uploaded, it can be retrieved by +// GenerateRetrievalUrl API which by default, only can retrieve cloud storage +// files from the same project of the warehouse. To allow retrieval cloud +// storage files that are in a separate project, it requires to find the +// vision ai service account (Go to IAM, check checkbox to show “Include +// Google-provided role grants”, search for “Cloud Vision AI Service Agent”) +// and grant the read access of the cloud storage files to that service +// account. +func (c *warehouseRESTClient) UploadAsset(ctx context.Context, req *visionaipb.UploadAssetRequest, opts ...gax.CallOption) (*UploadAssetOperation, 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:upload", 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 &UploadAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GenerateRetrievalUrl generates a signed url for downloading the asset. +// For video warehouse, please see comment of UploadAsset about how to allow +// retrieval of cloud storage files in a different project. +func (c *warehouseRESTClient) GenerateRetrievalUrl(ctx context.Context, req *visionaipb.GenerateRetrievalUrlRequest, opts ...gax.CallOption) (*visionaipb.GenerateRetrievalUrlResponse, 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:generateRetrievalUrl", 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).GenerateRetrievalUrl[0:len((*c.CallOptions).GenerateRetrievalUrl):len((*c.CallOptions).GenerateRetrievalUrl)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.GenerateRetrievalUrlResponse{} + 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 +} + +// AnalyzeAsset analyze asset to power search capability. +func (c *warehouseRESTClient) AnalyzeAsset(ctx context.Context, req *visionaipb.AnalyzeAssetRequest, opts ...gax.CallOption) (*AnalyzeAssetOperation, 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:analyze", 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 &AnalyzeAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// IndexAsset index one asset for search. +// Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND +func (c *warehouseRESTClient) IndexAsset(ctx context.Context, req *visionaipb.IndexAssetRequest, opts ...gax.CallOption) (*IndexAssetOperation, 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:index", 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 &IndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// RemoveIndexAsset remove one asset’s index data for search. +// Supported corpus type: Corpus.Type.VIDEO_ON_DEMAND +func (c *warehouseRESTClient) RemoveIndexAsset(ctx context.Context, req *visionaipb.RemoveIndexAssetRequest, opts ...gax.CallOption) (*RemoveIndexAssetOperation, 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:removeIndex", 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 &RemoveIndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// ViewIndexedAssets lists assets inside an index. +func (c *warehouseRESTClient) ViewIndexedAssets(ctx context.Context, req *visionaipb.ViewIndexedAssetsRequest, opts ...gax.CallOption) *IndexedAssetIterator { + it := &IndexedAssetIterator{} + req = proto.Clone(req).(*visionaipb.ViewIndexedAssetsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.IndexedAsset, string, error) { + resp := &visionaipb.ViewIndexedAssetsResponse{} + 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:viewAssets", req.GetIndex()) + + 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.GetIndexedAssets(), 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 +} + +// CreateIndex creates an Index under the corpus. +func (c *warehouseRESTClient) CreateIndex(ctx context.Context, req *visionaipb.CreateIndexRequest, opts ...gax.CallOption) (*CreateIndexOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetIndex() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/indexes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetIndexId() != "" { + params.Add("indexId", fmt.Sprintf("%v", req.GetIndexId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UpdateIndex updates an Index under the corpus. +// Users can perform a metadata-only update or trigger a full index rebuild +// with different update_mask values. +func (c *warehouseRESTClient) UpdateIndex(ctx context.Context, req *visionaipb.UpdateIndexRequest, opts ...gax.CallOption) (*UpdateIndexOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetIndex() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetIndex().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index.name", url.QueryEscape(req.GetIndex().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("PATCH", 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 &UpdateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetIndex gets the details of a single Index under a Corpus. +func (c *warehouseRESTClient) GetIndex(ctx context.Context, req *visionaipb.GetIndexRequest, opts ...gax.CallOption) (*visionaipb.Index, 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).GetIndex[0:len((*c.CallOptions).GetIndex):len((*c.CallOptions).GetIndex)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Index{} + 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 +} + +// ListIndexes list all Indexes in a given Corpus. +func (c *warehouseRESTClient) ListIndexes(ctx context.Context, req *visionaipb.ListIndexesRequest, opts ...gax.CallOption) *IndexIterator { + it := &IndexIterator{} + req = proto.Clone(req).(*visionaipb.ListIndexesRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Index, string, error) { + resp := &visionaipb.ListIndexesResponse{} + 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/indexes", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetIndexes(), 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 +} + +// DeleteIndex delete a single Index. In order to delete an index, the caller must +// make sure that it is not deployed to any index endpoint. +func (c *warehouseRESTClient) DeleteIndex(ctx context.Context, req *visionaipb.DeleteIndexRequest, opts ...gax.CallOption) (*DeleteIndexOperation, 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...) + 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("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() + + 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 &DeleteIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CreateCorpus creates a corpus inside a project. +func (c *warehouseRESTClient) CreateCorpus(ctx context.Context, req *visionaipb.CreateCorpusRequest, opts ...gax.CallOption) (*CreateCorpusOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCorpus() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/corpora", req.GetParent()) + + 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", "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("/v1/%s", resp.GetName()) + return &CreateCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetCorpus gets corpus details inside a project. +func (c *warehouseRESTClient) GetCorpus(ctx context.Context, req *visionaipb.GetCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, 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).GetCorpus[0:len((*c.CallOptions).GetCorpus):len((*c.CallOptions).GetCorpus)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Corpus{} + 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 +} + +// UpdateCorpus updates a corpus in a project. +func (c *warehouseRESTClient) UpdateCorpus(ctx context.Context, req *visionaipb.UpdateCorpusRequest, opts ...gax.CallOption) (*visionaipb.Corpus, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCorpus() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetCorpus().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "corpus.name", url.QueryEscape(req.GetCorpus().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateCorpus[0:len((*c.CallOptions).UpdateCorpus):len((*c.CallOptions).UpdateCorpus)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Corpus{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// ListCorpora lists all corpora in a project. +func (c *warehouseRESTClient) ListCorpora(ctx context.Context, req *visionaipb.ListCorporaRequest, opts ...gax.CallOption) *CorpusIterator { + it := &CorpusIterator{} + req = proto.Clone(req).(*visionaipb.ListCorporaRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Corpus, string, error) { + resp := &visionaipb.ListCorporaResponse{} + 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/corpora", req.GetParent()) + + 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.GetCorpora(), 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 +} + +// DeleteCorpus deletes a corpus only if its empty. +// Returns empty response. +func (c *warehouseRESTClient) DeleteCorpus(ctx context.Context, req *visionaipb.DeleteCorpusRequest, 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...) +} + +// AnalyzeCorpus analyzes a corpus. +func (c *warehouseRESTClient) AnalyzeCorpus(ctx context.Context, req *visionaipb.AnalyzeCorpusRequest, opts ...gax.CallOption) (*AnalyzeCorpusOperation, 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:analyze", 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 &AnalyzeCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CreateDataSchema creates data schema inside corpus. +func (c *warehouseRESTClient) CreateDataSchema(ctx context.Context, req *visionaipb.CreateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetDataSchema() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/dataSchemas", req.GetParent()) + + 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", "parent", url.QueryEscape(req.GetParent()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).CreateDataSchema[0:len((*c.CallOptions).CreateDataSchema):len((*c.CallOptions).CreateDataSchema)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.DataSchema{} + 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 +} + +// UpdateDataSchema updates data schema inside corpus. +func (c *warehouseRESTClient) UpdateDataSchema(ctx context.Context, req *visionaipb.UpdateDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetDataSchema() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetDataSchema().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "data_schema.name", url.QueryEscape(req.GetDataSchema().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateDataSchema[0:len((*c.CallOptions).UpdateDataSchema):len((*c.CallOptions).UpdateDataSchema)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.DataSchema{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// GetDataSchema gets data schema inside corpus. +func (c *warehouseRESTClient) GetDataSchema(ctx context.Context, req *visionaipb.GetDataSchemaRequest, opts ...gax.CallOption) (*visionaipb.DataSchema, 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).GetDataSchema[0:len((*c.CallOptions).GetDataSchema):len((*c.CallOptions).GetDataSchema)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.DataSchema{} + 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 +} + +// DeleteDataSchema deletes data schema inside corpus. +func (c *warehouseRESTClient) DeleteDataSchema(ctx context.Context, req *visionaipb.DeleteDataSchemaRequest, 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...) +} + +// ListDataSchemas lists a list of data schemas inside corpus. +func (c *warehouseRESTClient) ListDataSchemas(ctx context.Context, req *visionaipb.ListDataSchemasRequest, opts ...gax.CallOption) *DataSchemaIterator { + it := &DataSchemaIterator{} + req = proto.Clone(req).(*visionaipb.ListDataSchemasRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.DataSchema, string, error) { + resp := &visionaipb.ListDataSchemasResponse{} + 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/dataSchemas", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetDataSchemas(), 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 +} + +// CreateAnnotation creates annotation inside asset. +func (c *warehouseRESTClient) CreateAnnotation(ctx context.Context, req *visionaipb.CreateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAnnotation() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/annotations", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req != nil && req.AnnotationId != nil { + params.Add("annotationId", fmt.Sprintf("%v", req.GetAnnotationId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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...) + opts = append((*c.CallOptions).CreateAnnotation[0:len((*c.CallOptions).CreateAnnotation):len((*c.CallOptions).CreateAnnotation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Annotation{} + 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 +} + +// GetAnnotation reads annotation inside asset. +func (c *warehouseRESTClient) GetAnnotation(ctx context.Context, req *visionaipb.GetAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, 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).GetAnnotation[0:len((*c.CallOptions).GetAnnotation):len((*c.CallOptions).GetAnnotation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Annotation{} + 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 +} + +// ListAnnotations lists a list of annotations inside asset. +func (c *warehouseRESTClient) ListAnnotations(ctx context.Context, req *visionaipb.ListAnnotationsRequest, opts ...gax.CallOption) *AnnotationIterator { + it := &AnnotationIterator{} + req = proto.Clone(req).(*visionaipb.ListAnnotationsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Annotation, string, error) { + resp := &visionaipb.ListAnnotationsResponse{} + 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/annotations", req.GetParent()) + + 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.GetAnnotations(), 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 +} + +// UpdateAnnotation updates annotation inside asset. +func (c *warehouseRESTClient) UpdateAnnotation(ctx context.Context, req *visionaipb.UpdateAnnotationRequest, opts ...gax.CallOption) (*visionaipb.Annotation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetAnnotation() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetAnnotation().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "annotation.name", url.QueryEscape(req.GetAnnotation().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateAnnotation[0:len((*c.CallOptions).UpdateAnnotation):len((*c.CallOptions).UpdateAnnotation)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Annotation{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// DeleteAnnotation deletes annotation inside asset. +func (c *warehouseRESTClient) DeleteAnnotation(ctx context.Context, req *visionaipb.DeleteAnnotationRequest, 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...) +} + +// IngestAsset ingests data for the asset. It is not allowed to ingest a data chunk which +// is already expired according to TTL. +// This method is only available via the gRPC API (not HTTP since +// bi-directional streaming is not supported via HTTP). +// +// This method is not supported for the REST transport. +func (c *warehouseRESTClient) IngestAsset(ctx context.Context, opts ...gax.CallOption) (visionaipb.Warehouse_IngestAssetClient, error) { + return nil, fmt.Errorf("IngestAsset not yet supported for REST clients") +} + +// ClipAsset generates clips for downloading. The api takes in a time range, and +// generates a clip of the first content available after start_time and +// before end_time, which may overflow beyond these bounds. +// Returned clips are truncated if the total size of the clips are larger +// than 100MB. +func (c *warehouseRESTClient) ClipAsset(ctx context.Context, req *visionaipb.ClipAssetRequest, opts ...gax.CallOption) (*visionaipb.ClipAssetResponse, 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:clip", 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).ClipAsset[0:len((*c.CallOptions).ClipAsset):len((*c.CallOptions).ClipAsset)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.ClipAssetResponse{} + 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 +} + +// GenerateHlsUri generates a uri for an HLS manifest. The api takes in a collection of time +// ranges, and generates a URI for an HLS manifest that covers all the +// requested time ranges. +func (c *warehouseRESTClient) GenerateHlsUri(ctx context.Context, req *visionaipb.GenerateHlsUriRequest, opts ...gax.CallOption) (*visionaipb.GenerateHlsUriResponse, 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:generateHlsUri", 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).GenerateHlsUri[0:len((*c.CallOptions).GenerateHlsUri):len((*c.CallOptions).GenerateHlsUri)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.GenerateHlsUriResponse{} + 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 +} + +// ImportAssets imports assets (images plus annotations) from a meta file on cloud storage. +// Each row in the meta file is corresponding to an image (specified by a +// cloud storage uri) and its annotations. +func (c *warehouseRESTClient) ImportAssets(ctx context.Context, req *visionaipb.ImportAssetsRequest, opts ...gax.CallOption) (*ImportAssetsOperation, 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/assets:import", req.GetParent()) + + 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", "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("/v1/%s", resp.GetName()) + return &ImportAssetsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CreateSearchConfig creates a search configuration inside a corpus. +// +// Please follow the rules below to create a valid CreateSearchConfigRequest. +// — General Rules — +// +// Request.search_config_id must not be associated with an existing +// SearchConfig. +// +// Request must contain at least one non-empty search_criteria_property or +// facet_property. +// +// mapped_fields must not be empty, and must map to existing UGA keys. +// +// All mapped_fields must be of the same type. +// +// All mapped_fields must share the same granularity. +// +// All mapped_fields must share the same semantic SearchConfig match +// options. +// For property-specific rules, please reference the comments for +// FacetProperty and SearchCriteriaProperty. +func (c *warehouseRESTClient) CreateSearchConfig(ctx context.Context, req *visionaipb.CreateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSearchConfig() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/searchConfigs", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + params.Add("searchConfigId", fmt.Sprintf("%v", req.GetSearchConfigId())) + + baseUrl.RawQuery = params.Encode() + + // 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...) + opts = append((*c.CallOptions).CreateSearchConfig[0:len((*c.CallOptions).CreateSearchConfig):len((*c.CallOptions).CreateSearchConfig)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchConfig{} + 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 +} + +// UpdateSearchConfig updates a search configuration inside a corpus. +// +// Please follow the rules below to create a valid UpdateSearchConfigRequest. +// — General Rules — +// +// Request.search_configuration.name must already exist. +// +// Request must contain at least one non-empty search_criteria_property or +// facet_property. +// +// mapped_fields must not be empty, and must map to existing UGA keys. +// +// All mapped_fields must be of the same type. +// +// All mapped_fields must share the same granularity. +// +// All mapped_fields must share the same semantic SearchConfig match +// options. +// For property-specific rules, please reference the comments for +// FacetProperty and SearchCriteriaProperty. +func (c *warehouseRESTClient) UpdateSearchConfig(ctx context.Context, req *visionaipb.UpdateSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSearchConfig() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetSearchConfig().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "search_config.name", url.QueryEscape(req.GetSearchConfig().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateSearchConfig[0:len((*c.CallOptions).UpdateSearchConfig):len((*c.CallOptions).UpdateSearchConfig)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchConfig{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// GetSearchConfig gets a search configuration inside a corpus. +func (c *warehouseRESTClient) GetSearchConfig(ctx context.Context, req *visionaipb.GetSearchConfigRequest, opts ...gax.CallOption) (*visionaipb.SearchConfig, 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).GetSearchConfig[0:len((*c.CallOptions).GetSearchConfig):len((*c.CallOptions).GetSearchConfig)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchConfig{} + 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 +} + +// DeleteSearchConfig deletes a search configuration inside a corpus. +// +// For a DeleteSearchConfigRequest to be valid, +// Request.search_configuration.name must already exist. +func (c *warehouseRESTClient) DeleteSearchConfig(ctx context.Context, req *visionaipb.DeleteSearchConfigRequest, 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...) +} + +// ListSearchConfigs lists all search configurations inside a corpus. +func (c *warehouseRESTClient) ListSearchConfigs(ctx context.Context, req *visionaipb.ListSearchConfigsRequest, opts ...gax.CallOption) *SearchConfigIterator { + it := &SearchConfigIterator{} + req = proto.Clone(req).(*visionaipb.ListSearchConfigsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchConfig, string, error) { + resp := &visionaipb.ListSearchConfigsResponse{} + 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/searchConfigs", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetSearchConfigs(), 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 +} + +// CreateSearchHypernym creates a SearchHypernym inside a corpus. +func (c *warehouseRESTClient) CreateSearchHypernym(ctx context.Context, req *visionaipb.CreateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSearchHypernym() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/searchHypernyms", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req != nil && req.SearchHypernymId != nil { + params.Add("searchHypernymId", fmt.Sprintf("%v", req.GetSearchHypernymId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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...) + opts = append((*c.CallOptions).CreateSearchHypernym[0:len((*c.CallOptions).CreateSearchHypernym):len((*c.CallOptions).CreateSearchHypernym)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchHypernym{} + 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 +} + +// UpdateSearchHypernym updates a SearchHypernym inside a corpus. +func (c *warehouseRESTClient) UpdateSearchHypernym(ctx context.Context, req *visionaipb.UpdateSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetSearchHypernym() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetSearchHypernym().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "search_hypernym.name", url.QueryEscape(req.GetSearchHypernym().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateSearchHypernym[0:len((*c.CallOptions).UpdateSearchHypernym):len((*c.CallOptions).UpdateSearchHypernym)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchHypernym{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// GetSearchHypernym gets a SearchHypernym inside a corpus. +func (c *warehouseRESTClient) GetSearchHypernym(ctx context.Context, req *visionaipb.GetSearchHypernymRequest, opts ...gax.CallOption) (*visionaipb.SearchHypernym, 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).GetSearchHypernym[0:len((*c.CallOptions).GetSearchHypernym):len((*c.CallOptions).GetSearchHypernym)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.SearchHypernym{} + 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 +} + +// DeleteSearchHypernym deletes a SearchHypernym inside a corpus. +func (c *warehouseRESTClient) DeleteSearchHypernym(ctx context.Context, req *visionaipb.DeleteSearchHypernymRequest, 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...) +} + +// ListSearchHypernyms lists SearchHypernyms inside a corpus. +func (c *warehouseRESTClient) ListSearchHypernyms(ctx context.Context, req *visionaipb.ListSearchHypernymsRequest, opts ...gax.CallOption) *SearchHypernymIterator { + it := &SearchHypernymIterator{} + req = proto.Clone(req).(*visionaipb.ListSearchHypernymsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchHypernym, string, error) { + resp := &visionaipb.ListSearchHypernymsResponse{} + 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/searchHypernyms", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetSearchHypernyms(), 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 +} + +// SearchAssets search media asset. +func (c *warehouseRESTClient) SearchAssets(ctx context.Context, req *visionaipb.SearchAssetsRequest, opts ...gax.CallOption) *SearchResultItemIterator { + it := &SearchResultItemIterator{} + req = proto.Clone(req).(*visionaipb.SearchAssetsRequest) + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchResultItem, string, error) { + resp := &visionaipb.SearchAssetsResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + 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:searchAssets", req.GetCorpus()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + 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("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + 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.GetSearchResultItems(), 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 +} + +// SearchIndexEndpoint search a deployed index endpoint (IMAGE corpus type only). +func (c *warehouseRESTClient) SearchIndexEndpoint(ctx context.Context, req *visionaipb.SearchIndexEndpointRequest, opts ...gax.CallOption) *SearchResultItemIterator { + it := &SearchResultItemIterator{} + req = proto.Clone(req).(*visionaipb.SearchIndexEndpointRequest) + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.SearchResultItem, string, error) { + resp := &visionaipb.SearchIndexEndpointResponse{} + if pageToken != "" { + req.PageToken = pageToken + } + if pageSize > math.MaxInt32 { + req.PageSize = math.MaxInt32 + } else if pageSize != 0 { + req.PageSize = int32(pageSize) + } + 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:searchIndexEndpoint", req.GetIndexEndpoint()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + + 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("POST", baseUrl.String(), bytes.NewReader(jsonReq)) + 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.GetSearchResultItems(), 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 +} + +// CreateIndexEndpoint creates an IndexEndpoint. +func (c *warehouseRESTClient) CreateIndexEndpoint(ctx context.Context, req *visionaipb.CreateIndexEndpointRequest, opts ...gax.CallOption) (*CreateIndexEndpointOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetIndexEndpoint() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/indexEndpoints", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetIndexEndpointId() != "" { + params.Add("indexEndpointId", fmt.Sprintf("%v", req.GetIndexEndpointId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetIndexEndpoint gets an IndexEndpoint. +func (c *warehouseRESTClient) GetIndexEndpoint(ctx context.Context, req *visionaipb.GetIndexEndpointRequest, opts ...gax.CallOption) (*visionaipb.IndexEndpoint, 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).GetIndexEndpoint[0:len((*c.CallOptions).GetIndexEndpoint):len((*c.CallOptions).GetIndexEndpoint)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.IndexEndpoint{} + 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 +} + +// ListIndexEndpoints lists all IndexEndpoints in a project. +func (c *warehouseRESTClient) ListIndexEndpoints(ctx context.Context, req *visionaipb.ListIndexEndpointsRequest, opts ...gax.CallOption) *IndexEndpointIterator { + it := &IndexEndpointIterator{} + req = proto.Clone(req).(*visionaipb.ListIndexEndpointsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.IndexEndpoint, string, error) { + resp := &visionaipb.ListIndexEndpointsResponse{} + 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/indexEndpoints", req.GetParent()) + + 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.GetIndexEndpoints(), 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 +} + +// UpdateIndexEndpoint updates an IndexEndpoint. +func (c *warehouseRESTClient) UpdateIndexEndpoint(ctx context.Context, req *visionaipb.UpdateIndexEndpointRequest, opts ...gax.CallOption) (*UpdateIndexEndpointOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetIndexEndpoint() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetIndexEndpoint().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "index_endpoint.name", url.QueryEscape(req.GetIndexEndpoint().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("PATCH", 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 &UpdateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteIndexEndpoint deletes an IndexEndpoint. +func (c *warehouseRESTClient) DeleteIndexEndpoint(ctx context.Context, req *visionaipb.DeleteIndexEndpointRequest, opts ...gax.CallOption) (*DeleteIndexEndpointOperation, 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...) + 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("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() + + 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 &DeleteIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeployIndex deploys an Index to IndexEndpoint. +func (c *warehouseRESTClient) DeployIndex(ctx context.Context, req *visionaipb.DeployIndexRequest, opts ...gax.CallOption) (*DeployIndexOperation, 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:deployIndex", req.GetIndexEndpoint()) + + 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", "index_endpoint", url.QueryEscape(req.GetIndexEndpoint()))} + + 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 &DeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// UndeployIndex undeploys an Index from IndexEndpoint. +func (c *warehouseRESTClient) UndeployIndex(ctx context.Context, req *visionaipb.UndeployIndexRequest, opts ...gax.CallOption) (*UndeployIndexOperation, 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:undeployIndex", req.GetIndexEndpoint()) + + 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", "index_endpoint", url.QueryEscape(req.GetIndexEndpoint()))} + + 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 &UndeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// CreateCollection creates a collection. +func (c *warehouseRESTClient) CreateCollection(ctx context.Context, req *visionaipb.CreateCollectionRequest, opts ...gax.CallOption) (*CreateCollectionOperation, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCollection() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v/collections", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req != nil && req.CollectionId != nil { + params.Add("collectionId", fmt.Sprintf("%v", req.GetCollectionId())) + } + + baseUrl.RawQuery = params.Encode() + + // 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("/v1/%s", resp.GetName()) + return &CreateCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// DeleteCollection deletes a collection. +func (c *warehouseRESTClient) DeleteCollection(ctx context.Context, req *visionaipb.DeleteCollectionRequest, opts ...gax.CallOption) (*DeleteCollectionOperation, 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...) + 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("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() + + 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 &DeleteCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, resp), + pollPath: override, + }, nil +} + +// GetCollection gets a collection. +func (c *warehouseRESTClient) GetCollection(ctx context.Context, req *visionaipb.GetCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, 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).GetCollection[0:len((*c.CallOptions).GetCollection):len((*c.CallOptions).GetCollection)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Collection{} + 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 +} + +// UpdateCollection updates a collection. +func (c *warehouseRESTClient) UpdateCollection(ctx context.Context, req *visionaipb.UpdateCollectionRequest, opts ...gax.CallOption) (*visionaipb.Collection, error) { + m := protojson.MarshalOptions{AllowPartial: true, UseEnumNumbers: true} + body := req.GetCollection() + jsonReq, err := m.Marshal(body) + if err != nil { + return nil, err + } + + baseUrl, err := url.Parse(c.endpoint) + if err != nil { + return nil, err + } + baseUrl.Path += fmt.Sprintf("/v1/%v", req.GetCollection().GetName()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + if req.GetUpdateMask() != nil { + updateMask, err := protojson.Marshal(req.GetUpdateMask()) + if err != nil { + return nil, err + } + params.Add("updateMask", string(updateMask[1:len(updateMask)-1])) + } + + baseUrl.RawQuery = params.Encode() + + // Build HTTP headers from client and context metadata. + hds := []string{"x-goog-request-params", fmt.Sprintf("%s=%v", "collection.name", url.QueryEscape(req.GetCollection().GetName()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).UpdateCollection[0:len((*c.CallOptions).UpdateCollection):len((*c.CallOptions).UpdateCollection)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.Collection{} + e := gax.Invoke(ctx, func(ctx context.Context, settings gax.CallSettings) error { + if settings.Path != "" { + baseUrl.Path = settings.Path + } + httpReq, err := http.NewRequest("PATCH", 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 +} + +// ListCollections lists collections inside a corpus. +func (c *warehouseRESTClient) ListCollections(ctx context.Context, req *visionaipb.ListCollectionsRequest, opts ...gax.CallOption) *CollectionIterator { + it := &CollectionIterator{} + req = proto.Clone(req).(*visionaipb.ListCollectionsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.Collection, string, error) { + resp := &visionaipb.ListCollectionsResponse{} + 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/collections", req.GetParent()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetCollections(), 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 +} + +// AddCollectionItem adds an item into a Collection. +func (c *warehouseRESTClient) AddCollectionItem(ctx context.Context, req *visionaipb.AddCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.AddCollectionItemResponse, 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:addCollectionItem", req.GetItem().GetCollection()) + + 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", "item.collection", url.QueryEscape(req.GetItem().GetCollection()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).AddCollectionItem[0:len((*c.CallOptions).AddCollectionItem):len((*c.CallOptions).AddCollectionItem)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.AddCollectionItemResponse{} + 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 +} + +// RemoveCollectionItem removes an item from a collection. +func (c *warehouseRESTClient) RemoveCollectionItem(ctx context.Context, req *visionaipb.RemoveCollectionItemRequest, opts ...gax.CallOption) (*visionaipb.RemoveCollectionItemResponse, 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:removeCollectionItem", req.GetItem().GetCollection()) + + 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", "item.collection", url.QueryEscape(req.GetItem().GetCollection()))} + + hds = append(c.xGoogHeaders, hds...) + hds = append(hds, "Content-Type", "application/json") + headers := gax.BuildHeaders(ctx, hds...) + opts = append((*c.CallOptions).RemoveCollectionItem[0:len((*c.CallOptions).RemoveCollectionItem):len((*c.CallOptions).RemoveCollectionItem)], opts...) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + resp := &visionaipb.RemoveCollectionItemResponse{} + 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 +} + +// ViewCollectionItems view items inside a collection. +func (c *warehouseRESTClient) ViewCollectionItems(ctx context.Context, req *visionaipb.ViewCollectionItemsRequest, opts ...gax.CallOption) *CollectionItemIterator { + it := &CollectionItemIterator{} + req = proto.Clone(req).(*visionaipb.ViewCollectionItemsRequest) + unm := protojson.UnmarshalOptions{AllowPartial: true, DiscardUnknown: true} + it.InternalFetch = func(pageSize int, pageToken string) ([]*visionaipb.CollectionItem, string, error) { + resp := &visionaipb.ViewCollectionItemsResponse{} + 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:viewCollectionItems", req.GetCollection()) + + params := url.Values{} + params.Add("$alt", "json;enum-encoding=int") + 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.GetItems(), 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 *warehouseRESTClient) 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 *warehouseRESTClient) 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 *warehouseRESTClient) 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 *warehouseRESTClient) 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 +} + +// AnalyzeAssetOperation returns a new AnalyzeAssetOperation from a given name. +// The name must be that of a previously created AnalyzeAssetOperation, possibly from a different process. +func (c *warehouseGRPCClient) AnalyzeAssetOperation(name string) *AnalyzeAssetOperation { + return &AnalyzeAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// AnalyzeAssetOperation returns a new AnalyzeAssetOperation from a given name. +// The name must be that of a previously created AnalyzeAssetOperation, possibly from a different process. +func (c *warehouseRESTClient) AnalyzeAssetOperation(name string) *AnalyzeAssetOperation { + override := fmt.Sprintf("/v1/%s", name) + return &AnalyzeAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// AnalyzeCorpusOperation returns a new AnalyzeCorpusOperation from a given name. +// The name must be that of a previously created AnalyzeCorpusOperation, possibly from a different process. +func (c *warehouseGRPCClient) AnalyzeCorpusOperation(name string) *AnalyzeCorpusOperation { + return &AnalyzeCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// AnalyzeCorpusOperation returns a new AnalyzeCorpusOperation from a given name. +// The name must be that of a previously created AnalyzeCorpusOperation, possibly from a different process. +func (c *warehouseRESTClient) AnalyzeCorpusOperation(name string) *AnalyzeCorpusOperation { + override := fmt.Sprintf("/v1/%s", name) + return &AnalyzeCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateCollectionOperation returns a new CreateCollectionOperation from a given name. +// The name must be that of a previously created CreateCollectionOperation, possibly from a different process. +func (c *warehouseGRPCClient) CreateCollectionOperation(name string) *CreateCollectionOperation { + return &CreateCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateCollectionOperation returns a new CreateCollectionOperation from a given name. +// The name must be that of a previously created CreateCollectionOperation, possibly from a different process. +func (c *warehouseRESTClient) CreateCollectionOperation(name string) *CreateCollectionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateCorpusOperation returns a new CreateCorpusOperation from a given name. +// The name must be that of a previously created CreateCorpusOperation, possibly from a different process. +func (c *warehouseGRPCClient) CreateCorpusOperation(name string) *CreateCorpusOperation { + return &CreateCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateCorpusOperation returns a new CreateCorpusOperation from a given name. +// The name must be that of a previously created CreateCorpusOperation, possibly from a different process. +func (c *warehouseRESTClient) CreateCorpusOperation(name string) *CreateCorpusOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateCorpusOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateIndexOperation returns a new CreateIndexOperation from a given name. +// The name must be that of a previously created CreateIndexOperation, possibly from a different process. +func (c *warehouseGRPCClient) CreateIndexOperation(name string) *CreateIndexOperation { + return &CreateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateIndexOperation returns a new CreateIndexOperation from a given name. +// The name must be that of a previously created CreateIndexOperation, possibly from a different process. +func (c *warehouseRESTClient) CreateIndexOperation(name string) *CreateIndexOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// CreateIndexEndpointOperation returns a new CreateIndexEndpointOperation from a given name. +// The name must be that of a previously created CreateIndexEndpointOperation, possibly from a different process. +func (c *warehouseGRPCClient) CreateIndexEndpointOperation(name string) *CreateIndexEndpointOperation { + return &CreateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// CreateIndexEndpointOperation returns a new CreateIndexEndpointOperation from a given name. +// The name must be that of a previously created CreateIndexEndpointOperation, possibly from a different process. +func (c *warehouseRESTClient) CreateIndexEndpointOperation(name string) *CreateIndexEndpointOperation { + override := fmt.Sprintf("/v1/%s", name) + return &CreateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteAssetOperation returns a new DeleteAssetOperation from a given name. +// The name must be that of a previously created DeleteAssetOperation, possibly from a different process. +func (c *warehouseGRPCClient) DeleteAssetOperation(name string) *DeleteAssetOperation { + return &DeleteAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteAssetOperation returns a new DeleteAssetOperation from a given name. +// The name must be that of a previously created DeleteAssetOperation, possibly from a different process. +func (c *warehouseRESTClient) DeleteAssetOperation(name string) *DeleteAssetOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteCollectionOperation returns a new DeleteCollectionOperation from a given name. +// The name must be that of a previously created DeleteCollectionOperation, possibly from a different process. +func (c *warehouseGRPCClient) DeleteCollectionOperation(name string) *DeleteCollectionOperation { + return &DeleteCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteCollectionOperation returns a new DeleteCollectionOperation from a given name. +// The name must be that of a previously created DeleteCollectionOperation, possibly from a different process. +func (c *warehouseRESTClient) DeleteCollectionOperation(name string) *DeleteCollectionOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteCollectionOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteIndexOperation returns a new DeleteIndexOperation from a given name. +// The name must be that of a previously created DeleteIndexOperation, possibly from a different process. +func (c *warehouseGRPCClient) DeleteIndexOperation(name string) *DeleteIndexOperation { + return &DeleteIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteIndexOperation returns a new DeleteIndexOperation from a given name. +// The name must be that of a previously created DeleteIndexOperation, possibly from a different process. +func (c *warehouseRESTClient) DeleteIndexOperation(name string) *DeleteIndexOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeleteIndexEndpointOperation returns a new DeleteIndexEndpointOperation from a given name. +// The name must be that of a previously created DeleteIndexEndpointOperation, possibly from a different process. +func (c *warehouseGRPCClient) DeleteIndexEndpointOperation(name string) *DeleteIndexEndpointOperation { + return &DeleteIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeleteIndexEndpointOperation returns a new DeleteIndexEndpointOperation from a given name. +// The name must be that of a previously created DeleteIndexEndpointOperation, possibly from a different process. +func (c *warehouseRESTClient) DeleteIndexEndpointOperation(name string) *DeleteIndexEndpointOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeleteIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// DeployIndexOperation returns a new DeployIndexOperation from a given name. +// The name must be that of a previously created DeployIndexOperation, possibly from a different process. +func (c *warehouseGRPCClient) DeployIndexOperation(name string) *DeployIndexOperation { + return &DeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// DeployIndexOperation returns a new DeployIndexOperation from a given name. +// The name must be that of a previously created DeployIndexOperation, possibly from a different process. +func (c *warehouseRESTClient) DeployIndexOperation(name string) *DeployIndexOperation { + override := fmt.Sprintf("/v1/%s", name) + return &DeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// ImportAssetsOperation returns a new ImportAssetsOperation from a given name. +// The name must be that of a previously created ImportAssetsOperation, possibly from a different process. +func (c *warehouseGRPCClient) ImportAssetsOperation(name string) *ImportAssetsOperation { + return &ImportAssetsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// ImportAssetsOperation returns a new ImportAssetsOperation from a given name. +// The name must be that of a previously created ImportAssetsOperation, possibly from a different process. +func (c *warehouseRESTClient) ImportAssetsOperation(name string) *ImportAssetsOperation { + override := fmt.Sprintf("/v1/%s", name) + return &ImportAssetsOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// IndexAssetOperation returns a new IndexAssetOperation from a given name. +// The name must be that of a previously created IndexAssetOperation, possibly from a different process. +func (c *warehouseGRPCClient) IndexAssetOperation(name string) *IndexAssetOperation { + return &IndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// IndexAssetOperation returns a new IndexAssetOperation from a given name. +// The name must be that of a previously created IndexAssetOperation, possibly from a different process. +func (c *warehouseRESTClient) IndexAssetOperation(name string) *IndexAssetOperation { + override := fmt.Sprintf("/v1/%s", name) + return &IndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// RemoveIndexAssetOperation returns a new RemoveIndexAssetOperation from a given name. +// The name must be that of a previously created RemoveIndexAssetOperation, possibly from a different process. +func (c *warehouseGRPCClient) RemoveIndexAssetOperation(name string) *RemoveIndexAssetOperation { + return &RemoveIndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// RemoveIndexAssetOperation returns a new RemoveIndexAssetOperation from a given name. +// The name must be that of a previously created RemoveIndexAssetOperation, possibly from a different process. +func (c *warehouseRESTClient) RemoveIndexAssetOperation(name string) *RemoveIndexAssetOperation { + override := fmt.Sprintf("/v1/%s", name) + return &RemoveIndexAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UndeployIndexOperation returns a new UndeployIndexOperation from a given name. +// The name must be that of a previously created UndeployIndexOperation, possibly from a different process. +func (c *warehouseGRPCClient) UndeployIndexOperation(name string) *UndeployIndexOperation { + return &UndeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UndeployIndexOperation returns a new UndeployIndexOperation from a given name. +// The name must be that of a previously created UndeployIndexOperation, possibly from a different process. +func (c *warehouseRESTClient) UndeployIndexOperation(name string) *UndeployIndexOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UndeployIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateIndexOperation returns a new UpdateIndexOperation from a given name. +// The name must be that of a previously created UpdateIndexOperation, possibly from a different process. +func (c *warehouseGRPCClient) UpdateIndexOperation(name string) *UpdateIndexOperation { + return &UpdateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateIndexOperation returns a new UpdateIndexOperation from a given name. +// The name must be that of a previously created UpdateIndexOperation, possibly from a different process. +func (c *warehouseRESTClient) UpdateIndexOperation(name string) *UpdateIndexOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateIndexOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UpdateIndexEndpointOperation returns a new UpdateIndexEndpointOperation from a given name. +// The name must be that of a previously created UpdateIndexEndpointOperation, possibly from a different process. +func (c *warehouseGRPCClient) UpdateIndexEndpointOperation(name string) *UpdateIndexEndpointOperation { + return &UpdateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UpdateIndexEndpointOperation returns a new UpdateIndexEndpointOperation from a given name. +// The name must be that of a previously created UpdateIndexEndpointOperation, possibly from a different process. +func (c *warehouseRESTClient) UpdateIndexEndpointOperation(name string) *UpdateIndexEndpointOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UpdateIndexEndpointOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} + +// UploadAssetOperation returns a new UploadAssetOperation from a given name. +// The name must be that of a previously created UploadAssetOperation, possibly from a different process. +func (c *warehouseGRPCClient) UploadAssetOperation(name string) *UploadAssetOperation { + return &UploadAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + } +} + +// UploadAssetOperation returns a new UploadAssetOperation from a given name. +// The name must be that of a previously created UploadAssetOperation, possibly from a different process. +func (c *warehouseRESTClient) UploadAssetOperation(name string) *UploadAssetOperation { + override := fmt.Sprintf("/v1/%s", name) + return &UploadAssetOperation{ + lro: longrunning.InternalNewOperation(*c.LROClient, &longrunningpb.Operation{Name: name}), + pollPath: override, + } +} diff --git a/visionai/apiv1/warehouse_client_example_test.go b/visionai/apiv1/warehouse_client_example_test.go new file mode 100644 index 00000000000..87388d4f1c2 --- /dev/null +++ b/visionai/apiv1/warehouse_client_example_test.go @@ -0,0 +1,1903 @@ +// Copyright 2024 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 visionai_test + +import ( + "context" + "io" + + longrunningpb "cloud.google.com/go/longrunning/autogen/longrunningpb" + visionai "cloud.google.com/go/visionai/apiv1" + visionaipb "cloud.google.com/go/visionai/apiv1/visionaipb" + "google.golang.org/api/iterator" +) + +func ExampleNewWarehouseClient() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleNewWarehouseRESTClient() { + 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 := visionai.NewWarehouseRESTClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + // TODO: Use client. + _ = c +} + +func ExampleWarehouseClient_AddCollectionItem() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AddCollectionItemRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AddCollectionItemRequest. + } + resp, err := c.AddCollectionItem(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_AnalyzeAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AnalyzeAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AnalyzeAssetRequest. + } + op, err := c.AnalyzeAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_AnalyzeCorpus() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.AnalyzeCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#AnalyzeCorpusRequest. + } + op, err := c.AnalyzeCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_ClipAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ClipAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ClipAssetRequest. + } + resp, err := c.ClipAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateAnnotation() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAnnotationRequest. + } + resp, err := c.CreateAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateAssetRequest. + } + resp, err := c.CreateAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateCollection() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateCollectionRequest. + } + op, err := c.CreateCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateCorpus() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateCorpusRequest. + } + op, err := c.CreateCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateDataSchema() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateDataSchemaRequest. + } + resp, err := c.CreateDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateIndexRequest. + } + op, err := c.CreateIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateIndexEndpoint() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateIndexEndpointRequest. + } + op, err := c.CreateIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateSearchConfig() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSearchConfigRequest. + } + resp, err := c.CreateSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_CreateSearchHypernym() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.CreateSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#CreateSearchHypernymRequest. + } + resp, err := c.CreateSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_DeleteAnnotation() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAnnotationRequest. + } + err = c.DeleteAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteAssetRequest. + } + op, err := c.DeleteAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteCollection() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteCollectionRequest. + } + op, err := c.DeleteCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteCorpus() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteCorpusRequest. + } + err = c.DeleteCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteDataSchema() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteDataSchemaRequest. + } + err = c.DeleteDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteIndexRequest. + } + op, err := c.DeleteIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteIndexEndpoint() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteIndexEndpointRequest. + } + op, err := c.DeleteIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + err = op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteSearchConfig() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSearchConfigRequest. + } + err = c.DeleteSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeleteSearchHypernym() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeleteSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeleteSearchHypernymRequest. + } + err = c.DeleteSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } +} + +func ExampleWarehouseClient_DeployIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.DeployIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#DeployIndexRequest. + } + op, err := c.DeployIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GenerateHlsUri() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateHlsUriRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateHlsUriRequest. + } + resp, err := c.GenerateHlsUri(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GenerateRetrievalUrl() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GenerateRetrievalUrlRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GenerateRetrievalUrlRequest. + } + resp, err := c.GenerateRetrievalUrl(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetAnnotation() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAnnotationRequest. + } + resp, err := c.GetAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetAssetRequest. + } + resp, err := c.GetAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetCollection() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetCollectionRequest. + } + resp, err := c.GetCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetCorpus() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetCorpusRequest. + } + resp, err := c.GetCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetDataSchema() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetDataSchemaRequest. + } + resp, err := c.GetDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetIndexRequest. + } + resp, err := c.GetIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetIndexEndpoint() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetIndexEndpointRequest. + } + resp, err := c.GetIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetSearchConfig() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSearchConfigRequest. + } + resp, err := c.GetSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_GetSearchHypernym() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.GetSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#GetSearchHypernymRequest. + } + resp, err := c.GetSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_ImportAssets() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ImportAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ImportAssetsRequest. + } + op, err := c.ImportAssets(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_IndexAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.IndexAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#IndexAssetRequest. + } + op, err := c.IndexAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_IngestAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + stream, err := c.IngestAsset(ctx) + if err != nil { + // TODO: Handle error. + } + go func() { + reqs := []*visionaipb.IngestAssetRequest{ + // TODO: Create requests. + } + for _, req := range reqs { + if err := stream.Send(req); err != nil { + // TODO: Handle error. + } + } + stream.CloseSend() + }() + for { + resp, err := stream.Recv() + if err == io.EOF { + break + } + if err != nil { + // TODO: handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListAnnotations() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAnnotationsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAnnotationsRequest. + } + it := c.ListAnnotations(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListAssets() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListAssetsRequest. + } + it := c.ListAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListCollections() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListCollectionsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListCollectionsRequest. + } + it := c.ListCollections(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListCorpora() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListCorporaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListCorporaRequest. + } + it := c.ListCorpora(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListDataSchemas() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListDataSchemasRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListDataSchemasRequest. + } + it := c.ListDataSchemas(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListIndexEndpoints() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListIndexEndpointsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListIndexEndpointsRequest. + } + it := c.ListIndexEndpoints(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListIndexes() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListIndexesRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListIndexesRequest. + } + it := c.ListIndexes(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListSearchConfigs() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSearchConfigsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSearchConfigsRequest. + } + it := c.ListSearchConfigs(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ListSearchHypernyms() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ListSearchHypernymsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ListSearchHypernymsRequest. + } + it := c.ListSearchHypernyms(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_RemoveCollectionItem() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveCollectionItemRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveCollectionItemRequest. + } + resp, err := c.RemoveCollectionItem(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_RemoveIndexAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.RemoveIndexAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#RemoveIndexAssetRequest. + } + op, err := c.RemoveIndexAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_SearchAssets() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.SearchAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#SearchAssetsRequest. + } + it := c.SearchAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_SearchIndexEndpoint() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.SearchIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#SearchIndexEndpointRequest. + } + it := c.SearchIndexEndpoint(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_UndeployIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UndeployIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UndeployIndexRequest. + } + op, err := c.UndeployIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateAnnotation() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAnnotationRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAnnotationRequest. + } + resp, err := c.UpdateAnnotation(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateAssetRequest. + } + resp, err := c.UpdateAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateCollection() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateCollectionRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateCollectionRequest. + } + resp, err := c.UpdateCollection(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateCorpus() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateCorpusRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateCorpusRequest. + } + resp, err := c.UpdateCorpus(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateDataSchema() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateDataSchemaRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateDataSchemaRequest. + } + resp, err := c.UpdateDataSchema(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateIndex() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateIndexRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateIndexRequest. + } + op, err := c.UpdateIndex(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateIndexEndpoint() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateIndexEndpointRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateIndexEndpointRequest. + } + op, err := c.UpdateIndexEndpoint(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateSearchConfig() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSearchConfigRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSearchConfigRequest. + } + resp, err := c.UpdateSearchConfig(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UpdateSearchHypernym() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UpdateSearchHypernymRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UpdateSearchHypernymRequest. + } + resp, err := c.UpdateSearchHypernym(ctx, req) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_UploadAsset() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.UploadAssetRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#UploadAssetRequest. + } + op, err := c.UploadAsset(ctx, req) + if err != nil { + // TODO: Handle error. + } + + resp, err := op.Wait(ctx) + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp +} + +func ExampleWarehouseClient_ViewCollectionItems() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ViewCollectionItemsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ViewCollectionItemsRequest. + } + it := c.ViewCollectionItems(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_ViewIndexedAssets() { + 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 := visionai.NewWarehouseClient(ctx) + if err != nil { + // TODO: Handle error. + } + defer c.Close() + + req := &visionaipb.ViewIndexedAssetsRequest{ + // TODO: Fill request struct fields. + // See https://pkg.go.dev/cloud.google.com/go/visionai/apiv1/visionaipb#ViewIndexedAssetsRequest. + } + it := c.ViewIndexedAssets(ctx, req) + for { + resp, err := it.Next() + if err == iterator.Done { + break + } + if err != nil { + // TODO: Handle error. + } + // TODO: Use resp. + _ = resp + } +} + +func ExampleWarehouseClient_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 := visionai.NewWarehouseClient(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 ExampleWarehouseClient_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 := visionai.NewWarehouseClient(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 ExampleWarehouseClient_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 := visionai.NewWarehouseClient(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 ExampleWarehouseClient_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 := visionai.NewWarehouseClient(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/visionai/go.mod b/visionai/go.mod new file mode 100644 index 00000000000..98f17617901 --- /dev/null +++ b/visionai/go.mod @@ -0,0 +1,41 @@ +module cloud.google.com/go/visionai + +go 1.19 + +require ( + cloud.google.com/go/longrunning v0.5.4 + github.com/googleapis/gax-go/v2 v2.12.0 + google.golang.org/api v0.160.0 + google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe + google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe + google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe + google.golang.org/grpc v1.61.0 + google.golang.org/protobuf v1.32.0 +) + +require ( + cloud.google.com/go v0.112.0 // indirect + cloud.google.com/go/compute v1.23.3 // indirect + cloud.google.com/go/compute/metadata v0.2.3 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/go-logr/logr v1.4.1 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/google/s2a-go v0.1.7 // indirect + github.com/googleapis/enterprise-certificate-proxy v0.3.2 // indirect + go.opencensus.io v0.24.0 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 // indirect + go.opentelemetry.io/otel v1.22.0 // indirect + go.opentelemetry.io/otel/metric v1.22.0 // indirect + go.opentelemetry.io/otel/trace v1.22.0 // indirect + golang.org/x/crypto v0.18.0 // indirect + golang.org/x/net v0.20.0 // indirect + golang.org/x/oauth2 v0.16.0 // indirect + golang.org/x/sync v0.6.0 // indirect + golang.org/x/sys v0.16.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/time v0.5.0 // indirect + google.golang.org/appengine v1.6.8 // indirect +) diff --git a/visionai/go.sum b/visionai/go.sum new file mode 100644 index 00000000000..322b7758bed --- /dev/null +++ b/visionai/go.sum @@ -0,0 +1,185 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.112.0 h1:tpFCD7hpHFlQ8yPwT3x+QeXqc2T6+n6T+hmABHfDUSM= +cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= +cloud.google.com/go/compute v1.23.3 h1:6sVlXXBmbd7jNX0Ipq0trII3e4n1/MsADLK6a+aiVlk= +cloud.google.com/go/compute v1.23.3/go.mod h1:VCgBUoMnIVIR0CscqQiPJLAG25E3ZRZMzcFZeQ+h8CI= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= +cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= +cloud.google.com/go/longrunning v0.5.4 h1:w8xEcbZodnA2BbW6sVirkkoC+1gP8wS57EUUgGS0GVg= +cloud.google.com/go/longrunning v0.5.4/go.mod h1:zqNVncI0BOP8ST6XQD1+VcvuShMmq7+xFSzOL++V0dI= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/xds/go v0.0.0-20231109132714-523115ebc101 h1:7To3pQ+pZo0i3dsWEbinPNFs5gPSBOsJtx3wTT94VBY= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v1.0.2 h1:QkIBuU5k+x7/QXPvPPnWXWlCdaBFApVqftFV6k087DA= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.1 h1:pKouT5E8xu9zeFC39JXRDukb6JFQPXM5p5I91188VAQ= +github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/gax-go/v2 v2.12.0 h1:A+gCJKdRfqXkr+BIRGtZLibNXf0m1f9E4HG56etFpas= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0 h1:UNQQKPfTDe1J81ViolILjTKPr9WetKW6uei2hFgJmFs= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.47.0/go.mod h1:r9vWsPS/3AQItv3OSlEJ/E4mbrhUbbw18meOjArPtKQ= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0 h1:sv9kVfal0MK0wBMCOGr+HeJm9v803BkJxGrk2au7j08= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= +go.opentelemetry.io/otel v1.22.0 h1:xS7Ku+7yTFvDfDraDIJVpw7XPyuHlB9MCiqqX5mcJ6Y= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= +go.opentelemetry.io/otel/metric v1.22.0 h1:lypMQnGyJYeuYPhOM/bgjbFM6WE44W1/T45er4d8Hhg= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= +go.opentelemetry.io/otel/trace v1.22.0 h1:Hg6pPujv0XG9QaVbGOBVHunyuLcCC3jN7WEhPx83XD0= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= +golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.160.0 h1:SEspjXHVqE1m5a1fRy8JFB+5jSu+V0GEDKDghF3ttO4= +google.golang.org/api v0.160.0/go.mod h1:0mu0TpK33qnydLvWqbImq2b1eQ5FHRSDCBzAxX9ZHyw= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe h1:USL2DhxfgRchafRvt/wYyyQNzwgL7ZiURcozOE/Pkvo= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe h1:0poefMBYvYbs7g5UkjS6HcxBPaTRAmznle9jnxYoAI8= +google.golang.org/genproto/googleapis/api v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:4jWUdICTdgc3Ibxmr8nAJiiLHwQBY0UI0XZcEMaFKaA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe h1:bQnxqljG/wqi4NTXu2+DJ3n7APcEA882QZ1JvhQAq9o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.61.0 h1:TOvOcuXn30kRao+gfcvsebNEa5iZIiLkisYEkf7R7o0= +google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/visionai/internal/version.go b/visionai/internal/version.go new file mode 100644 index 00000000000..b662f1b47cf --- /dev/null +++ b/visionai/internal/version.go @@ -0,0 +1,20 @@ +// Copyright 2024 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 gapicgen. DO NOT EDIT. + +package internal + +// Version is the current tagged release of the library. +const Version = "0.0.0"